Vaadin (eBook)

Der kompakte Einstieg für Java-Entwickler
eBook Download: PDF
2014 | 1. Auflage
280 Seiten
dpunkt (Verlag)
978-3-86491-585-7 (ISBN)

Lese- und Medienproben

Vaadin -  Joachim Baumann,  Daniel Arndt,  Frank Engelen,  Frank Hardy,  Carsten Mjartan
Systemvoraussetzungen
27,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
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-Ebene Best 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.

Joachim Baumann ist Geschäftsführer der codecentric AG in Frankfurt/Main. Er ist unter anderem Autor der Bücher 'Groovy' und 'Gradle', die im dpunkt.verlag erschienen. Daniel Arndt ist Senior IT-Consultant der codecentric AG in Frankfurt/Main. Durch seine Aufgaben als Entwickler, Architekt und Coach verfügt er über eine umfassende Expertise in der Einführung und dem Einsatz von Vaadin. Frank Engelen ist Senior IT-Consultant der codecentric AG in Solingen. Mit über 15 Jahren IT-Erfahrung berät er in den letzten drei Jahren vornehmlich Kunden beim Einsatz von Vaadin in komplexen Umgebungen. Frank Hardy ist Senior IT-Consultant der codecentric AG in Frankfurt/Main. Er setzt seit fünf Jahren Vaadin in komplexen Kundenprojekten ein und hat ein besonderes Interesse am Thema Anwendungsarchitektur. Carsten Mjartan ist Senior IT-Consultant der codecentric AG in Frankfurt/Main. Er ist als Entwickler, Architekt und Coach in vielen agilen Entwicklungsprojekten tätig und setzt dort sehr häufig Vaadin ein.

Joachim Baumann ist Geschäftsführer der codecentric AG in Frankfurt/Main. Er ist unter anderem Autor der Bücher "Groovy" und "Gradle", die im dpunkt.verlag erschienen. Daniel Arndt ist Senior IT-Consultant der codecentric AG in Frankfurt/Main. Durch seine Aufgaben als Entwickler, Architekt und Coach verfügt er über eine umfassende Expertise in der Einführung und dem Einsatz von Vaadin. Frank Engelen ist Senior IT-Consultant der codecentric AG in Solingen. Mit über 15 Jahren IT-Erfahrung berät er in den letzten drei Jahren vornehmlich Kunden beim Einsatz von Vaadin in komplexen Umgebungen. Frank Hardy ist Senior IT-Consultant der codecentric AG in Frankfurt/Main. Er setzt seit fünf Jahren Vaadin in komplexen Kundenprojekten ein und hat ein besonderes Interesse am Thema Anwendungsarchitektur. Carsten Mjartan ist Senior IT-Consultant der codecentric AG in Frankfurt/Main. Er ist als Entwickler, Architekt und Coach in vielen agilen Entwicklungsprojekten tätig und setzt dort sehr häufig Vaadin ein.

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.

Tatsächlich bringt sich Vaadin auch sehr stark in das GWT-Projekt ein: Es stellt ein Mitglied des Steuerungsausschusses und organisiert auch die Konferenz gwt.create – sieht sich also nicht als Konkurrenz, sondern in positiver Koexistenz mit GWT.

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...

Erscheint lt. Verlag 26.11.2014
Verlagsort Heidelberg
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Web / Internet
Schlagworte moderne Web-Frameworks • Web 2.0 • Webentwicklung • Web-Entwicklung
ISBN-10 3-86491-585-6 / 3864915856
ISBN-13 978-3-86491-585-7 / 9783864915857
Haben Sie eine Frage zum Produkt?
Wie bewerten Sie den Artikel?
Bitte geben Sie Ihre Bewertung ein:
Bitte geben Sie Daten ein:
PDFPDF (Wasserzeichen)
Größe: 11,1 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Strategien, Erfolgsrezepte, Lösungen

von Alexander Steireif; Rouven Alexander Rieker; Markus Bückle

eBook Download (2021)
Rheinwerk Computing (Verlag)
49,90