12
yuhiro.de http://www.yuhiro.de/technologien-fuer-die-entwicklung-von-webanwendungen/ Sascha Thattil Die wichtigsten Technologien für die Entwicklung von Webanwendungen Webtechnologien werden immer wichtiger. Unternehmen und Endnutzer können, ohne Software auf ihrem Rechner zu installieren, auf Applikationen, über das Internet, zugreifen. Hierdurch ergeben sich einige Vorteile. Ein grosser Vorteil ist sicherlich auch, dass alle Daten zentral online gespeichert werden, und dadurch “Daten-Silos” vermieden werden, welche man nur schwer zusammenführen kann. In diesem Beitrag beschreiben wir die wichtigsten Technologien für die Entwicklung von solchen Online-Applikationen. Grundsätzlich kann man zwischen Server-seitiger und Client-seitiger Programmierung sprechen. Für beides gibt es unterschiedliche Technologien. Server-seitige Programmierung Die Folgenden werden für die Server-seitige Programmierung genutzt. Diese sind Programmierungen, welche für den Endnutzer nicht sichtbar sind. Zum Beispiel wird eine Information aus der Datenbank gesucht und bereitgestellt, dies wird mit dem Server-seitigen Coding erreicht. Die derzeit beliebtesten Webtechnologien sind PHP, ASP.NET, Python, Java und Ruby. Mehr dazu im Folgenden: 1/12

Die wichtigsten Technologien für die Entwicklung von Webanwendungen

  • Upload
    yuhiro

  • View
    147

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Die wichtigsten Technologien für die Entwicklung von Webanwendungen

yuhiro.de http://www.yuhiro.de/technologien-fuer-die-entwicklung-von-webanwendungen/

Sascha Thattil

Die wichtigsten Technologien für die Entwicklung vonWebanwendungen

Webtechnologien werden immer wichtiger. Unternehmen und Endnutzer können, ohneSoftware auf ihrem Rechner zu installieren, auf Applikationen, über das Internet, zugreifen.

Hierdurch ergeben sich einige Vorteile. Ein grosser Vorteil ist sicherlich auch, dass alle Datenzentral online gespeichert werden, und dadurch “Daten-Silos” vermieden werden, welche mannur schwer zusammenführen kann.

In diesem Beitrag beschreiben wir die wichtigsten Technologien für die Entwicklung von solchenOnline-Applikationen.

Grundsätzlich kann man zwischen Server-seitiger und Client-seitiger Programmierungsprechen. Für beides gibt es unterschiedliche Technologien.

Server-seitige Programmierung

Die Folgenden werden für die Server-seitige Programmierung genutzt. Diese sindProgrammierungen, welche für den Endnutzer nicht sichtbar sind. Zum Beispiel wird eineInformation aus der Datenbank gesucht und bereitgestellt, dies wird mit dem Server-seitigenCoding erreicht.

Die derzeit beliebtesten Webtechnologien sind PHP, ASP.NET, Python, Java und Ruby. Mehrdazu im Folgenden:

1/12

Page 2: Die wichtigsten Technologien für die Entwicklung von Webanwendungen

PHP: PHP ist Open Source. Dies bedeutet, dass der meiste Code, welcher Online verfügbar ist,kostenfrei und ohne Lizenz zu erwerben sind. Lange Zeit war PHP nicht für komplexeProgrammierungen genutzt worden. Dies hat sich jedoch in den letzten Jahren geändert.

Besonders durch Frameworks wie Laravel, weiter unten in diesem Beitrag beschrieben,machen die Programmiersprache wieder interessant. Bekanntermassen nutzen Facebook undWikipedia PHP für deren Seiten.

3 Vorteile

Weit verbreitet: Ein Grossteil der Webseiten weltweit läuft auf PHP

Viele Entwickler: Man findet PHP Entwickler weltweit

Gereift: Die Technologie besteht schon seit mehreren Jahrzehnten und ist daher bereitsdurchgängig getestet und ausgebessert worden

3 Nachteile

Nicht so strukturiert: Da es bei PHP sehr viele Programmierer gibt, welche ihren Inputhinzugeben und die Programmiersprache sich über die Jahre hinweg entwickelt hat, istnicht alles so strukturiert. Ein Gesamtkonzept, wie zum Beispiel für Microsofts ASP.NET,fehlt

Performance: Viele vermeiden PHP wenn es um die Programmierung vonAnwendungen geht, welche sehr rechenlastig sind. In den letzten Jahren hat sich dasnatürlich, durch die neuen Frameworks, geändert

Sicherheit: Da der Code von allen eingesehen werden kann, sind Applikationen aufdieser Softwaresprache etwas anfälliger für Online-Angriffe

2/12

Page 3: Die wichtigsten Technologien für die Entwicklung von Webanwendungen

ASP.NET: ASP.NET ist mehr im BereichGeschäfts-Webapplikationen zu finden. Dies liegtauch daran, dass Microsoft, der Bereitstellerdieser Technologie, einen Fokus darauf hatte,diese als solche zu etablieren. ASP.NET wird invielen Online Anwendungen genutzt. Zum Beispielnutzt Microsoft diese selbst, um zum Beispieloutlook.com (die Online Version des beliebtenDesktop Email-Clients Outlook) bereitzustellen.Viele Softwarefirmen nutzen es zudem, umGeschäftsapplikationen zu schreiben.

3 Vorteile

Gesamtkonzept: Alle Komponenten von ASP.NET sind gut durchdacht und greifenineinander ein. Das liegt auch daran, dass Microsoft hier ein Gesamtkonzept, für dieseTechnologie, bereits vor der Entwicklung dieser, hatte

Microsoft: Microsoft ist der Bereitsteller dieser spannenden Web Lösung. MancheKomponenten sind zwar kostenpflichtig, dafür geht man jedoch sicher, dass die Lösunggut funktioniert

Grosse Applikationen : Mit ASP.NET lassen sich grosse Software-Webapplikationen mitsehr wenig Code schreiben

3 Nachteile

Microsoft: Das der Bereitsteller Microsoft ist, ist ein Vorteil und ein Nachteil zugleich.Viele Programmierer wollen lieber nicht mit der Software eines Grossunternehmensarbeiten, da diese Unternehmen meistens eigene Interessen verfolgen

Kosten: Viele der Werkzeuge, welche Microsoft, auch im Zusammenhang mit ASP.NET,bereitstellt, sind kostenpflichtig. Für kleine Unternehmen, Agenturen und Freelancer lohntsich die Software also eher weniger

Sehr grosse Applikationen : Für Applikationen, welche von mehreren MillionenAnwendern gleichzeitig genutzt werden, macht ein Programmierung mit Java mehr Sinn.

Python: Python wird, meiner Meinung nach, nicht so oft für die Webprogrammierung genutzt.

3/12

Page 4: Die wichtigsten Technologien für die Entwicklung von Webanwendungen

Dennoch findet es seinen Weg oftmals, neben ASP.NET und Java, in Unternehmen, welche esfür Geschäftsanwendungen nutzen. Auch Endnutzer Systeme werden mit Python programmiert.YouTube, Google und DropBox laufen zu einem Teil auf Python, was zeigt, dass es stark, robustund schnell ist.

3 Vorteile

Einfacher zu erlernen: Python ist einfacher zu erlernen als zum Beispiel Java oder C++.

Strukturierter: Gegenüber anderen Sprachen, wie zum Beispiel PHP, ist Python vielstrukturierter. Dies ermöglicht zudem einen fehlerfreieren Code sowie eine schnellereProgrammierung

Schnell entwickelt: Mit Python lassen sich Anwendungen schneller programmieren, alsmit anderen Sprachen

3 Nachteile

Entwickler schwer zu finden : Im Gegensatz zu Python, lassen sich Entwickler für PHP,ASP.NET oder Java sehr einfach finden. Auch wenn Python sehr robust und flexibel ist.Dies bringt wenig wenn man keine Entwickler dafür findet

Experten benötigt: Ein Anfänger wird es meistens nicht schaffen eine gute PythonApplikation zu schreiben. Es benötigt Experten. Wie im ersten Nachteil bereitsgeschrieben, ist es schwer Programmierer in diesem Bereich zu finden. Experten zufinden wird daher noch etwas schwieriger

Dokumentation: Auch wenn die Sprache einfach zu erlernen ist. Es lässt sich nur schwergute Dokumentationen für diese finden

Java: Java ist eines der Werkzeuge für Unternehmen, um grosse Geschäftsanwendungen zuschreiben. Es ist um ein vielfaches schwerer zu erlernen als PHP oder ASP.NET. Daher findetman zwar Experten dazu. Jedoch muss man stärker suchen und definitiv auch mit höherenKosten, durch die höheren Gehälter in diesem Bereich, rechnen. Wer jedoch gute Entwicklerfindet, kann damit sehr grosse, komplexe und performante Webanwendungen programmieren.

4/12

Page 5: Die wichtigsten Technologien für die Entwicklung von Webanwendungen

3 Vorteile

Zukunftsfähig: Java gibt es schon seit sehr langem und die Chancen sind mehr alsgering, dass es in den nächsten Jahren an Popularität verliert

Weit verbreitet: Java wird in den meisten Grossunternehmen genutzt. Laut IDC(International Data Corporation, Marktforschungsunternehmen) nutzen 90 Prozent derFortune 500 Unternehmen (die 500 grössten Firmen der Welt) Java, um ihreGeschäftsanwendungen zu betreiben

Android: Die Entscheidung von Google, Java zu nutzen, um seine mobile PlattformAndroid zu schreiben, hat Java noch weiter gestärkt. Ein Grossteil der mobilen Endgeräteläuft heutzutage auf Android und damit auf Java

3 Nachteile

Entwickler teuer: Da Java-Entwickler zum grössten Teil in Grossunternehmenbeschäftigt sind, erhalten sie meistens ein sehr hohes Gehalt und sind für kleinereUnternehmen eher schwer zu finden und einzustellen

Expertise notwendig: Genau wie bei Python, lassen sich auch mit Java, Applikationennur mit Experten entwickeln. Wobei die Programmierung mit Java, meiner Meinung nachnoch etwas komplexer ist, als mit Python

Sicherheit: Da Java Plattform-unhabhängig ist, wird Java auch als weniger sichergehandelt, als andere Sprachen

Ruby: Ruby ist eine sehr beliebte Softwaresprache für die Programmierung vonWebapplikationen. Besonders das Ruby Framework Rails, lässt diese Technologie im positivenLicht dastehen. Ich würde behaupten, dass sich damit mittelgrosse bis grosse Applikationenerstellen lassen. Besonders Startups haben einen Fokus darauf, da sich damit relativ schnellprogrammieren lässt.

3 Vorteile

5/12

Page 6: Die wichtigsten Technologien für die Entwicklung von Webanwendungen

Fokus auf das Internet: Ruby ist eine auf das Web fokussierte Programmiersprache,anders als zum Beispiel .NET oder Java. Daher berücksichtigt es viele derBesonderheiten des Internets

Wartbarkeit: Ruby lässt sich einfach warten. Dies bedeutet auch, dass sich einmalgeschriebener Code auch durch einen neuen Programmierer einfach warten undweiterentwickeln lässt

Schnelligkeit: Es lässt sich mit Ruby sehr schnell Applikationen erzeugen, für welcheman mit anderen Sprachen länger bräuchte

3 Nachteile

Programmierer schwer zu finden : Ruby Programmierer lassen sich, zum Teil, nochschwerer finden als Java Experten

Skalierbarkeit: Einige Programmierer beschweren sich, dass Ruby schwer nach obenskalierbar ist. Twitter ist zum Beispiel mit Ruby gestartet und ist dann auf Javaumgestiegen. Dies soll jedoch nicht bedeuten, dass Ruby die falsche Entscheidung fürTwitter war, sondern nur, dass ab einer bestimmten Grösse, ein Werkzeug wie Java diebessere Wahl ist

Dokumentation: Es lässt sich relativ schwer eine gute Dokumentation zu Ruby finden.Das bedeutet auch, dass man sich länger mit dem Code beschäftigen muss

Web-Frameworks

Für alle diese Softwaresprachen gibt es sogenannte Frameworks, welche die Arbeit mit diesenSprachen, um einiges vereinfacht. Meistens handelt es sich um Code-Bibliotheken, in welchensich viele oder die meisten Funktionalitäten bereits finden lassen. So kann man daraufverzichten alles von Grund auf neu zu programmieren, sondern kann auf diese Framworkszurückgreifen.

Diese Frameworks sind besonders für mittelgrosse bis grosse Applikationen geeignet, welcheschnell entwickelt werden müssen, skalierbar bleiben sollen und von vielen Anwendern genutztwerden.

Die wichtigsten Frameworks im Überblick:

PHP Laravel

6/12

Page 7: Die wichtigsten Technologien für die Entwicklung von Webanwendungen

Laravel ist ein eher neueres PHP Framework. Es wird genutzt um schnelle und leichte Online-Applikationen zu schreiben.

3 Vorteile

Leichtgewicht: Es eignet sich für kleine Unternehmen mit einem Programmierer odereinigen wenigen, um leichte Applikationen zu schreiben, welche man zum Beispiel auchals Geschäftsanwendungen nutzt

Sehr gut dokumentiert: Es gibt sehr gute Dokumente und Tutorials welche Laravel imDetail erklären

Popularität: In den letzten Monaten und Jahren ist die Popularität von Laravel extremstgestiegen. Neben Zend ist Laravel heutzutage wohl das beliebteste PHP Framework

3 Nachteile

Taylor Otwell: Taylor Otwell ist der Haupt-Autor von Laravel. Dies ist zum Teil auch eineGefahr. Was ist wenn er das Framework nicht weiterführt? Die Weiterführung wäre indiesem Fall nicht geklärt

Sehr neu: Da es ein sehr neues Framework ist, gibt es noch nicht viele Programmiererdie damit arbeiten

Sicherheit: Da es ein sehr neues Framework ist, ist auch der Sicherheitsaspekt nochnicht hundert Prozent auf dem höchstem Niveau. Dies wird sich sicherlich in dennächsten Monaten und Jahren enorm verbessern. Zum derzeitigen Zeitpunkt gibt esjedoch Sicherheitslücken

ASP.NET MVC

Mit ASP.NET MVC lassen sich spannende Geschäftsanwendungen schreiben. Auch diesesFramework hat in den letzten Jahren an Popularität gewonnen. Sicherlich war das von demHersteller, in diesem Fall, Microsoft, auch so gewollt.

Microsofts MVC ist gut strukturiert und es lassen sich skalierbare Anwendungenprogrammieren.

3 Vorteile

7/12

Page 8: Die wichtigsten Technologien für die Entwicklung von Webanwendungen

Unterstützt Test-Driven Development : Es ist relativ einfach automatisierte Tests zuschreiben, um den Code zu überprüfen

Viele Entwickler gleichzeitig : Mit dem ASP.NET MVC Framework lässt es sich einfachin grossen Teams arbeiten

Komplexität einfacher handhabbar: Durch die Einteilung der Anwendung in Model,View und Controller, können MVC Applikationen einfacher und übersichtlicherprogrammiert werden

3 Nachteile

Komplex für einfache Aufgaben : Es lohnt sich für Entwickler nicht auf Frameworks wiedas ASP.NET Webforms zu setzen, wenn es sich eher um kleinere Applikationen handelt.MVC kann zu komplex sein, für kleine Teams, welche kleine Programme schreiben

Kenntnisse in HTML & CSS benötigt : Wer mit dem ASP.NET MVC Framework arbeitenmöchte, benötigt gute Kenntnisse in den Client-seitigen Technologien HTML und CSS

Lernkurve: Es braucht einiges an Zeit sich dieses Framework anzueignen

Python Django

Django ist das wichtigste Python Framework. Es eignet sich besonders für Startups, welchesehr schnell programmieren möchten und dieses Framework auch später behalten wollen.Dass heisst, es ist skalierbar.

3 Vorteile

Grossartige Community: Es gibt eine grosse Community (Englisch für “Gemeinschaft”,in diesem Fall Programmierer-Gemeinschaft), welche das Framework nutzt und weitereBeiträge (Django ist Open Source) dazu leistet

D.R.Y: D.R.Y steht für Don’t Repeat Yourself. Es ist die Philosophie welche hinter Djangosteckt. Dies bedeutet, dass das Framework einen Fokus darauf hat, soviel ausgeschriebenen Code zu bekommen wie nur möglich. Das macht es möglich, dass man inweniger Zeit, arbeitenden Code erzeugen kann

8/12

Page 9: Die wichtigsten Technologien für die Entwicklung von Webanwendungen

Alternative zu Ruby on Rails : Am nahesten kommt Django dem Rails Framework fürRuby. Django ist eine Alternative zu Rails. Manche Entwickler empfinden Djangoeinfacher zu nutzen als Ruby

3 Nachteile

Entwickler: Wie bei Ruby auch, kann es schwer werden passende Entwickler zu finden

Wenig geeignet für Mobile : Nur sehr wenige Smartphone Applikationen werden mitPython geschrieben

Deployment: Das Deployment von Django auf dem Produktivserver, wird besonders vonEinsteigern, als eher schwierig bezeichnet

Ruby Rails

Rails ist das prominenteste der Ruby Frameworks. Es wurde initial entwickelt, um dasprominente Projektmanagement Werzeug BaseCamp zu bauen. Rails ist im Jahr 2004, ein Jahrvor dem offiziellen Start von Django, veröffentlicht worden und hat auch eine grössereCommunity als Django.

3 Vorteile

Sauberer Code: Wie Laravel für PHP, hilft auch Rails, sauberen Code mit Ruby zuerstellen

Grössere Community: Wie bereits erwähnt, hat Rails mehr Nutzer, als sein direkterWettbewerber Django

Kostengünstige Entwicklung möglich: Individual Software ist in den meisten Fällensehr teuer zu bauen. Rails ermöglicht die Kosten für solche Software zu verringern

3 Nachteile

Geschwindigkeit: Wenn man sehr schnelle Applikationen benötigt, sollte man auf Javasetzen

Hosting: Es ist schwer ein passendes Hosting für Rails zu finden. Für PHP ist eshingegen keine Herausforderung ein passendes und günstiges Hosting zu bekommen

9/12

Page 10: Die wichtigsten Technologien für die Entwicklung von Webanwendungen

Fehlende Unterstützung von grossen Unternehmen : Hinter Java steht die FirmaOracle, hinter PHP steht Zend, hinter Angular.JS steht Google. Für Ruby und Rails fehlteine solche Unterstützung von Grossunternehmen

Client-seitige Programmierung

In der Webentwicklung müssen nicht nur Funktionen ausgeführt werden, sondern diesemüssen dem Nutzer auch als Resultat Online im Browser angezeigt werden. Hierfür nutzt manClient-seitige Webtechnologien. Im Weiteren die Wichtigsten davon:

HTML: HTML steht für Hypertext Markup Language und wird genutzt um Web-Seitenanzuzeigen. Farben, Schrift, Hyperlinks, etc. können darüber angezeigt und geändert werden.

CSS: CSS steht für Casdading Style Sheet und hilft dabei, wie HTML Elemente auf demBildschirm angezeigt werden. Das Layout kann hiermit verändert werden.

JavaScript: JavaScript wird üblicherweise für die Client-seitige Programmierung genutzt.Dieser Code wird in die HTML Seite geschrieben. Falls der Nutzer die HTML Seite aufruft, dannwird die JavaScript Programmierung zum Browser gesendet. Der Browser wiederumentscheidet, was es mit dem JavaScript Code machen soll. Ein simples Pop Up, wäre einAnwendungsbeispiel, welches man mit JavaScript umsetzen kann.

jQuery: jQuery macht es einfacher JavaScript zu nutzen. Komplizierte JavaScriptProgrammierungen, welche mehrere Zeilen Code benötigen, können mit jQuery in einereinzigen Zeile Code aufgerufen werden.

Ajax: Ajax steht für Asynchronous JavaScript und XML. Es wird genutzt, so dass die Client-Seite mit der Server-Applikationen kommunizieren kann. Beispiel: Ein Nutzer klickt mit demCursor auf ein Element der Website. Daraufhin sendet Ajax eine Anfrage, mithilfe von XML zurServer-seitigen Applikation. Die Serverseitige Programmierung verarbeitet die Anfrage undsendet die Informationen via XML zurück zur Client-Seite (zur Webseite) welches die Anfragestellte. Eine zweite JavaScript Funktion holt die Daten/ Informationen ab und zeigt diese Datenauf der Webseite an.

10/12

Page 11: Die wichtigsten Technologien für die Entwicklung von Webanwendungen

Angular.JS: Angular.JS (auch Angular genannt) ist ein JavaScript Framework, welches in denletzten Jahren einiges an Popularität gewonnen hat. Damit lassen sich einfach Client-seitigeWebanwendungen schreiben. Einmal durch den Anwender über den Browser aufgerufen, musses kein weiteres mal mit dem Server kommunizieren. Hierdurch läuft die Applikation schneller.Komplexer Code und Programmierungen können mit Angular auf einfache Weise erstelltwerden.

Datenbanken

Datenbank: Hierbei handelt es sich eine Ansammlung von organisierten Daten. Es ist eineSammlung von Tabellen, Suchanfragen, Reporten, Ansichten und anderen Objekten.

Datenbank Management System (DBMS): DBMS ist eine Softwareapplikation welches mitdem Nutzer, anderen Applikationen und der Datenbank selbst interagiert, um Datenaufzunehmen oder Daten zu analysieren. Ein übliches DBMS ist dazu gemacht, umDatenbanken zu definieren, zu erstellen, abzufragen, upzudaten und diese zu administrieren.Bekannte DBMS sind MySQL, SQL Server von Microsoft, Oracle oder DB2.

Fazit

Die in diesem Beitrag genannten server-seitigen Softwaresprachen PHP, ASP.NET, Python,Java, Ruby, die dazugehörigen Webframeworks Laravel, MVC, Django, Rails, die client-seitigenWerkzeuge HTML, CSS, JavaScript, jQuery, Ajax, Angular.JS und die DatenbanksoftwareMySQL, SQL Server, Oracle, DB2 sind die bedeutendsten Technologien wenn es darum geht,Webanwendungen zu schreiben.

Viele dieser Werkzeuge werden uns auch in Zukunft (in den nächsten Jahren) erhalten bleiben,daher macht es Sinn sich diese anzueignen.

Welche Erfahrungen habt Ihr gemacht? Was könnt Ihr empfehlen?

11/12