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

2,738 views

Published on

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.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,738
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
22
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Yet another Java Web Framework? Christian Janz christian.janz@bridging-it.de bridgingIT / Seite 1
  2. 2. AgendaEinführung in VaadinÜberblickArchitekturDatabindingEntwicklung von KomponentenVergleich mit anderen FrameworksAspekteUnterschiedeZusammenfassung bridgingIT / Seite 2
  3. 3. Einführung in VaadinAgendaEinführung in VaadinÜberblickArchitekturDatabindingEntwicklung von KomponentenVergleich mit anderen FrameworksAspekteUnterschiedeZusammenfassung bridgingIT / Seite 3
  4. 4. bridgingIT / Seite 4
  5. 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. 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 VaadinIT Mill wird  AJAX Directorygegründet 2000 2006 2008 2009 2012 2013http://vaadin.com/book/-/page/intro.overview.background.html bridgingIT / Seite 6
  7. 7. bridgingIT / Seite 7
  8. 8. Architektur: Grobe Übersicht Vaadin Frameworkhttps://vaadin.com/book/-/page/intro.html#figure.intro.architecture bridgingIT / Seite 8
  9. 9. Vergleich mit Plain GWT Vaadin Plain GWT bridgingIT / Seite 9
  10. 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. 11. Demo: Hello WorldWichtige 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. 12. DatabindingAgendaEinführung in VaadinÜberblickArchitekturDatabindingEntwicklung von KomponentenVergleich mit anderen FrameworksAspekteUnterschiedeZusammenfassung bridgingIT / Seite 12
  13. 13. Interfaces String lastName class Person { } List<Person> bridgingIT / Seite 13
  14. 14. Databinding: Big Picture bridgingIT / Seite 14
  15. 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. 16. Entwicklung von KomponentenAgendaEinführung in VaadinÜberblickArchitekturDatabindingEntwicklung von KomponentenVergleich mit anderen FrameworksAspekteUnterschiedeZusammenfassung bridgingIT / Seite 16
  17. 17. Entwicklung von KomponentenGrundsätzlich 3 Arten von Komponenten• Komplett serverseitig  Composite Components• Server- und clientseitig mit GWT• Server- und clientseitig mit Plain JavaScript bridgingIT / Seite 17
  18. 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. 19. Client-Side Engine bridgingIT / Seite 19
  20. 20. Custom Vaadin Widget mit GWT bridgingIT / Seite 20
  21. 21. Custom Vaadin Widget mit GWTFolgende Artefakte müssen implementiert werden:• GWT Modul• GWT Widget (neu oder bestehend)• Connector-Klasse• SharedState-Klasse• Serverseitige KomponentenklasseSiehe https://vaadin.com/book/vaadin7/-/page/gwt.html bridgingIT / Seite 21
  22. 22. Custom Vaadin Widget mit JS bridgingIT / Seite 22
  23. 23. Custom Vaadin Widget mit JSFolgende Artefakte müssen implementiert werden:• Widget in JavaScript (neu oder bestehend)• Connector-Klasse in JavaScript• Serverseitige Komponentenklasse in JavaSiehe https://vaadin.com/book/vaadin7/-/page/gwt.javascript.html bridgingIT / Seite 23
  24. 24. Vergleich mit anderenFrameworksAgendaEinführung in VaadinÜberblickArchitekturDatabindingEntwicklung von KomponentenVergleich mit anderen FrameworksAspekteUnterschiedeZusammenfassung bridgingIT / Seite 24
  25. 25. .equals(aPear) bridgingIT / Seite 25
  26. 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. 27. Frameworks bridgingIT / Seite 27
  28. 28. Unterschiede OrganisationAspekt Vaadin GWT Smart GWT RichFacesLizenz Apache 2.0 Apache 2.0 LGPL/ LGPL KommerziellVerantwortliche Vaadin Ltd. Google Isomorphics JBossOrganisationCommunity    Dokumentation    Kommerzieller Ja Nein Ja JaSupport bridgingIT / Seite 28
  29. 29. Unterschiede ArchitekturAspekt Vaadin GWT Smart GWT RichFacesServer-/Client- Server Client Client/Server* ServerUI-FrameworkAnwendungs- Anwendung Anwendung Anwendung Seiten/SeitenbasiertVerfügbarkeit    KomponentenSkalierbarkeit     bridgingIT / Seite 29
  30. 30. Unterschiede EntwicklungAspekt Vaadin GWT Smart GWT RichFacesGeringe    LernkurveVerwendete Java, CSS Java 1, CSS Java, JavaScript, Java, JavaScript,Sprachen CSS HTML, XML, CSSEinfachheit    Komponenten-Entwicklung1 nur Teilmenge bridgingIT / Seite 30
  31. 31. ZusammenfassungAgendaEinführung in VaadinÜberblickArchitekturDatabindingEntwicklung von KomponentenVergleich mit anderen FrameworksAspekteUnterschiedeZusammenfassung bridgingIT / Seite 31
  32. 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. 33. Nachteile• Bisher nicht so weit verbreitet• Einige Addons sind kostenpflichtig• Skaliert nicht beliebig• Hat Probleme bei schlechten Antwortzeiten (Pings) bridgingIT / Seite 33
  34. 34. EinsatzszenarienHauptszenario: Rich Intranet Applications• Anwendungen mit angemeldeten Benutzern• Bedienung wie Desktop-Anwendungen• Verarbeitung von Daten• Komplexere Logik• Schnelle Entwicklung ohne großen VorlaufAlternativ: Rich Internet Applications• Wichtig: Webserver „in der Nähe“ der Anwender bridgingIT / Seite 34
  35. 35. Fragen und Antworten Fragen? bridgingIT / Seite 35
  36. 36. Wir freuen uns auf Sie.Standort Mannheim Standort StuttgartN7, 5-6 Königstraße 4268161 Mannheim 70173 StuttgartStandort Frankfurt Standort KarlsruheSolmsstraße 4 Rüppurrer Straße 460486 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

×