Vaadin: Endlich 7

Mehr Freiheiten für Entwickler

Die Layout Engine von Vaadin wurde in der neuen Version komplett überarbeitet. In Vaadin 6 wurde Browser-Kompatibilität zu IE6 und IE7 garantiert, was dazu führte, dass große Teile des Layouting-Codes in JavaScript implementiert werden mussten und nicht auf die CSS Layouting Features der Browser zurückgegriffen werden konnte. Die Folge waren komplexe DOM-Komponentenbäume und hohe Ansprüche an die JavaScript Engines der Browser, was oft eine schlechte Performance bei einer großen Anzahl von GUI-Komponenten nach sich zog. Der Support für IE6 und IE7 wurde für Vaadin 7 gestrichen, wodurch der Komponentenbaum nun wesentlich vereinfacht werden konnte und das Layout auf effiziente Weise mit CSS umgesetzt wird. Um die CSS-Bearbeitung weiter zu unterstützen, setzt Vaadin 7 auf Sass, eine Metasprache, mit der komplexe CSS-Regeln in lesbaren Dateien definiert werden können. Die Vaadin-eigene Sass Engine führt die Sass-Dateien zur Laufzeit in CSS über, das an die Browser ausgeliefert wird. Um Sass optimal zu unterstützen, wurde die ursprünglich in Ruby implementierte Sass Engine für die Integration in Vaadin eigenständig nach Java portiert.

Weiterhin wurde in Vaadin 7 das Window API neu gestaltet, so dass sich dessen Verwendung nun auch wie eine Anwendungsentwicklung für das Web anfühlt. Nun gibt es nämlich endlich auch Zugriff auf den HttpRequest sowie ein abstraktes Web Page API. Auch bietet Vaadin 7 nun Multitab-Unterstützung von Hause aus. Diese war in Vaadin 6 nur über Umwege zu erreichen, und ein oft genannter Kritikpunkt.

Ausbau der Erweiterungsmöglichkeiten

Neu eingeführt wurde das Konzept einer Extension. Im Gegensatz zu den gewohnten serverseitigen Komponenten stellen diese eine neue Möglichkeit dar, um bestehende Komponenten um Funktionalität zu erweitern, ohne deren Code anzupassen. Der neue Mechanismus erlaubt es, mit wenig Code Komponenten zu erweitern, währenddessen in Vaadin 6 wegen fehlender Erweiterungsschnittstellen oft komplette Teile von Komponenten kopiert wurden, um nur kleine Anpassungen bezüglich Funktionalität oder Layout zu erreichen.

Die Kommunikationsschnittstelle zwischen Server und Client wurde in Vaadin 7 von Grund auf neu gestaltet. So ist es nun möglich, Methoden der serverseitigen Java-Komponenten im Browser via JavaScript zu exponieren – und das alleinig durch Schreiben von Java-Code. Damit kann praktisch ein JavaScript API der Applikation im Browser verfügbar gemacht werden, etwa um so die Integration mit Seitenteilen, die nicht von Vaadin kontrolliert werden, zu erleichtern.

Existierende JS-Komponenten können auf einfache Weise integriert werden. Dazu muss lediglich eine serverseitige Komponente und ein wenig JavaScript-Wrapper-Code implementiert werden, der die serverseitige Vaadin-Komponente mit der zu integrierenden JavaScript-Komponente verbindet. Die beiden Seiten können elegant mittels der eingeführten RPC-Technologie untereinander kommunizieren. Falls der zu integrierende JavaScript-Code keine eigene Komponente im GUI Layout enthält (z.B. Einbindung von JS-Code für Tracking- oder Analytics-Dienste) kann dies auch über Extensions umgesetzt werden. Das Laden von JavaScript-Dateien kann übrigens nun ebenfalls sehr bequem via Annotationen von serverseitigen Java-Klassen aus gesteuert werden. Das saubere Laden in entsprechender Reihenfolge übernimmt dann das Framework automatisch, damit ist ein weiteres Problem von Vaadin 6 gelöst.

Durch die deutlich vereinfachte Integration mit JavaScript-Bibliotheken schafft das Vaadin Framework die Anbindung an das JavaScript-Ökosystem, ohne das etablierte Programmiermodell für Standardkomponenten aufgeben zu müssen. Wir erwarten, dass die Anzahl Add-Ons für die Anbindung populärer JavaScript Toolkits mit Vaadin 7 deutlich zunehmen wird.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.