Vaadin
Abseits der klassischen Web-Frameworks wie Struts hatte eine Gruppe von Entwicklern die Idee, Web-Frameworks noch stärker als bisher mit JSF, Spring MVC und Struts von der Webentwicklung zu abstrahieren. Das erste Framework dieser Art war das Google Web Toolkit (GWT), ein Java-Web-Framework, das im Jahr 2006 vorgestellt wurde. Verglichen mit den bisher genannten klassischen MVC-Frameworks sind relativ wenige Web-Kenntnisse notwendig, um eine Java-Webanwendung zu entwickeln. Stattdessen wird hauptsächlich in Java entwickelt. Ein Cross-Compiler übersetzt dann den Java-Quellcode in eine komplizierte Java-Script-Anwendung. Die starke Abstraktion von der Web-Entwicklung setzt Vaadin fort.
Vaadin erschien im Jahr 2002 unter dem Namen "IT Mill Toolkit" als Teil des Millstone-Web-Frameworks. Erst im Jahr 2009 wurde es in Vaadin umbenannt. Aktuell ist die Version 7.2.2 die unter der Apache-Lizenz steht. Seit Vaadin das GWT zur Darstellung von Web-Seiten adaptierte, ist das Framework einer breiteren Öffentlichkeit bekannt (siehe Die Zukunft von GWT heißt Vaadin). Mittlerweile haben einige populäre Anwendungen das Web-Framework für sich entdeckt wie zum Beispiel das Java-CMS Magnolia (siehe Magnolia-Präsentation zum Thema). Vaadin erlaubt es wie GWT, eine Web-Anwendung komplett in Java zu entwickeln.
Die Architektur basiert auf dem Google Web Toolkit. Die Arbeitsteilung zwischen Client und Server ist so, dass auf der Client-Seite Vaadin-Widgets und eigene Widgets ausgeführt werden. Sie kommunizieren auf der Serverseite mit einem speziellen Vaadin-Servlet (siehe Abbildung). Das Programmiermodell erinnert an Swing. Die Programmierung findet wie bei beim Google Web Toolkit ausschließlich in Java statt. Das bedeutet, dass Views nicht gescripted, sondern in Java programmiert werden. Dazu stehen die gängigen Komponenten und Layouts zur Verfügung. Eigene Komponenten können leicht ergänzt werden.
Für die Eclipse-Programmierung gibt es ein Vaadin-Plug-in, das vor allem das Anlegen von Vaadin-Web-Projekten erleichtert. Die Dokumentation ist ausgezeichnet. Es steht ein frei verfügbares Buch auf der Vaadin-Homepage zur Verfügung, das von der Architektur, über die Einrichtung der Entwicklungsumgebung bis zur Programmierung alles Wissenswerte leicht verständlich erklärt. Vaadin-Anwendungen sind zur Servlet-API 2.5 kompatibel und können in einem einfachen Servlet-Container wie Jetty oder Tomcat ausgeführt werden.
Fazit: Vaadin ist sicher das modernste der hier vorgestellten Frameworks. Die hohe Abstraktion von der Webentwicklung wird Seiteneinsteigern von Struts oder JavaServer Faces zwar nicht unbedingt gefallen. Reine Java-Entwickler, die sich mit GWT oder RAP beschäftigt haben oder von der Swing- oder SWT-Entwicklung kommen, werden es aber umso mehr begrüssen. Der Markt an Vaadin-Entwicklern ist zwar nicht gerade gross, aber das sollte das niemand abhalten, dieses interessante Framework zu evaluieren.