Vaadin
Vaadin ist ein freies Webframework für Rich Internet Application (RIA) unter der Apache-Lizenz 2.0. Im Gegensatz zu JavaScript-Bibliotheken und auf Browser-Plugins basierenden Lösungen bietet es eine serverseitige Architektur, was bedeutet, dass der Großteil der Programmlogik auf dem Server läuft. Auf der Client-Seite baut Vaadin ab Version 10 auf Web Components auf, zuvor basierte es auf dem Ajax-Framework Google Web Toolkit. Es kann mit eigenen Komponenten erweitert werden. Vaadin wird hauptsächlich von der Firma Vaadin Ltd. (ehemals IT Mill) aus Turku entwickelt.[5]
Vaadin | |
---|---|
Basisdaten | |
Entwickler | Vaadin Ltd. |
Erscheinungsjahr | 2002[1] |
Aktuelle Version | 22.0.3[2] (19. Januar 2022) |
Betriebssystem | plattformübergreifend |
Programmiersprache | Java[3] |
Lizenz | Apache-Lizenz, Version 2.0[4] |
vaadin.com |
Merkmale
Eines der Hauptmerkmale von Vaadin ist, dass der Softwareentwickler die gesamte Anwendung in Java schreiben kann. Das Framework umfasst ereignisgesteuerte Programmierung sowie Steuerelemente, die das Programmiermodell näher an die Modelle üblicher GUI-Software bringt als bei traditioneller Webentwicklung mit HTML und JavaScript.
Vaadin benutzte bis Version 10 Google Web Toolkit (GWT) zum Darstellen von Webseiten, ab dieser Version setzt es mit dem neuen Teilframework "Flow" auf WebComponents auf. Es fügt allen Aktionen eine serverseitige Datenvalidierung hinzu, wodurch der Server über möglicherweise manipulierte Client-Daten informiert und diese Veränderungen unterbindet. Vaadins Standardkomponenten können mit eigenen Steuerelementen erweitert werden, für die Themes mit CSS erstellt werden können.
Erweiterungen und Werkzeuge
Neben den OpenSource-Erweiterungen von Vaadin[6] vermarktet Vaadin Ltd. auch kommerzielle Erweiterungen:
- Vaadin TouchKit[7]
- Eine Erweiterung für Vaadin Applikationen, die in mobilen Endgeräten wie native Applikationen wirken. Die Applikationen laufen mit HTML5, JavaScript und CSS auf dem Endgerät im Vollbildmodus des Browsers. Mit den Möglichkeiten von HTML5 und den Apache Cordova APIs können Beschleunigungssensor, Kamera, Kompass und Geolokation verwendet werden.
- Vaadin TestBench[8]
- Vaadin TestBench ist ein auf Selenium2 aufbauendes Werkzeug für die Erstellung automatisierter Oberflächentests. Mit einem Recorder nimmt man Testfälle auf. Diese werden als JUnit Tests abgelegt und verändert. Die Tests können lokal oder remote laufen. Die Testergebnisse werden in Dateien gespeichert.
Geschichte
Die Entwicklung begann zunächst als Adapter, aufbauend auf dem quelloffenen Web-Framework Millstone 3, das im Jahr 2002 freigegeben wurde. Es führte eine ajaxbasierte Client-Kommunikation und Renderengine ein. Im Jahr 2006 wurde dieses Konzept separat als kommerzielles Produkt entwickelt. Dadurch sind große Teile der serverseitigen Vaadin-API noch immer mit den swingähnlichen APIs von Millstone kompatibel.
Anfang 2007 wurde der Produktname zu IT Mill Toolkit geändert und Version 4 freigegeben. Es benutzte eine proprietäre Ajax-Implementation für die Darstellung auf der Client-Seite, was es kompliziert machte, neue Widgets zu implementieren. Ende 2007 wurde die proprietäre Implementierung auf der Client-Seite aufgegeben. Stattdessen wurde das Google Web Toolkit integriert, um die clientseitigen Komponenten darzustellen. Zur gleichen Zeit wurde die Produktlizenz in die Version 2.0 der freien Apache-Lizenz geändert. Die erste Veröffentlichung einer produktionsfähigen Version von IT Mill Toolkit 5 erfolgte am 4. März 2009 nach einer mehr als ein Jahr andauernden Beta-Periode.
Am 11. September 2008 wurde öffentlich angekündigt, dass Michael Widenius, der Hauptentwickler der originalen Version von MySQL, eine nicht genannte Summe in das Unternehmen IT Mill investierte, welches das Toolkit entwickelte. Am 20. Mai 2009 wurde das IT Mill Toolkit in Vaadin umbenannt; der Name stammt vom finnischen Wort für ein weibliches Rentier, das auch als „Ich beharre“ übersetzt werden kann. Zusätzlich zur Namensänderung wurde zusammen mit der Community eine Vorabfreigabe von Version 6 getätigt.
Am 30. März 2010 wurde Vaadin Directory geöffnet, ein Portal für die Verbreitung von kommerziellen und Open-Source-Erweiterungen für Vaadin.[10] Die kommerziellen und freien Erweiterungen des Vaadin-Teams werden seit damals ebenfalls über das Vaadin Directory vertrieben. Seit 25. Februar 2011 gibt es ein kommerzielles Supportmodell, die sogenannten Vaadin Pro Accounts.
Am 4. März 2013 wurde Vaadin 7, die erste Hauptversion seit der Umbenennung in Vaadin 2009, veröffentlicht.
Am 25. Juni 2018 wurde Version 10 veröffentlicht, mit der die Umstellung von GWT zu Web Components als zentrale Client-Technologie erfolgte.
Releasefrequenz, Support und Abwärtskompatibilität
Ungefähr alle zwei Jahre veröffentlicht Vaadin eine Long Term Support (LTS) Release. Diese Releases werden 5 Jahre (für kommerzielle Kunden 15 Jahre) ab Veröffentlichung unterstützt. Diese Unterstützung enthält Bugfixes und vollständig abwärtskompatible neue Funktionalitäten.[11]
Alle drei Monate werden Nicht-LTS-Versionen veröffentlicht und 4 Monate unterstützt. Diese Versionen sind inkrementelle Schritte zur nächsten LTS-Version und enthalten neue Funktionalitäten, die teilweise auch in die aktuell unterstützten LTS-Versionen einfließen.[11] Für Version 22 ist eine Unterstützung von 12 Monaten nach Release der LTS 23, also bis März 2023, angekündigt. Damit wird Benutzern, die schon mit Vaadin 22 arbeiten, aber noch nicht auf Java 11, längere Zeit gegeben, um auf Java 11 umzusteigen.[12]
Für kommerzielle Kunden leistet Vaadin Gewähr für das Beheben aller erkannter Fehler in allen aktuell unterstützten Versionen.[11]
Konkurrenz
Historisch wurde Vaadin mit den Frameworks wingS, Echo/Echo2 und ThinWire verglichen, die ein ähnliches, serverseitiges Programmiermodell benutzen. Die serverseitigen APIs sind ziemlich ähnlich, jedoch unterscheiden sich die clientseitigen Interaktionen (z. B. im Webbrowser) bis Version 10 darin, dass Vaadin in Java programmierte GWT-Widgets benutzt, im Gegensatz zu den in JavaScript implementierten Komponenten von Echo und Thinwire. Ab Version 10 ist dieser Unterschied geringer, da Vaadin nun auch (via WebComponents) in JavaScript implementierte Komponenten verwendet.
Die am meisten zu Vergleichen herangezogenen Frameworks waren früher Remote Application Platform (RAP), Apache Flex, Google Web Toolkit, Apache Wicket und ICEfaces – heute sind es die JavaScript-Frameworks React, Angular und Vue.js. Auf der Website von Vaadin findet man eine diesbezügliche Vergleichsmatrix.[13]
PhoneGap, ein ebenfalls auf Apache Cordova basierendes Framework, kann als Konkurrenz zu Vaadin TouchKit angesehen werden. Allerdings beruht PhoneGap in der Programmierung auf HTML5, CSS3 und JavaScript.
Seit 2019 verfolgt Microsoft in ASP.NET Core V3 mit Server-side Blazor ein vergleichbares Prinzip, das die Entwicklung interaktiver Weboberflächen mit C# (ohne notwendige JavaScript-Programmierung) unterstützt.[14][15] Daneben gibt es seit Mai 2019 auch die Variante Blazor Webassembly, bei der die Weboberfläche und C# Code mit Hilfe von WebAssembly direkt im Browser ausgeführt wird.[16]
Literatur
- Joachim Baumann, Daniel Arndt, Frank Engelen, Frank Hardy, Carsten Mjartan: Vaadin : Der kompakte Einstieg für Java-Entwickler. dpunkt, 2015, ISBN 978-3-86490-206-2.
- Vaadin Team: Book of Vaadin. Vaadin 14 Edition. Hrsg.: Vaadin Ltd. Turku, Finland 2019, ISBN 978-1-69212-144-0 (englisch, 809 S., vaadin.com [PDF; 9,5 MB; abgerufen am 8. Juni 2021]).
Weblinks
- Community-Website
- Vaadin-Demoanwendungen (online)
- IT Mill
- Webpräsenz des Google Web Toolkits
- Artikel auf Ajaxian.com (englischsprachig)
- Artikel auf WebAppers.com (englischsprachig)
- Vaadin - ein Java-Webframework im Visier Artikel aus dem Java Magazin 9.2011
- Vaadin - Endlich 7 Artikel aus dem Java Magazin 6.2013
- JavaAktuell: Vaadin 10: Der Sprung von GWT zu WebComponents Artikel in JavaAktuell 02.2019
- Roadmap / Supportzeitraum
- Support für 22 (JDK 8)
Einzelnachweise
- vaadin.com. (abgerufen am 5. August 2021).
- github.com.
- The vaadin Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Oktober 2018).
- github.com.
- FAQ. Vaadin Ltd., abgerufen am 6. Januar 2016.
- Vaadin Erweiterungen
- Vaadin TouchKit
- Vaadin TestBench
- Vaadin Charts
- Vaadin Directory
- Vaadin Roadmap. These are the features we are planning to add next to Vaadin platform. Vaadin Ltd., abgerufen am 24. Januar 2022 (englisch).
- Leif Åstrand, VP or Product Management at Vaadin: Change minimum supported Java version to Java 11 #12260. github, 17. Januar 2022, abgerufen am 24. Januar 2022 (englisch): „We have decided to keep maintaining Vaadin 22 for 12 months after Vaadin 23 is released, i.e. until March 2023. We're doing this so that users who are already on Vaadin 22 but not yet ready to upgrade to Java 11 will have more time to upgrade Java while still using a version that will receive security patches and other critical fixes.“
- Vergleichsmatrix
- guardrex: Einführung in Razor Components. Abgerufen am 18. März 2019 (deutsch).
- ASP.NET Blog | Blazor now in official preview! 18. April 2019, abgerufen am 25. April 2019 (amerikanisches Englisch).
- Blazor WebAssembly 3.2.0 now available. 19. Mai 2020, abgerufen am 20. Mai 2020 (amerikanisches Englisch).