cnt

Mit der Kraft von JavaScript

AJAX-Frameworks vereinfachen die Entwicklung von Web-Applikationen mit Desktop-Flair. Client- und serverseitige Toolkits buhlen um die User.

Artikel erschienen in Swiss IT Magazine 2008/05

     

Mit dem Trend zu Webapplikationen und Software as a Service steigt auch der Bedarf nach Werkzeugen zur Verwendung von AJAX (Asynchronous JavaScript And XML). Denn AJAX ermöglicht nicht nur mehr Interaktivität ohne die Nutzung spezieller Browser-Plug-ins, sondern kann auch die Benutzerfreundlichkeit von Webapplikationen steigern, da es dem Entwickler mehr Flexibilität bei der Abbildung von Workflows bietet. Somit wird meist erst durch AJAX die Umsetzung respektive Nutzung von Webapplikationen sinnvoll.


Ärger mit dem Browser

Eigentlich könnte man meinen, dass die Entwicklung von «AJAX-Applikationen» keine allzu grosse Sache ist. Denn die zugrunde liegenden Technologien – JavaScript, XML sowie DOM-Scripting – sind seit Jahren bekannt und werden fleissig verwendet. Doch der Teufel steckt im Detail.



- Kompatibilität: Zwar beherrschen alle verbreiteten Browser in den aktuellen Versionen die benötigten Technologien, doch ist ihre Ansteuerung nicht immer identisch. So muss beispielsweise das XmlHttpRequest-Objekt, welches das Nachladen von Daten vom Webserver ermöglicht, im Internet Explorer 6 anders als in den anderen Browsern geladen werden. Ausserdem machen Bugs in den verschiedenen Browser-Versionen Workarounds erforderlich.




- Aufwand: Wer AJAX verwendet, muss noch mehr Programmieren als ohnehin schon. So muss der Server die AJAX-Anfragen verarbeiten und der Client mit entsprechendem Code zur Anforderung und Verarbeitung der Daten ausgestattet werden.


Entsprechend gross ist der Bedarf nach Hilfsmitteln, die die Entwicklung vereinfachen. Nebst passenden IDEs (wie Aptana Studio) und Debugging-Werkzeugen (beispielsweise Firebug) bieten sich da vor allem Frameworks an. Denn sie abstrahieren häufig benötigte Funktionen und bieten einfache APIs für deren Nutzung. Ausserdem sind sie, auch dank dem grösseren Nutzungskreis, robuster und besser im Cross-Browser-Support als Eigenentwicklungen.


Verschiedene Typen

Der Markt an Frameworks ist fast unüberschaubar gross. Das auf AJAX fokussierte Weblog Ajaxian.com führt regelmässig mit der Burton Group Umfragen zu den populärsten Frameworks durch und kam in der Erhebung vom letzten Herbst auf 241 AJAX-Toolkits und verwandte Werkzeuge – nachdem es 2005 noch weniger als 50 waren. Der Fokus der verschiedenen Werkzeuge ist dabei erstaunlich unterschiedlich.



Grundsätzlich kann man zwischen zwei verschiedenen Typen unterscheiden:




- Client-seitige Frameworks sind reine JavaScript-Bibliotheken, die auf dem Client arbeiten und sich einerseits um den Datenaustausch mit dem Server kümmern und andererseits verschiedene Funk­tionen abseits der Verwendung der Daten bieten. Viele beherrschen diverse Effekte, Event-Handling und User-Interface-Aktionen wie Drag and Drop. Sie bieten dabei volle Kontrolle darüber, was mit den Daten vom Server passieren und wie eine Seite modifiziert werden soll. So können je nach Serverantwort Seitenelemente ausgetauscht oder versteckt werden. Um die Server-seitige Behandlung der AJAX-Anfragen muss man sich entweder selber kümmern oder sich von einem Server-seitigen Framework helfen lassen.




- Server-seitige Frameworks existieren in verschiedenen Ausprägungen. In der einfachen Variante kümmern sie sich darum, die hereinkommenden Anfragen auf die vorhandenen Interfaces abzubilden und die gelieferten Daten in die gewünschte Antwort zu verwandeln. Dies beschränkt sich hauptsächlich auf die Umwandlung der Daten in XML, JSON (JavaScript Object Notation) oder auch HTML. Andere Frameworks gehen noch weiter und generieren gleich den passenden JavaScript-Code (Widgets), den der Client benötigt, um die gewünschte Funktionalität bereitzustellen. Ein Beispiel sind Vorschläge für Eingabe in Textfelder, wie sie Google Suggest anbietet.


Variationen

Von beiden Framework-Sorten gibt es eine Vielzahl von Mischungen und Varianten. So existieren Frameworks, die beide Seiten abbilden, bestehende Client-seitige Frameworks um Effekte und Widgets ergänzen oder das Schreiben der AJAX-Applikation in einer anderen Sprache wie Java erlauben, welche dann mit einer Art Compiler in JavaScript übersetzt wird. Andere Unterarten ermöglichen es, AJAX-Aktionen in XML zu deklarieren oder GUIs nach Desktop-Vorbild zu erstellen, die verschiedene Fenster, Toolbars und andere Dinge unterstützen, die man sonst nur vom Desktop und nicht von einer Webapplikation her kennt.



Genauso unterschiedlich wie die Ausrichtung der einzelnen Frameworks ist deren Herkunft. Nebst einer grossen Anzahl von Open-Source-Projekten sind Produkte diverser Softwarehersteller vorhanden. Dabei gibt es solche, die für die Kundschaft entwickelt wurden, und andere, die zum Eigenbedarf erstellt und irgendwann freigegeben wurden. Beispiele der letzten Kategorie sind das Google Web Toolkit, das aus der Entwicklung diverser Google-Anwendungen wie Maps stammt, oder das Zimbra AJAX Toolkit, das die Grundlage für die Weboberfläche der gleichnamigen Groupware darstellt.


Was nehmen?

Geht es an die Entwicklung einer Anwendung, bei der AJAX verwendet werden soll, stellt sich natürlich die Frage, auf welche Art von Framework man setzen soll.


Nimmt man die bereits erwähnte Umfrage von Ajaxian.com (www.ajaxian.com/archives/2007-ajax-tools-usage-survey-results) zur Hand, ist das Verdikt klar: Client-seitige Open-Source-Frameworks wie Prototype, jQuery oder Ext JS stehen besonders hoch im Kurs der Anwender. Server-seitige Toolkits wie diejenigen von Microsoft oder Google treffen auf weniger Gegenliebe wie die meisten proprietären Varianten, für die man mehr oder weniger Geld auf den Tisch legen muss.



Auch wenn die Umfrage nicht repräsentativ ist, entbehrt sie nicht einer gewissen Logik. Denn Client-seitige Frameworks bieten, wie erwähnt, volle Kontrolle über die Aktionen auf dem Client und lassen sich mit Hilfe von Widgets, Plug-ins und einfachen Server-seitigen Frameworks, die interne Interfaces per AJAX anbieten, effizient verwenden. Gleichzeitig sind sie unabhängig von der jeweiligen Server-Technologie. Man kann sie beispielsweise mit PHP und Ruby on Rails verwenden, ohne den Umgang mit mehreren Toolkits beherrschen zu müssen. Der grosse Nachteil bei Client-seitigen Frameworks ist, dass sie JavaScript-Know-how verlangen und in der Regel nicht von den bestehenden Entwicklungswerkzeugen abgedeckt werden.


Server-seitige Frameworks haben ihre Stärke vor allem darin, dass sie die schnelle Anreicherung von Applikationen mit AJAX ermöglichen, ohne dass die Entwickler zwingend mit den zugrunde liegenden Technologien umgehen können müssen.

Gleichzeitig können sie in den bestehenden Entwicklungsprozess integriert werden. Ein extremes Beispiel ist das Google Web Toolkit, das einem erlaubt, die Webanwendung in Java fast wie mit Swing zu schreiben, bevor sie mit einer Art Compiler in JavaScript übersetzt wird. Nachteilig ist die fehlende Flexibilität auf dem Client, sofern man das Server-seitige Framework nicht mit einem auf dem Client ergänzen kann. Man profitiert dafür von einem tieferen Testaufwand und deutlich höherer Produktivität.



Auswahl populärer Client- und serverseitiger AJAX-Frameworks




Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Wie hiess im Märchen die Schwester von Hänsel?
GOLD SPONSOREN
SPONSOREN & PARTNER