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.[6]

Vaadin

Basisdaten

Entwickler Vaadin Ltd.
Erscheinungsjahr 2002[1]
Aktuelle Version 24.0.4[2][3]
(11. April 2023)
Betriebssystem plattformübergreifend
Programmiersprache Java[4]
Lizenz Apache-Lizenz, Version 2.0[5]
vaadin.com

Merkmale Bearbeiten

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 Bearbeiten

Neben den OpenSource-Erweiterungen von Vaadin[7] vermarktet Vaadin Ltd. auch kommerzielle Erweiterungen:

Vaadin TouchKit[8]
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. TouchKit ist ab Vaadin-Version 10 nicht mehr verfügbar.
Vaadin TestBench[9]
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.
Vaadin Charts[10]
Bibliothek visueller Komponenten zur Darstellung animierter und interaktiver Diagramme in Vaadin Applikationen.

Geschichte Bearbeiten

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.[11] 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 Bearbeiten

Seit Vaadin 23.0 im März 2022 gibt es alle 3 Monate eine neue Release. Minor Releases werden nur 6 Monate (also bis zum Erscheinen der übernächsten Release) gewartet. Long Term Support (LTS) Releases werden im Falle von nicht abwärtskompatiblen Änderungen veröffentlicht. Diese werden bis 1 Jahr nach dem Erscheinen der nächsten LTS Release gewartet. Vaadin Ltd. bietet kommerziellen Support für LTS Releases bis zu 15 Jahre an.[12]

Für kommerzielle Kunden leistet Vaadin Gewähr für das Beheben aller erkannter Fehler in allen aktuell unterstützten Versionen.[13]

Konkurrenz Bearbeiten

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.[14]

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 2007 gibt es im deutschsprachigen Raum das freie Webframework CaptainCasa Enterprise Client[15], welches ebenfalls die serverseitige Implementierung von Webseiten ausschließlich mttels Java-Programmierung unterstützt. Implementierungs-Logik und Design sind bei CaptainCasa klar abgegrenzt. Es ist keinerlei JavaScript auf Client-Seite notwendig. Die eventgesteuerte Bearbeitung und die umfangreiche Komponenten-Bibliothek stellen ein vergleichbares Prinzip zu Vaadin dar.

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.[16][17] 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.[18]

Literatur Bearbeiten

  • 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.
  • Alejandro Duarte: Practical Vaadin: Developing Web Applications in Java. Apress, 2021, ISBN 978-1-4842-7178-0.
  • 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 Bearbeiten

Einzelnachweise Bearbeiten

  1. vaadin.com. (abgerufen am 5. August 2021).
  2. github.com.
  3. Vaadin 24.0.4. 11. April 2023.
  4. The vaadin Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Oktober 2018).
  5. github.com.
  6. FAQ. Vaadin Ltd., abgerufen am 6. Januar 2016.
  7. Vaadin Erweiterungen
  8. Vaadin TouchKit
  9. Vaadin TestBench
  10. Vaadin Charts
  11. Vaadin Directory
  12. Leif Åstrand: A simpler release model. Vaadin Ltd., 25. Januar 2022, abgerufen am 6. Juli 2023 (englisch).
  13. Vaadin Roadmap. Vaadin Ltd., abgerufen am 24. Januar 2022 (englisch).
  14. Vergleichsmatrix
  15. History CaptainCasa. 11. April 2023, abgerufen am 11. April 2023 (amerikanisches Englisch).
  16. guardrex: Einführung in Razor Components. Abgerufen am 18. März 2019 (deutsch).
  17. ASP.NET Blog | Blazor now in official preview! 18. April 2019, abgerufen am 25. April 2019 (amerikanisches Englisch).
  18. Blazor WebAssembly 3.2.0 now available. 19. Mai 2020, abgerufen am 20. Mai 2020 (amerikanisches Englisch).