SlideShare una empresa de Scribd logo
1 de 36
Yet another Java Web Framework?


             Christian Janz
         christian.janz@bridging-it.de




                                         bridgingIT / Seite 1
Agenda

Einführung in Vaadin

Überblick

Architektur

Databinding

Entwicklung von Komponenten


Vergleich mit anderen Frameworks

Aspekte

Unterschiede


Zusammenfassung




                                   bridgingIT / Seite 2
Einführung in Vaadin

Agenda


Einführung in Vaadin

Überblick

Architektur

Databinding

Entwicklung von Komponenten


Vergleich mit anderen Frameworks

Aspekte

Unterschiede


Zusammenfassung


                                   bridgingIT / Seite 3
bridgingIT / Seite 4
Überblick

   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




                                                 bridgingIT / Seite 5
Geschichte

                 Kommerzielle Lizenz                                        Apache License 2
                                                                          Vaadin 6

                                                                       Eclipse Plugin
                                                                                                  Vaadin 6.8.5
           Weitere Projekte auf Basis der
                 Millstone Library                             IT Mill Toolkit                       Vaadin 7
                                                                 Release 5                            Beta 7
      Millstone
     Library 1.0
                                             IT Mill Toolkit
                                               Release 4                          Vaadin
IT Mill wird
                                                 AJAX                           Directory
gegründet




 2000                                           2006              2008 2009                    2012 2013


http://vaadin.com/book/-/page/intro.overview.background.html
                                                                                             bridgingIT / Seite 6
bridgingIT / Seite 7
Architektur: Grobe Übersicht




                Vaadin Framework




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

                                                                      bridgingIT / Seite 8
Vergleich mit Plain GWT




                     Vaadin




                    Plain GWT

                                bridgingIT / Seite 9
Demo Hello World

•   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




                                                                             bridgingIT / Seite 10
Demo: Hello World

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)




                                          bridgingIT / Seite 11
Databinding

Agenda


Einführung in Vaadin

Überblick

Architektur

Databinding

Entwicklung von Komponenten


Vergleich mit anderen Frameworks

Aspekte

Unterschiede


Zusammenfassung


                                   bridgingIT / Seite 12
Interfaces


             String lastName


             class Person {

             }




             List<Person>




                            bridgingIT / Seite 13
Databinding: Big Picture




                           bridgingIT / Seite 14
Databinding: Feature-Demos

•   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/




                                                               bridgingIT / Seite 15
Entwicklung von Komponenten

Agenda


Einführung in Vaadin

Überblick

Architektur

Databinding

Entwicklung von Komponenten


Vergleich mit anderen Frameworks

Aspekte

Unterschiede


Zusammenfassung


                                   bridgingIT / Seite 16
Entwicklung von Komponenten

Grundsätzlich 3 Arten von Komponenten

•   Komplett serverseitig  Composite Components

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




                                                    bridgingIT / Seite 17
Composite Components

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

    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);
        }

    }

                                                                     bridgingIT / Seite 18
Client-Side Engine




                     bridgingIT / Seite 19
Custom Vaadin Widget mit GWT




                               bridgingIT / Seite 20
Custom Vaadin Widget mit GWT

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




                                                        bridgingIT / Seite 21
Custom Vaadin Widget mit JS




                              bridgingIT / Seite 22
Custom Vaadin Widget mit JS

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




                                                                   bridgingIT / Seite 23
Vergleich mit anderen
Frameworks

Agenda


Einführung in Vaadin

Überblick

Architektur

Databinding

Entwicklung von Komponenten


Vergleich mit anderen Frameworks

Aspekte

Unterschiede


Zusammenfassung


                                   bridgingIT / Seite 24
.equals(aPear)
         bridgingIT / Seite 25
Aspekte


                   Organisation

                   • Lizenz
                   • Firma
                   • Community
                   • Dokumentation
   Entwicklung     • Support          Architektur

   • Lernkurve                       • Server/Client UI
   • Verwendete                      • Anwendungs-
     Sprachen                          /Seitenbasiert
   • Eigene                          • Komponenten
     Komponenten                     • Skalierbarkeit




                                                bridgingIT / Seite 26
Frameworks




             bridgingIT / Seite 27
Unterschiede Organisation


Aspekt            Vaadin        GWT          Smart GWT     RichFaces
Lizenz            Apache 2.0    Apache 2.0   LGPL/         LGPL
                                             Kommerziell


Verantwortliche   Vaadin Ltd.   Google       Isomorphics   JBoss
Organisation


Community                                            



Dokumentation                                        



Kommerzieller     Ja            Nein         Ja            Ja
Support




                                                                bridgingIT / Seite 28
Unterschiede Architektur


Aspekt            Vaadin      GWT         Smart GWT        RichFaces
Server-/Client-   Server      Client      Client/Server*   Server
UI-Framework


Anwendungs-       Anwendung   Anwendung   Anwendung        Seiten
/Seitenbasiert


Verfügbarkeit                                      
Komponenten


Skalierbarkeit                                     




                                                                bridgingIT / Seite 29
Unterschiede Entwicklung


Aspekt          Vaadin      GWT           Smart GWT           RichFaces
Geringe                                               
Lernkurve


Verwendete      Java, CSS   Java 1, CSS   Java, JavaScript,   Java, JavaScript,
Sprachen                                  CSS                 HTML, XML, CSS


Einfachheit                                             
Komponenten-
Entwicklung


1   nur Teilmenge




                                                                  bridgingIT / Seite 30
Zusammenfassung

Agenda


Einführung in Vaadin

Überblick

Architektur

Databinding

Entwicklung von Komponenten


Vergleich mit anderen Frameworks

Aspekte

Unterschiede


Zusammenfassung


                                   bridgingIT / Seite 31
Vorteile

•   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




                                                        bridgingIT / Seite 32
Nachteile

•   Bisher nicht so weit verbreitet

•   Einige Addons sind kostenpflichtig

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




                                                        bridgingIT / Seite 33
Einsatzszenarien

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




                                                    bridgingIT / Seite 34
Fragen und Antworten




            Fragen?


                       bridgingIT / Seite 35
Wir freuen uns auf Sie.
Standort Mannheim                    Standort Stuttgart
N7, 5-6                              Königstraße 42
68161 Mannheim                       70173 Stuttgart

Standort Frankfurt                   Standort Karlsruhe
Solmsstraße 4                        Rüppurrer Straße 4
60486 Frankfurt                      76137 Karlsruhe

                                     Standort Köln
                                     Richmodstraße 6
                                     50667 Köln




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


                                                      Copyright © BridgingIT GmbH

Más contenido relacionado

La actualidad más candente

Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der PraxisTobias Kraft
 
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleich
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im VergleichWie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleich
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleichgedoplan
 
Die besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-AppsDie besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-AppsDieter Ziegler
 
Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.adesso AG
 
GWT Introduction
GWT IntroductionGWT Introduction
GWT Introductionpfleidi
 

La actualidad más candente (6)

Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
IceFaces In Randi2 Action
IceFaces In Randi2 ActionIceFaces In Randi2 Action
IceFaces In Randi2 Action
 
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleich
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im VergleichWie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleich
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleich
 
Die besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-AppsDie besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-Apps
 
Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.
 
GWT Introduction
GWT IntroductionGWT Introduction
GWT Introduction
 

Destacado

Modelos de otorgamiento de crédito
Modelos de otorgamiento de créditoModelos de otorgamiento de crédito
Modelos de otorgamiento de créditoAIS
 
Linkedin student-recruiting-playbook-de
Linkedin student-recruiting-playbook-deLinkedin student-recruiting-playbook-de
Linkedin student-recruiting-playbook-deSebastian Vogt
 
Aulas 01 e 2 iniciando no windows 7
Aulas 01 e 2  iniciando no windows 7Aulas 01 e 2  iniciando no windows 7
Aulas 01 e 2 iniciando no windows 7Boris Junior
 
Zum Social Media Erfolg mit AMPEL
Zum Social Media Erfolg mit AMPELZum Social Media Erfolg mit AMPEL
Zum Social Media Erfolg mit AMPELStefan Evertz
 
5 prácticas para fidelizar o retener sus clientes usando email marketing y fa...
5 prácticas para fidelizar o retener sus clientes usando email marketing y fa...5 prácticas para fidelizar o retener sus clientes usando email marketing y fa...
5 prácticas para fidelizar o retener sus clientes usando email marketing y fa...Existaya.com
 
Semiologia del sistema respiratorio
Semiologia del sistema respiratorioSemiologia del sistema respiratorio
Semiologia del sistema respiratorioAlfonso Jauregui
 
Propiedades de-la-materia-masa-volumen-y-densidad1
Propiedades de-la-materia-masa-volumen-y-densidad1Propiedades de-la-materia-masa-volumen-y-densidad1
Propiedades de-la-materia-masa-volumen-y-densidad1danielozano
 
End of WWII / Cold War
End of WWII / Cold WarEnd of WWII / Cold War
End of WWII / Cold WarDan McDowell
 
Inha 1-métadonnées
Inha 1-métadonnéesInha 1-métadonnées
Inha 1-métadonnéesPeccatte
 
La autoestima en la mujer
La autoestima en la mujerLa autoestima en la mujer
La autoestima en la mujerBeatriz Adriana
 
Sistemas de Información Gerencial
Sistemas de Información GerencialSistemas de Información Gerencial
Sistemas de Información GerencialJavier Arana
 
Extreme Agile Leadership - Vortrag auf der Agile HR-Konferenz am 22.4.2015
Extreme Agile Leadership - Vortrag auf der Agile HR-Konferenz am 22.4.2015Extreme Agile Leadership - Vortrag auf der Agile HR-Konferenz am 22.4.2015
Extreme Agile Leadership - Vortrag auf der Agile HR-Konferenz am 22.4.2015Paul Herwarth von Bittenfeld
 
The Future of Social Networks on the Internet: The Need for Semantics
The Future of Social Networks on the Internet: The Need for SemanticsThe Future of Social Networks on the Internet: The Need for Semantics
The Future of Social Networks on the Internet: The Need for SemanticsJohn Breslin
 
Instructions SCHMIDT & BENDER PM II Dual Use | Optics Trade
Instructions SCHMIDT & BENDER PM II Dual Use | Optics TradeInstructions SCHMIDT & BENDER PM II Dual Use | Optics Trade
Instructions SCHMIDT & BENDER PM II Dual Use | Optics TradeOptics-Trade
 
Les enjeux du numérique à l'Ecole (mars 2014)
Les enjeux du numérique à l'Ecole (mars 2014)Les enjeux du numérique à l'Ecole (mars 2014)
Les enjeux du numérique à l'Ecole (mars 2014)Elie ALLOUCHE
 
BARCELONA 1 EDIFICIOS MODERNOS - ZONA FORUM 22@
BARCELONA 1 EDIFICIOS MODERNOS - ZONA FORUM 22@BARCELONA 1 EDIFICIOS MODERNOS - ZONA FORUM 22@
BARCELONA 1 EDIFICIOS MODERNOS - ZONA FORUM 22@Manel Cantos
 

Destacado (20)

Modelos de otorgamiento de crédito
Modelos de otorgamiento de créditoModelos de otorgamiento de crédito
Modelos de otorgamiento de crédito
 
Linkedin student-recruiting-playbook-de
Linkedin student-recruiting-playbook-deLinkedin student-recruiting-playbook-de
Linkedin student-recruiting-playbook-de
 
Aulas 01 e 2 iniciando no windows 7
Aulas 01 e 2  iniciando no windows 7Aulas 01 e 2  iniciando no windows 7
Aulas 01 e 2 iniciando no windows 7
 
Zum Social Media Erfolg mit AMPEL
Zum Social Media Erfolg mit AMPELZum Social Media Erfolg mit AMPEL
Zum Social Media Erfolg mit AMPEL
 
5 prácticas para fidelizar o retener sus clientes usando email marketing y fa...
5 prácticas para fidelizar o retener sus clientes usando email marketing y fa...5 prácticas para fidelizar o retener sus clientes usando email marketing y fa...
5 prácticas para fidelizar o retener sus clientes usando email marketing y fa...
 
Semiologia del sistema respiratorio
Semiologia del sistema respiratorioSemiologia del sistema respiratorio
Semiologia del sistema respiratorio
 
Propiedades de-la-materia-masa-volumen-y-densidad1
Propiedades de-la-materia-masa-volumen-y-densidad1Propiedades de-la-materia-masa-volumen-y-densidad1
Propiedades de-la-materia-masa-volumen-y-densidad1
 
End of WWII / Cold War
End of WWII / Cold WarEnd of WWII / Cold War
End of WWII / Cold War
 
Inha 1-métadonnées
Inha 1-métadonnéesInha 1-métadonnées
Inha 1-métadonnées
 
Especificaciones generales de etiquetado
Especificaciones generales de etiquetadoEspecificaciones generales de etiquetado
Especificaciones generales de etiquetado
 
Transporte
TransporteTransporte
Transporte
 
La autoestima en la mujer
La autoestima en la mujerLa autoestima en la mujer
La autoestima en la mujer
 
Hojas sueltas
Hojas sueltasHojas sueltas
Hojas sueltas
 
Cadera
Cadera Cadera
Cadera
 
Sistemas de Información Gerencial
Sistemas de Información GerencialSistemas de Información Gerencial
Sistemas de Información Gerencial
 
Extreme Agile Leadership - Vortrag auf der Agile HR-Konferenz am 22.4.2015
Extreme Agile Leadership - Vortrag auf der Agile HR-Konferenz am 22.4.2015Extreme Agile Leadership - Vortrag auf der Agile HR-Konferenz am 22.4.2015
Extreme Agile Leadership - Vortrag auf der Agile HR-Konferenz am 22.4.2015
 
The Future of Social Networks on the Internet: The Need for Semantics
The Future of Social Networks on the Internet: The Need for SemanticsThe Future of Social Networks on the Internet: The Need for Semantics
The Future of Social Networks on the Internet: The Need for Semantics
 
Instructions SCHMIDT & BENDER PM II Dual Use | Optics Trade
Instructions SCHMIDT & BENDER PM II Dual Use | Optics TradeInstructions SCHMIDT & BENDER PM II Dual Use | Optics Trade
Instructions SCHMIDT & BENDER PM II Dual Use | Optics Trade
 
Les enjeux du numérique à l'Ecole (mars 2014)
Les enjeux du numérique à l'Ecole (mars 2014)Les enjeux du numérique à l'Ecole (mars 2014)
Les enjeux du numérique à l'Ecole (mars 2014)
 
BARCELONA 1 EDIFICIOS MODERNOS - ZONA FORUM 22@
BARCELONA 1 EDIFICIOS MODERNOS - ZONA FORUM 22@BARCELONA 1 EDIFICIOS MODERNOS - ZONA FORUM 22@
BARCELONA 1 EDIFICIOS MODERNOS - ZONA FORUM 22@
 

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

Vaadin - Thinking of U and I (JUG KA 2013)
Vaadin - Thinking of U and I (JUG KA 2013)Vaadin - Thinking of U and I (JUG KA 2013)
Vaadin - Thinking of U and I (JUG KA 2013)Christian Janz
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradleadesso AG
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDIadesso AG
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Servergedoplan
 
Rich Internet Applications
Rich Internet ApplicationsRich Internet Applications
Rich Internet ApplicationsOliver Belikan
 
Quarkus, GraalVM und co. Java in der Cloud-Native Welt
Quarkus, GraalVM und co. Java in der Cloud-Native WeltQuarkus, GraalVM und co. Java in der Cloud-Native Welt
Quarkus, GraalVM und co. Java in der Cloud-Native WeltMichael Frembs
 
B1 Lotusday 2008 Vortrag X Forms Rapid Development
B1 Lotusday 2008 Vortrag X Forms Rapid DevelopmentB1 Lotusday 2008 Vortrag X Forms Rapid Development
B1 Lotusday 2008 Vortrag X Forms Rapid DevelopmentAndreas Schulte
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Wiest Simon
 
Thin, Rich und RIA Clients entwirrt -- und Faktoren, die Sie zum geeigneten C...
Thin, Rich und RIA Clients entwirrt -- und Faktoren, die Sie zum geeigneten C...Thin, Rich und RIA Clients entwirrt -- und Faktoren, die Sie zum geeigneten C...
Thin, Rich und RIA Clients entwirrt -- und Faktoren, die Sie zum geeigneten C...Nikolaos Kaintantzis
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEEguestc44b7b
 
Java oberflächlich betrachtet - Welche GUI ist die richtige?
Java oberflächlich betrachtet - Welche GUI ist die richtige?Java oberflächlich betrachtet - Welche GUI ist die richtige?
Java oberflächlich betrachtet - Welche GUI ist die richtige?GFU Cyrus AG
 
Per Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysPer Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysQAware GmbH
 
Enterprise UI
Enterprise UIEnterprise UI
Enterprise UIgedoplan
 

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

Vaadin - Thinking of U and I (JUG KA 2013)
Vaadin - Thinking of U and I (JUG KA 2013)Vaadin - Thinking of U and I (JUG KA 2013)
Vaadin - Thinking of U and I (JUG KA 2013)
 
GWT – Google Web Toolkit in der Praxis
GWT – Google Web Toolkit in der PraxisGWT – Google Web Toolkit in der Praxis
GWT – Google Web Toolkit in der Praxis
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradle
 
Elsholz stoll js_03_10
Elsholz stoll js_03_10Elsholz stoll js_03_10
Elsholz stoll js_03_10
 
GWT
GWTGWT
GWT
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Server
 
Rich Internet Applications
Rich Internet ApplicationsRich Internet Applications
Rich Internet Applications
 
Quarkus, GraalVM und co. Java in der Cloud-Native Welt
Quarkus, GraalVM und co. Java in der Cloud-Native WeltQuarkus, GraalVM und co. Java in der Cloud-Native Welt
Quarkus, GraalVM und co. Java in der Cloud-Native Welt
 
B1 Lotusday 2008 Vortrag X Forms Rapid Development
B1 Lotusday 2008 Vortrag X Forms Rapid DevelopmentB1 Lotusday 2008 Vortrag X Forms Rapid Development
B1 Lotusday 2008 Vortrag X Forms Rapid Development
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
 
TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
 
Thin, Rich und RIA Clients entwirrt -- und Faktoren, die Sie zum geeigneten C...
Thin, Rich und RIA Clients entwirrt -- und Faktoren, die Sie zum geeigneten C...Thin, Rich und RIA Clients entwirrt -- und Faktoren, die Sie zum geeigneten C...
Thin, Rich und RIA Clients entwirrt -- und Faktoren, die Sie zum geeigneten C...
 
JSF vs. GWT? JSF und GWT!
JSF vs. GWT? JSF und GWT!JSF vs. GWT? JSF und GWT!
JSF vs. GWT? JSF und GWT!
 
OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEE
 
Java oberflächlich betrachtet - Welche GUI ist die richtige?
Java oberflächlich betrachtet - Welche GUI ist die richtige?Java oberflächlich betrachtet - Welche GUI ist die richtige?
Java oberflächlich betrachtet - Welche GUI ist die richtige?
 
BizSpark goes Cloud
BizSpark goes CloudBizSpark goes Cloud
BizSpark goes Cloud
 
Per Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysPer Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API Gateways
 
Enterprise UI
Enterprise UIEnterprise UI
Enterprise UI
 

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

  • 1. Yet another Java Web Framework? Christian Janz christian.janz@bridging-it.de bridgingIT / Seite 1
  • 2. Agenda Einführung in Vaadin Überblick Architektur Databinding Entwicklung von Komponenten Vergleich mit anderen Frameworks Aspekte Unterschiede Zusammenfassung bridgingIT / Seite 2
  • 3. Einführung in Vaadin Agenda Einführung in Vaadin Überblick Architektur Databinding Entwicklung von Komponenten Vergleich mit anderen Frameworks Aspekte Unterschiede Zusammenfassung bridgingIT / Seite 3
  • 5. Überblick  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 bridgingIT / Seite 5
  • 6. Geschichte Kommerzielle Lizenz Apache License 2 Vaadin 6  Eclipse Plugin Vaadin 6.8.5 Weitere Projekte auf Basis der Millstone Library IT Mill Toolkit Vaadin 7 Release 5 Beta 7 Millstone Library 1.0 IT Mill Toolkit Release 4 Vaadin IT Mill wird  AJAX Directory gegründet 2000 2006 2008 2009 2012 2013 http://vaadin.com/book/-/page/intro.overview.background.html bridgingIT / Seite 6
  • 8. Architektur: Grobe Übersicht Vaadin Framework https://vaadin.com/book/-/page/intro.html#figure.intro.architecture bridgingIT / Seite 8
  • 9. Vergleich mit Plain GWT Vaadin Plain GWT bridgingIT / Seite 9
  • 10. Demo Hello World • 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 bridgingIT / Seite 10
  • 11. Demo: Hello World 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) bridgingIT / Seite 11
  • 12. Databinding Agenda Einführung in Vaadin Überblick Architektur Databinding Entwicklung von Komponenten Vergleich mit anderen Frameworks Aspekte Unterschiede Zusammenfassung bridgingIT / Seite 12
  • 13. Interfaces String lastName class Person { } List<Person> bridgingIT / Seite 13
  • 14. Databinding: Big Picture bridgingIT / Seite 14
  • 15. Databinding: Feature-Demos • 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/ bridgingIT / Seite 15
  • 16. Entwicklung von Komponenten Agenda Einführung in Vaadin Überblick Architektur Databinding Entwicklung von Komponenten Vergleich mit anderen Frameworks Aspekte Unterschiede Zusammenfassung bridgingIT / Seite 16
  • 17. Entwicklung von Komponenten Grundsätzlich 3 Arten von Komponenten • Komplett serverseitig  Composite Components • Server- und clientseitig mit GWT • Server- und clientseitig mit Plain JavaScript bridgingIT / Seite 17
  • 18. Composite Components • Unterklassen von com.vaadin.ui.CustomComponent • Rein Serverseitig • Komposition bestehender Komponenten 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); } } bridgingIT / Seite 18
  • 19. Client-Side Engine bridgingIT / Seite 19
  • 20. Custom Vaadin Widget mit GWT bridgingIT / Seite 20
  • 21. Custom Vaadin Widget mit GWT 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 bridgingIT / Seite 21
  • 22. Custom Vaadin Widget mit JS bridgingIT / Seite 22
  • 23. Custom Vaadin Widget mit JS 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 bridgingIT / Seite 23
  • 24. Vergleich mit anderen Frameworks Agenda Einführung in Vaadin Überblick Architektur Databinding Entwicklung von Komponenten Vergleich mit anderen Frameworks Aspekte Unterschiede Zusammenfassung bridgingIT / Seite 24
  • 25. .equals(aPear) bridgingIT / Seite 25
  • 26. Aspekte Organisation • Lizenz • Firma • Community • Dokumentation Entwicklung • Support Architektur • Lernkurve • Server/Client UI • Verwendete • Anwendungs- Sprachen /Seitenbasiert • Eigene • Komponenten Komponenten • Skalierbarkeit bridgingIT / Seite 26
  • 27. Frameworks bridgingIT / Seite 27
  • 28. Unterschiede Organisation Aspekt Vaadin GWT Smart GWT RichFaces Lizenz Apache 2.0 Apache 2.0 LGPL/ LGPL Kommerziell Verantwortliche Vaadin Ltd. Google Isomorphics JBoss Organisation Community     Dokumentation     Kommerzieller Ja Nein Ja Ja Support bridgingIT / Seite 28
  • 29. Unterschiede Architektur Aspekt Vaadin GWT Smart GWT RichFaces Server-/Client- Server Client Client/Server* Server UI-Framework Anwendungs- Anwendung Anwendung Anwendung Seiten /Seitenbasiert Verfügbarkeit     Komponenten Skalierbarkeit     bridgingIT / Seite 29
  • 30. Unterschiede Entwicklung Aspekt Vaadin GWT Smart GWT RichFaces Geringe     Lernkurve Verwendete Java, CSS Java 1, CSS Java, JavaScript, Java, JavaScript, Sprachen CSS HTML, XML, CSS Einfachheit     Komponenten- Entwicklung 1 nur Teilmenge bridgingIT / Seite 30
  • 31. Zusammenfassung Agenda Einführung in Vaadin Überblick Architektur Databinding Entwicklung von Komponenten Vergleich mit anderen Frameworks Aspekte Unterschiede Zusammenfassung bridgingIT / Seite 31
  • 32. Vorteile • 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 bridgingIT / Seite 32
  • 33. Nachteile • Bisher nicht so weit verbreitet • Einige Addons sind kostenpflichtig • Skaliert nicht beliebig • Hat Probleme bei schlechten Antwortzeiten (Pings) bridgingIT / Seite 33
  • 34. Einsatzszenarien 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 bridgingIT / Seite 34
  • 35. Fragen und Antworten Fragen? bridgingIT / Seite 35
  • 36. Wir freuen uns auf Sie. Standort Mannheim Standort Stuttgart N7, 5-6 Königstraße 42 68161 Mannheim 70173 Stuttgart Standort Frankfurt Standort Karlsruhe Solmsstraße 4 Rüppurrer Straße 4 60486 Frankfurt 76137 Karlsruhe Standort Köln Richmodstraße 6 50667 Köln Alle Rechte vorbehalten. Die Weitergabe oder Vervielfältigung ist ohne vorherige schriftliche Zustimmung der BridgingIT GmbH nicht erlaubt. Copyright © BridgingIT GmbH