Vaadin
eBook - ePub

Vaadin

Der kompakte Einstieg für Java-Entwickler

  1. 280 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

Vaadin

Der kompakte Einstieg für Java-Entwickler

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Vaadin ist ein populäres und kostenloses Frontend-Framework für Java-Enterprise-Entwickler, die moderne und komplexe Webapplikationen entwickeln. Mit Vaadin erzeugte Anwendungen sehen modern und elegant aus und bieten gleichzeitig eine sehr gute Performance.Dieses Buch bietet Ihnen einen schnellen Einstieg in die Verwendung von Vaadin. Sie lernen, wie Vaadin unter der Haube funktioniert, aus welchen Bausteinen es besteht und wie diese zusammenarbeiten. Außerdem geht es u.a. um folgende Themen: - Layout und Styling mit Themes- Integration von Vaadin-Projekten in verschiedene IDEs- Build-Prozess-Integration mit Maven- Verwendung von Add-ons- Automatisiertes Testen auf Unit-Test- und auf GUI-EbeneBest Practices in der Entwicklung und Ihre Optionen bei der Anwendungsarchitektur mit Vaadin runden den Einstieg praxisnah ab. Nach der Lektüre sind Sie in der Lage, eigene Webanwendungen mit Vaadin zu schreiben, und Sie haben ein Verständnis dafür, was eine gute Architektur für Vaadin-Applikationen ausmacht. "I'd like to thank and congratulate all the authors for a job well done. Extremely professional and straight to the point."Aus dem Geleitwort von Ville Ingman, Vaadin Advocate, Vaadin Ltd.

Häufig gestellte Fragen

Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ja, du hast Zugang zu Vaadin von Joachim Baumann,Daniel Arndt,Frank Engelen,Frank Hardy,Carsten Mjartan im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatik & Webprogrammierung. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Verlag
dpunkt
Jahr
2014
ISBN
9783864915864

1 Einleitung

1.1 Was ist Vaadin?

Vaadin ist ein auf dem Google Web Toolkit (siehe [GWT]) basierendes Open-Source-Framework, das die einfache Erstellung auch komplexer browserbasierter Applikationen ermöglicht.
Vaadin abstrahiert hierbei für die normale Programmierung von HTML, JavaScript, AJAX und browserspezifischen Details und bietet ein javabasiertes Programmiermodell mit Widgets und Events an, das sehr stark an klassische UI-Programmierung in Java angelehnt ist.
Programmierung vollständig in Java
Tatsächlich müssen wir uns in der normalen Programmierung mit Vaadin keine Gedanken über verschiedene Datenmodelle auf Client und Server machen und haben keine Schwierigkeiten mit der Aktualisierung der jeweiligen Daten. Wir können unsere verschiedenen Widgets und ihr Layout mit Java programmieren und kommen mit HTML und JavaScript nicht in Berührung.
Steuerung des Layouts über CSS
Zusätzlich können die Details des Layouts getrennt von der Programmierung beeinflusst und über CSS applikationsweit konsistent gesteuert werden, so dass bei Bedarf auch Look & Feel der gesamten Applikation über Themes ausgetauscht werden kann.
Über einen Erweiterungsmechanismus besteht die Möglichkeit, Widgets von Drittanbietern einfach zu integrieren und zu programmieren. Das Vaadin Directory (siehe [Vaadin]) bietet aktuell mehr als 400 Komponenten und Widgets an, die die Funktionalität von Vaadin erweitern.
Hinter den Kulissen implementiert Vaadin neben dem Framework auf der Serverseite, das wir in der normalen Programmierung benutzen, eine Client-Side Engine, die im Browser läuft und sowohl die Darstellung der Benutzerschnittstelle als auch die Übermittlung der Benutzerinteraktionen an den Server übernimmt und sich dabei auch um browserspezifische Anpassungen kümmert. Diese Client-Side Engine ist in Java geschrieben und wird mit dem GWT-Compiler in JavaScript übersetzt.
Während wir bei der normalen Programmierung nicht viel mit der Client-Side Engine zu tun haben, wird diese interessant, wenn wir eigene Widgets für die Erweiterung von Vaadin programmieren. Dies ist allerdings ein Thema für Fortgeschrittene und wird in diesem Buch nicht weiter betrachtet.

1.2 Historie

Die Entwicklung an Vaadin wurde bereits im Jahr 2000 gestartet, damals als Adapter für das Framework Millstone der Firma IT Mill Ltd., und die erste Version wurde 2002 veröffentlicht. Die Funktion umfasste damals Kommunikation mittels Ajax und eine eigene, proprietäre Render-Engine für die Darstellung von Widgets.
Ab 2006 wurde das Framework eigenständig kommerziell weiterentwickelt und 2007 umbenannt zu IT Mill Toolkit. Da sich im Lichte des Open-Source-Frameworks GWT die Weiterentwicklung einer eigenen Render-Engine nicht lohnt, wurde der Wechsel zu GWT als Basis für das Rendering gestartet. Ende 2007 wurde die Lizenz in eine Open-Source-Lizenz geändert.
2008 investierte einer der Gründer von MySQL (Monty Widenius) einen Teil seines Vermögens in die Firma und schuf damit die Grundlage für die Entwicklung der ersten Version des IT Mill Toolkit 5, die nach langer Betatestperiode 2009 erschien. Kurz nach Erscheinen wurde das Framework umbenannt in Vaadin (der finnische Name für ein weibliches Rentier) und eine Vorabversion der Version 6 veröffentlicht. Zusätzlich wurde auch IT Mill Ltd. umbenannt zu Vaadin Ltd., um klarzumachen, wie sehr die Firma hinter ihrem Framework steht.
Es dauerte bis März 2013, bis die Version 7 herauskam. Ende Juni 2013 kam die Version 7.1 heraus, die abgesehen von Fehlerkorrekturen als wichtigste Funktionalität Server Push enthielt. Hiermit wird der Server in die Lage versetzt, eigenständig Informationen auf dem Client zu aktualisieren, was das Programmiermodell noch flexibler macht.

1.3 Wofür ist Vaadin gut?

Vaadin ist ein typischer Vertreter eines Rich Internet Application Frameworks (RIA Framework), mit dessen Hilfe Webapplikationen implementiert werden, die so weit wie möglich einer klassischen Desktop-Applikation entsprechen. Hierbei zeigt sich als Trend, dass mehr und mehr weggegangen wird von proprietären Lösungen wie zum Beispiel Adobe Flash hin zu HTML5 und JavaScript. GWT und damit auch Vaadin setzen auf diesem Trend auf.
Mit immer größerer Leistungsfähigkeit der unterliegenden Browser und eines Frameworks wie Vaadin wird die Distanz zwischen klassischen Applikationen und Applikationen, die im Browser laufen, immer geringer, und Analysten sagen bereits seit 2007 voraus, dass die Grenzen zwischen diesen Applikationsarten immer mehr verschwimmen werden (siehe [Forrester 2007]).
Damit stellt sich weniger die Frage, was wir mit Vaadin machen können, als was sich nicht machen lässt. Die folgenden beiden Punkte sind problematisch:
  • Verarbeitung großer Datenmengen auf dem Client
  • vollständige Funktionalität ohne Netzzugang (Offline-Funktion für mobile Geräte)
Im ersten Fall stellt sich die Frage, warum die Datenverarbeitung auf dem Client durchgeführt werden muss und ob es nicht sinnvoller wäre, die Daten zum Server oder in eine Cloud-Infrastruktur zu bewegen.
Im zweiten Fall haben wir eine Situation, die das Programmiermodell von Vaadin ad absurdum führt. Wenn es hingegen um zeitlich beschränkte Offline-Funktionalität geht, dann gibt es zwei Aspekte: zum einen die Berechnung von Informationen auf dem Server. Dies kann man in den Griff bekommen, indem die entsprechenden Berechnungen lokal durchgeführt werden oder eine Meldung angezeigt wird, dass der Service aktuell nicht zur Verfügung steht. Der andere Aspekt ist die Eingabe von Daten. Hier besteht die Möglichkeit, die Daten lokal zu cachen und zum Server zu übertragen, sobald dieser wieder verfügbar ist.
Die Vaadin-Erweiterung TouchKit für mobile Geräte bietet Unterstützung für diese Vorgehensweisen. In jedem Fall ist es aber sinnvoll, den Nutzer auf die fehlende Verbindung hinzuweisen; das Touchkit ermöglicht, hierfür ein eigenes Theme zu verwenden, um dies sehr deutlich zu signalisieren.

1.4 Unsere Erfahrungen mit Vaadin

Wir verwenden Vaadin in vielen unserer Projekte und haben die verschiedensten Arten von Anwendungen bereits erfolgreich umgesetzt.
Es gibt prinzipiell keinen Typ Anwendung, bei dem wir sagen würden, dass Vaadin nicht verwendet werden kann – im Gegenteil sind die durch Vaadin zur Verfügung gestellten Abstraktionen und Funktionen so hilfreich, dass wir bei neuen Webapplikationen immer zur Verwendung von Vaadin tendieren. Dies gilt für Anwendungen im Intranet, im Internet, mit wenigen und vielen Benutzern, mit einfachen und komplexen Benutzerschnittstellen. Allerdings muss man bei komplexeren Benutzerschnittstellen darauf achten, dass die Komponenten nicht zu sehr verschachtelt werden (wozu man als unerfahrener Vaadin-Entwickler neigen kann), um die Applikation nicht unnötig zu bremsen.
Ein weiterer wichtiger Punkt ist, wie bei jeder Webapplikation, die Größe der Session. Vaadin legt die Benutzerschnittstellenobjekte (alle Objekte, die an den UI-Objekten hängen) in der Session ab und vergrößert diese damit natürlich (logischerweise umso mehr, je mehr verschachtelte Komponenten die Anwendung enthält). Nach dem Schließen des Browserfensters bleibt die Session so lange erhalten, bis sie vom System abgeräumt wird, und verbraucht damit weiterhin Speicher (sofern sich der Benutzer nicht explizit abmeldet). Wenn zusätzlich die Benutzer die gleiche Applikation mehrfach öffnen, dann legt Vaadin diese Objektbäume natürlich mehrfach in der Session ab. Dies ist aber nichts Ungewöhnliches und wird auch von anderen serverzentrierten Frameworks in gleicher Weise gelöst. In der praktischen Verwendung haben wir noch keine Probleme erlebt, die die Verwendung von Vaadin verhindert hätten, und auch die notwendige Größe der verwendeten Server ist im normalen Bereich. Ob allerdings eine Webapplikation wie Facebook mit Vaadin performant wäre, wagen wir zu bezweifeln.
Die eingebauten Kommunikationsmechanismen erlauben eine gute und reaktionsfähige Interaktion auch mit vergleichsweise niedrigen Datenraten des unterliegenden Netzes, solange die Latenzzeiten nicht zu hoch werden.
CenterDevice
Ein Beispiel, das die Verwendung von Vaadin mit vielen Nutzern und hohen nichtfunktionalen Anforderungen sehr gut demonstriert, ist die Cloud-Anwendung CenterDevice (siehe [CenterDevice]), die von Mitarbeitern der codecentric entwickelt wurde. CenterDevice ist eine Anwendung für Cloud Storage, in der Sie Ihre Daten in einer deutschen Cloud ablegen, automatisch verschlagworten und mit anderen teilen können. Hier haben wir eine komplexe Benutzerschnittstelle kombiniert mit sehr vielen Benutzern und großen Datenmengen, die vom und zum Nutzer transferiert werden müssen und für die auch (zumindest für die gängigsten Formate) eine direkte Darstellung in der Applikation möglich sein muss.
image
Abb. 1–1 Beispiel einer komplexen Vaadin-Applikation (CenterDevice)
Hier waren tatsächlich einige Iterationen notwendig, bis die Applikation die gewünschte Reaktivität hatte, auch und gerade beim Umgang mit großen Dateien. Aber das Ergebnis spricht für sich, und wir würden uns auch in diesem Fall mit den sehr hohen Anforderungen wieder für Vaadin entscheiden. Holen Sie sich bei Interesse einfach einen Test-Account und urteilen Sie selbst.
Einzig Offline-Applikationen, die ohne Verbindung mit dem Server uneingeschränkt funktionieren, sind mit Vaadin ohne zusätzliche Arbeit nicht möglich. Vaadin bietet zwar rudimentäre Unterstützung, aber für die Offline-Unterstützung ist trotzdem eine Menge an Handarbeit nötig, die die Vorteile von Vaadin einschränkt.

1.5 Weitergehende Informationen

Auf die Website von Vaadin gelangen Sie unter folgender URL:
http://www.vaadin.com
Hier gibt es nicht nur die jeweils aktuelle Version von Vaadin, Add-ons für die Entwicklung und die Integration in verschiedene Entwicklungsumgebungen, sondern auch Tutorials und eine Online-Version des »Book of Vaadin«, der Referenz für die Verwendung von Vaadin.
Außerdem finden Sie dort das Vaadin-Forum, das die direkte Kommunikation mit den Vaadin-Entwicklern ermöglicht. Falls Sie nicht den Umweg über die Vaadin-Website nehmen wollen, folgen Sie einfach der URL:
http://www.vaadin.com/forum

2 Erste Schritte mit Vaadin

In diesem Kapitel werden wir die Entwicklungsumgebung Eclipse einrichten, unser erstes Vaadin-Projekt aufsetzen und eine einfache Hello-World-Applikation schreiben. Wir werden sehen, wie wir Maven verwenden können, um Vaadin-Projekte zu bauen, und zum Schluss noch einen kurzen Blick auf andere Entwicklungsumgebungen werfen.

2.1 Einrichten der Entwicklungsumgebung Eclipse

Für das einfache Arbeiten mit Vaadin in Eclipse benötigen wir Java und Eclipse, das Eclipse-Plugin für Vaadin-Entwicklung, das von Vaadin selbst zur Verfügung gestellt wird, einen Servlet-Container (wir verwenden der Einfachheit hal...

Inhaltsverzeichnis

  1. Cover
  2. Titel
  3. Impressum
  4. Inhaltsverzeichnis
  5. Geleitwort
  6. Vorwort
  7. 1 Einleitung
  8. 2 Erste Schritte mit Vaadin
  9. 3 Die Vaadin-Architektur
  10. 4 UI-Komponenten
  11. 5 Data Binding
  12. 6 Real-Time-Webapplikationen mit Vaadin Server Push
  13. 7 Layout und Styling
  14. 8 Navigation in Ajax-Anwendungen
  15. 9 Anwendungsarchitektur mit Vaadin
  16. 10 Add-ons
  17. 11 Vaadin und Maven
  18. 12 Automatisiertes Testen von Vaadin-Anwendungen
  19. 13 Zusammenfassung
  20. 14 Literatur
  21. Index
  22. Fußnoten