Web-Technologien: Überblick, Vor- Und Nachteile, Entscheidungshilfen
Total Page:16
File Type:pdf, Size:1020Kb
Web-Technologien: Überblick, Vor- und Nachteile, Entscheidungshilfen Markus Stiegler XDEV Software Corp. Deutschland GmbH Kirchheim-Heimstetten Einleitung Wer heutzutage eine Web-Anwendung für den professionellen Einsatz im Unternehmen entwickeln möchte, hat wie nie zuvor in der Software-Entwicklung die Qual der Wahl. Mittlerweile existiert ein ganzer Dschungel an Skriptsprachen, Frameworks und APIs, der an allen Ecken und Enden nahezu unkontrolliert weiter wuchert. Fachzeitschriften zaubern immer wieder neue Web-Frameworks aus dem Hut, um ihren Lesern etwas Neues bieten zu können. Zahlreiche Lösungen bauen aufeinander auf, ergänzen sich oder funktionieren fast identisch, während sich andere komplett unterscheiden. Die Entwicklung von Frameworks schreitet sogar so rasant voran, dass die Hersteller kaum noch mit ihrer eigenen Dokumentation, geschweige denn mit Übersetzungen hinterher kommen. Häufig sind aufwändige Recherchen notwendig und die Kenntnis anderer Technologien sogar Grundvoraussetzung, um überhaupt das Funktionsprinzip einer Technologie verstehen und deren Vorteile erkennen zu können. Die Vielfalt ist bereits so groß, dass man als Entwickler gar nicht mehr die Zeit aufbringen kann, alle Ansätze für eine objektive Beurteilung ausführlich genug testen zu können. Viele Entwickler und Projektleiter fühlen sich mittlerweile von der rasanten Entwicklung förmlich abgehängt. Umso schwieriger wird es, wenn man sich für die Umsetzung eines wichtigen Projektes für eine oder mehrere Technologien entscheiden und auch noch die Verantwortung für den Projekterfolg tragen muss. Im Folgenden erhalten Sie einen Überblick über die wichtigsten Web-Technologien, deren Funktionsprinzip sowie deren Vor- und Nachteile. Um die Prinzipien, Vor- und Nachteile besser nachvollziehen zu können, lohnt es sich ganz an den Anfang des Web zu gehen und die Evolution von HTML in Kürze Revue passieren zu lassen, denn in der Vergangenheit findet man häufig entscheidende Details für die Funktionsweise moderner Technologien. HTML In den Anfangszeiten des World-Wide-Webs diente das Internet zur Verteilung von statischen, meist wissenschaftlichen Textseiten. Um solche Texte besser strukturieren und formatieren zu können, entwickelte Tim Berners-Lee 1989 HTML. HTML ist eine rein Text- orientierte Auszeichnungssprache, die zur Strukturierung und Formatierung Textkürzel, sog. Tags verwendet. Auch die ersten Textverarbeitungsprogramme verwendeten Tags. Da es noch keine grafischen Oberflächen gab, musste man dem Programm mit Hilfe eines Tags klar machen, dass der nachfolgende Text z.B. fett gedruckt werden soll. Erst 4 Jahre später konnte man erstmals auch Bilder in ein HTML-Dokument einbinden. 1995 kamen mit HTML 2.0 Formulare dazu, 1997 Tabellen, Textfluss um Bilder sowie die Einbindung von Java Applets, bevor 1997 mit HTML 4.0 CSS und Frames eingeführt wurden. Für die Darstellung von HTML ist der Web-Browser zuständig. Was also bei einem klassischen Computer-Programm der Interpreter ist, ist der Browser für HTML. JavaScript Da HTML lediglich statische Seiten anzeigen kann, wurde 1995 die Skriptsprache JavaScript entwickelt, mit der man HTML-Code und somit eine aktuelle HTML-Seite direkt im Browser ändern kann. Erst damit wurden interaktive Webseiten möglich, die auf Nutzeraktionen reagieren können, z.B. Rollover-Effekte bei Menüpunkten. Im Gegensatz zu HTML ist JavaScript eine leistungsfähige Sprache, welche sogar objektorientiertes Entwickeln unterstützt. Entwickelt wurde JavaScript von Sun Microsystems und Netscape und erhielt wegen der Java-ähnlichen Syntax unglücklicherweise den Namen JavaScript, wodurch die Skriptsprache bis heute selbst von Fachleuten immer wieder irrtümlich mit der Programmiersprache Java verwechselt wird. Während JavaScript vor wenigen Jahren noch stark verrufen war (Viren und Dialer wurden i.d.R. in JavaScript geschrieben) und viele Internet-Nutzer JavaScript aus Sicherheitsgründen über die Browser-Einstellungen einschränkten oder sogar deaktivierten, ist JavaScript heute die zentrale Technologie von Ajax und dem Web 2.0. Die Oberfläche einer modernen Rich-Internet-Application besteht fast nur noch aus JavaScript Elementen. Tab-Panes, sprich Registerreiter, Pulldown- und Kontextmenü, Fenstertechnik, Andock-Funktionen oder schlichtes Drag&Drop im Browser ist nur mit JavaScript möglich, da der Browser lediglich wenige Standard-Controls wie Buttons und die Standard-Formular-Komponenten bietet. Da die Programmierung von Oberflächen- Elementen äußerst schwierig und enorm wartungsaufwändig ist, gibt es inzwischen zahlreiche JavaScript Frameworks, welche dem Entwickler alle wichtigen Controls zur Verfügung stellen. Wie HTML wird JavaScript vom Web-Browser ausgeführt. Der Browser ist also der Interpreter. CSS Mit der Einführung von Stylesheets 1993, ging man dazu über, die Formatierungen für das Design vom eigentlichen Inhalt zu trennen, indem man die Formatierungen für das Design in unabhängige CSS-Dateien auslagerte. Neben Angaben zu Farben und Schriften bietet CSS vor allem die Möglichkeit, Seiten- Elemente frei zu positionieren. Mit diesen Eigenschaften ist CSS eine entscheidende HTML-Erweiterung. Wie HTML und JavaScript wird auch CSS vom Web-Browser ausgeführt. Dynamische Webseiten Eine statische HTML-Seite kann nur Informationen enthalten, die der Autor bei der Entwicklung in das Dokument schreibt. Moderne Web-Anwendungen sind damit jedoch nicht denkbar, denn bei Online-Foren, Wikis, Social Networks und andere sog. Web 2.0 Anwendungen wird der maßgebliche Content nicht vom Entwickler der Seite, sondern von anderen, im Grunde anonymen Internet-Anwendern produziert. Damit dies möglich wird, muss der fremde Content zunächst auf dem Server gespeichert werden, und zwar entweder in einer Datei, z.B. Text oder XML, oder in einer Datenbank. Beim Aufruf der Seite muss dieser Content dann wieder ausgelesen und zusammen mit den für die Darstellung notwendigen HTML-Tags in die statische HTML-Seitenvorlage geschrieben werden, bevor die fertige Seite an den Browser ausgeliefert wird. Man spricht dann von einer dynamischen HTML-Seite. Die Generierung von dynamischen HTML-Seiten wird von einem Skript durchgeführt, welches auf dem Server läuft. Entsprechende Skripte kann man grundsätzlich in jeder beliebigen Programmier- oder Skriptsprache schreiben. Voraussetzung für die Ausführbarkeit ist immer, dass auf dem Server ein entspr. Interpreter für die gewählte Sprache zur Verfügung steht. Perl Die Programmiersprache Perl wurde von Larry Wall für die übersichtliche Auswertung verstreuter Logdateien auf UNIX-Rechnern für die NSA entwickelt. Im Focus stand die schnelle und einfache Programmierung. Die Stärken von Perl liegen in der Verbindung inkompatibler Software. Da in den Anfangszeiten des Webs nahezu alle Server unter UNIX liefen und die Stärken von Perl in der Verbindung inkompatibler Software liegt, wurde Perl zunehmend für die Entwicklung dynamischer Webseiten benutzt und wurde schnell zum De-facto-Standard für die Web-Entwicklung. Später wurde Perl immer stärker von PHP verdrängt. PHP PHP wurde 1995 von Rasmus Lerdorf, Gutmans und Suraski, den Gründern von Zend Technologies Ltd., als Ersatz für eine Sammlung von Perl-Skripten entwickelt. PHP ist Perl sehr ähnlich, gilt jedoch als einfacher erlernbar. Da auch PHP unter der GPL Open Source Lizenz steht, wurde PHP fester Bestandteil fertiger LAMP und WAMP Pakete, bestehend aus Apache Webserver, MySQL Datenbank und PHP, welche die Installation aller wichtigen Server-Komponenten erheblich vereinfachen. Eines der beliebtesten Pakete ist XAMPP, das auch für Solaris und Mac OS-X verfügbar ist. PHP wurde vor allem mit LAMP zu einer Standard-Server-Komponente, zum De-facto Standard bei Internet-Service-Providern und somit für die Web-Entwicklung im Allgemeinen. Als Folge wurde Perl gleichzeitig weitestgehend von PHP verdrängt. Durch die rasante Verbreitung ist PHP zeitweise ungesteuert gewachsen. Viele Standard- Bibliotheken sind noch prozedural programmiert, nicht objektorientiert. Zudem wird die fehlende Durchgängigkeit bemängelt, fehlendes Threading sowie fehlende Möglichkeiten zum Debuggen. Dass PHP im Vergleich zu Perl oder Python als langsamer gilt, dürfte in der Praxis eher selten entscheidend sein. Vor allem im deutschsprachigen Raum verfügt PHP über eine sehr große Community. ASP ASP wurde 1996 von Microsoft entwickelt und gilt als Pendant zu Perl und PHP. Mit Einführung des .NET Frameworks 2002 wurde ASP eingestellt und wird seitdem als ASP.NET weiterentwickelt. Mit ASP.NET stehen dem Web-Entwickler alle Vorteile und Möglichkeiten des leistungsfähigen .NET Frameworks zur Verfügung. ASP.NET Anwendungen lassen sich dadurch in allen .NET Sprachen schreiben, u.a. C#, VB.NET und J#. Da es sich bei ASP.NET um eine Compiler-Sprache handelt, werden sämtliche Fehler bereits beim Compilieren sichtbar. Zudem lassen sich die Anwendungen wie andere .NET Programme sehr gut debuggen. Für ASP.NET sind sehr viele Frameworks, insbesondere von Drittherstellern wie Telerik, für die Entwicklung grafischer Web-Oberflächen verfügbar, welche alle erdenklichen Oberflächen-Controls aufbieten. Als .NET Sprache lässt sich ASP.NET jedoch nicht so einfach erlernen wie Perl oder PHP. Zudem legt man sich mit ASP.NET zwangsweise auf eine Microsoft Infrastruktur fest. U.a. sind Windows als Server-Betriebssystem sowie ein Microsoft Application-Server (z.B. IIS oder Visual Studio .NET) die Voraussetzung. Das Angebot an Hosting-Paketen mit entspr. Voraussetzungen ist vergleichsweise gering. Mit Mono existiert eine, hauptsächlich