36
bridgingIT / Seite 1 Yet another Java Web Framework? Christian Janz [email protected]

Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

Embed Size (px)

DESCRIPTION

Vaadin erfreut sich immer größerer Beliebtheit. Ist es nur ein weiteres neues Java Web Framework oder was steckt dahinter? Diese Session gibt eine Übersicht über Vaadin und vergleicht es mit anderen Frameworks. Außerdem werden einzelne Aspekte wie Databinding in Live Demos genauer betrachtet. Abrundend gibt der Vortrag einen Überblick über die Vor- und Nachteile und stellt typische Einsatzszenarien vor.

Citation preview

Page 1: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 1

Yet another Java Web Framework?

Christian Janz

[email protected]

Page 2: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 2

Agenda

Einführung in Vaadin

Vergleich mit anderen Frameworks

Überblick

Architektur

Zusammenfassung

Aspekte

Unterschiede

Databinding

Entwicklung von Komponenten

Page 3: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 3

Agenda

Einführung in Vaadin

Einführung in Vaadin

Vergleich mit anderen Frameworks

Überblick

Architektur

Zusammenfassung

Aspekte

Unterschiede

Databinding

Entwicklung von Komponenten

Page 4: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 4

Page 5: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 5

Vaadin = finnisch für weibliches Rentier (wörtlich „Ich beharre“)

RIA-Framework der Vaadin Ltd. aus Finnland www.vaadin.com Showcase: http://demo.vaadin.com/sampler

Framework steht unter Apache License 2 Viele kostenlose Addons

Kostenpflichtiger Pro Account

Feature Voting, Bug-Fix Priority

Pro Addons

Support

Kein wirklich neues Framework

Überblick

Page 6: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 6

Geschichte

2000 2006 2009 2012

IT Mill wird gegründet

MillstoneLibrary 1.0

IT Mill Toolkit Release 4 AJAX

Weitere Projekte auf Basis der Millstone Library

Kommerzielle Lizenz Apache License 2

Vaadin 6

Eclipse Plugin

VaadinDirectory

Vaadin 6.8.5

http://vaadin.com/book/-/page/intro.overview.background.html

20132008

IT Mill Toolkit Release 5

Vaadin 7Beta 7

Page 7: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 7

Page 8: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 8

Vaadin Framework

Architektur: Grobe Übersicht

https://vaadin.com/book/-/page/intro.html#figure.intro.architecture

Page 9: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 9

Plain GWT

Vaadin

Vergleich mit Plain GWT

Page 10: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 10

• Voraussetzung

• Eclipse oder Netbeans

• Servlet-Container (im Beispiel: Tomcat 7)

• Installation Vaadin Tools von http://vaadin.com/eclipse

• Siehe https://vaadin.com/book/-/page/getting-started.package.html

Demo Hello World

Page 11: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 11

Wichtige Punkte in dieser Demo

• Eclipse-Integration: Projekt Wizard• Projekt-Layout• Einfachheit der Entwicklung• Debuggen in Eclipse• Debuggen im Browser

• Inhalt der XHR-Anfragen

• Debug-Console (?debug)

Demo: Hello World

Page 12: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 12

Agenda

Databinding

Einführung in Vaadin

Vergleich mit anderen Frameworks

Überblick

Architektur

Zusammenfassung

Aspekte

Unterschiede

Databinding

Entwicklung von Komponenten

Page 13: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 13

Interfaces

String lastName

class Person {

}

List<Person>

Page 14: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 14

Databinding: Big Picture

Page 15: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 15

• Mehrere Views synchronisieren• Konvertierung Model View

• Bean Validation (JSR-303)• Tabelle und Formular synchronisieren

• Weitere Demos siehe: http://demo.vaadin.com/book-examples-vaadin7/book/

Databinding: Feature-Demos

Page 16: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 16

Agenda

Entwicklung von Komponenten

Einführung in Vaadin

Vergleich mit anderen Frameworks

Überblick

Architektur

Zusammenfassung

Aspekte

Unterschiede

Databinding

Entwicklung von Komponenten

Page 17: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 17

Grundsätzlich 3 Arten von Komponenten

• Komplett serverseitig Composite Components

• Server- und clientseitig mit GWT• Server- und clientseitig mit Plain JavaScript

Entwicklung von Komponenten

Page 18: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 18

• Unterklassen von com.vaadin.ui.CustomComponent• Rein Serverseitig• Komposition bestehender Komponenten

Composite Components

public class LoginForm extends CustomComponent {

private TextField usernameField;

private PasswordField passwordField;

public LoginForm() {VerticalLayout verticalLayout = new VerticalLayout();setCompositionRoot(verticalLayout);

usernameField = new TextField("Username");usernameField.setRequired(true);verticalLayout.addComponent(usernameField);

passwordField = new PasswordField("Password");verticalLayout.addComponent(passwordField);

}

}

Page 19: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 19

Client-Side Engine

Page 20: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 20

Custom Vaadin Widget mit GWT

Page 21: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 21

Folgende Artefakte müssen implementiert werden:

• GWT Modul• GWT Widget (neu oder bestehend)

• Connector-Klasse• SharedState-Klasse

• Serverseitige Komponentenklasse

Siehe https://vaadin.com/book/vaadin7/-/page/gwt.html

Custom Vaadin Widget mit GWT

Page 22: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 22

Custom Vaadin Widget mit JS

Page 23: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 23

Folgende Artefakte müssen implementiert werden:

• Widget in JavaScript (neu oder bestehend)• Connector-Klasse in JavaScript

• Serverseitige Komponentenklasse in Java

Siehe https://vaadin.com/book/vaadin7/-/page/gwt.javascript.html

Custom Vaadin Widget mit JS

Page 24: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 24

Agenda

Vergleich mit anderen Frameworks

Einführung in Vaadin

Vergleich mit anderen Frameworks

Überblick

Architektur

Zusammenfassung

Aspekte

Unterschiede

Databinding

Entwicklung von Komponenten

Page 25: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 25

.equals(aPear)

Page 26: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 26

Aspekte

• Server/Client UI

• Anwendungs-/Seitenbasiert

• Komponenten

• Skalierbarkeit

Architektur

Organisation

• Lizenz

• Firma

• Community

• Dokumentation

• SupportEntwicklung

• Lernkurve

• Verwendete Sprachen

• Eigene Komponenten

Page 27: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 27

Frameworks

Page 28: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 28

Unterschiede Organisation

Aspekt Vaadin GWT Smart GWT RichFaces

Lizenz Apache 2.0 Apache 2.0 LGPL/Kommerziell

LGPL

VerantwortlicheOrganisation

Vaadin Ltd. Google Isomorphics JBoss

Community

Dokumentation

Kommerzieller Support

Ja Nein Ja Ja

Page 29: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 29

Unterschiede Architektur

Aspekt Vaadin GWT Smart GWT RichFaces

Server-/Client-UI-Framework

Server Client Client/Server* Server

Anwendungs-/Seitenbasiert

Anwendung Anwendung Anwendung Seiten

Verfügbarkeit Komponenten

Skalierbarkeit

Page 30: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 30

Unterschiede Entwicklung

Aspekt Vaadin GWT Smart GWT RichFaces

Geringe Lernkurve

VerwendeteSprachen

Java, CSS Java 1, CSS Java, JavaScript, CSS

Java, JavaScript, HTML, XML, CSS

Einfachheit Komponenten-Entwicklung

1 nur Teilmenge

Page 31: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 31

Zusammenfassung

Agenda

Einführung in Vaadin

Vergleich mit anderen Frameworks

Überblick

Architektur

Zusammenfassung

Aspekte

Unterschiede

Databinding

Entwicklung von Komponenten

Page 32: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 32

• Open Source• Reifes Framework mit guter Community• Gute Dokumentation• Kommerzieller Support erhältlich, falls gewünscht

• Viele Komponenten und Addons• Einfache Entwicklung• Gutes Theming-Konzept• Einfaches Deployment

• Verwendung von GWT auf Clientseite

Vorteile

Page 33: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 33

• Bisher nicht so weit verbreitet

• Einige Addons sind kostenpflichtig

• Skaliert nicht beliebig• Hat Probleme bei schlechten Antwortzeiten (Pings)

Nachteile

Page 34: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 34

Hauptszenario: Rich Intranet Applications

• Anwendungen mit angemeldeten Benutzern• Bedienung wie Desktop-Anwendungen• Verarbeitung von Daten• Komplexere Logik• Schnelle Entwicklung ohne großen Vorlauf

Alternativ: Rich Internet Applications

• Wichtig: Webserver „in der Nähe“ der Anwender

Einsatzszenarien

Page 35: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

bridgingIT / Seite 35

Fragen und Antworten

Fragen?

Page 36: Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)

Copyright © BridgingIT GmbH

Alle Rechte vorbehalten. Die Weitergabe oder Vervielfältigung ist ohne vorherige schriftliche Zustimmung der BridgingIT GmbH nicht erlaubt.

Wir freuen uns auf Sie.

Standort Mannheim

N7, 5-6

68161 Mannheim

Standort Frankfurt

Solmsstraße 4

60486 Frankfurt

Standort Stuttgart

Königstraße 42

70173 Stuttgart

Standort Karlsruhe

Rüppurrer Straße 4

76137 Karlsruhe

Standort Köln

Richmodstraße 6

50667 Köln