Der GWT oder JSF Wahl-O-Mat

Werbung
Der GWT oder JSF
Wahl-O-Mat
Die Session stellt ein bereits mehrfach
erprobtes Auswahlinstrument vor, mit dem
man die prominenteste aller Short Lists von
Webframeworks - JSF und GWT - für die
eigenen Anforderungen qualifiziert
entscheiden kann. Umgekehrt kann man das
Instrument auch benutzen, um eine gute
Begründung zu finden, falls man im Grunde
seines Herzens die Entscheidung schon
getroffen hat.
Die Session stellt ein bereits mehrfach
erprobtes Auswahlinstrument vor, mit dem
man die prominenteste aller Short Lists von
Webframeworks - JSF und GWT - für die
eigenen Anforderungen qualifiziert
entscheiden kann. Umgekehrt kann man das
Instrument auch benutzen, um eine gute
Begründung zu finden, falls man im Grunde
seines Herzens die Entscheidung schon
getroffen hat.
Die Session stellt ein bereits mehrfach
erprobtes Auswahlinstrument vor, mit dem
man die prominenteste aller Short Lists von
Webframeworks - JSF und GWT - für die
eigenen Anforderungen qualifiziert
entscheiden kann. Umgekehrt kann man das
Instrument auch benutzen, um eine gute
Begründung zu finden, falls man im Grunde
seines Herzens die Entscheidung schon
getroffen hat.
Die Session stellt ein bereits mehrfach
erprobtes Auswahlinstrument vor, mit dem
man die prominenteste aller Short Lists von
Webframeworks - JSF und GWT - für die
eigenen Anforderungen qualifiziert
entscheiden kann. Umgekehrt kann man das
Instrument auch benutzen, um eine gute
Begründung zu finden, falls man im Grunde
seines Herzens die Entscheidung schon
getroffen hat.
Die Session stellt ein bereits mehrfach
erprobtes Auswahlinstrument vor, mit dem
man die prominenteste aller Short Lists von
Webframeworks - JSF und GWT - für die
eigenen Anforderungen qualifiziert
entscheiden kann. Umgekehrt kann man das
Instrument auch benutzen, um eine gute
Begründung zu finden, falls man im Grunde
seines Herzens die Entscheidung schon
getroffen hat.
Die Session stellt ein bereits mehrfach
erprobtes Auswahlinstrument vor, mit dem
man die prominenteste aller Short Lists von
Webframeworks - JSF und GWT - für die
eigenen Anforderungen qualifiziert
entscheiden kann. Umgekehrt kann man das
Instrument auch benutzen, um eine gute
Begründung zu finden, falls man im Grunde
seines Herzens die Entscheidung schon
getroffen hat.
Die Session stellt ein bereits mehrfach
erprobtes Auswahlinstrument vor, mit dem
man die prominenteste aller Short Lists von
Webframeworks - JSF und GWT - für die
eigenen Anforderungen qualifiziert
entscheiden kann. Umgekehrt kann man das
Instrument auch benutzen, um eine gute
Begründung zu finden, falls man im Grunde
seines Herzens die Entscheidung schon
getroffen hat.
Die Session stellt ein bereits mehrfach
erprobtes Auswahlinstrument vor, mit dem
man die prominenteste aller Short Lists von
Webframeworks - JSF und GWT - für die
eigenen Anforderungen qualifiziert
entscheiden kann. Umgekehrt kann man das
Instrument auch benutzen, um eine gute
Begründung zu finden, falls man im Grunde
seines Herzens die Entscheidung schon
getroffen hat.
About
JSF-Geek
Thomas Asel
pgt technology scouting GmbH
GWT-Nerd
Papick G. Taboada
Orientation in Objects GmbH
http://www.cartoonjournal.de
JSF, GWT?
Fear, Uncertainty and Doubt
GWT ist...
kein Standard.
JSF ist...
doch langsam!
State-Saving,
erster Aufruf,
Server Ressourcenverbrauch!
GWT ist...
nur ein JS Toolkit.
JSF ist...
ein 7 (8?) - Phasiges (Kopf)
Monster (Drache)...
GWT ist...
irgendwie doch gar nicht Java, oder?
oder?
JSF ist...
•
•
problematisch wenn man mehrere
Bibliotheken „mischen“ will
GWT ist...
doch Swing-Like, und Swing ist doch tot.
JSF ist...
doch Swing auf dem Server!
Swing ist doch...
Google ist böse!
Aber hallo. Oracle auch.
20:45 - 21:45
was bisher geschah
Erstellung eines Bewertungskatalogs für die Analyse eines
geeigneten Webframeworks
?
Was vergleichen wir?!?
verwendetes CSS?
erzeugtes HTML?
Aussehen?
?
Dokumentation?
API?
Was vergleichen wir?!?
2.322
2.321
And the winner is?!?
Architekturvergleich
Prototypisierung ist gut
Aber, Prototyp mit
Produktionscharakter?!?
Produkt oder Projekt?
Unsere Reise
GWT
Spring, …
JSF, Eclipse RCP
Swing, Struts, …
Java EE
Java
RIA
Die Magie
findet im
Client/ Browser
statt.
JS als De-facto
oder QuasiStandard?
RIA == JS Entwicklung?
Mehr RIA, mehr JS, weniger Java?
Fear browsers*
with all of mind,
body and spirit
When in danger,
when in doubt,
run in circles
cry and shout...
*DOM
HTML5
canvas
video
Chrome
Firefox
Safari
Opera
Vic Gundotra
Google IO Keynote
geolocation
appcache
database
workers
HTML 5 here and now
Wahl-O-Mat?
Fail fast, fail
early
Politische Kriterien
Architektur
Laufzeitumgebung
Programmiermodell
Software-Engineering
Produktivität
Notwendige Skills
UI Komponenten
Politische Kriterien
Architektur
Laufzeitumgebung
Programmiermodell
Software-Engineering
Produktivität
Notwendige Skills
UI Komponenten
http://de.wikipedia.org/wiki/
Proprietär
• Juristisch „urheberrechtlich geschützt“
• IT: Dinge, die nicht allgemein anerkannten
Standards entsprechen („hauseigene
Entwicklungen“)
• Freie-Software-Bewegung: alles was nicht frei
(Lizenztechnisch) und Quelloffen ist.
http://de.wikipedia.org/wiki/
Standard
• De-facto- oder Quasi-Standards
• Industriestandard
• Herstellerspezifische Standards
• Offener Standard
Wo ist JSF Standard?
Industriestandard
• Java EE ist ein De-facto oder Quasi-Standard in
der Entwicklung von unternehmenskritischen
Anwendungen
Standard
• JSF Spezifikation ist Teil der Java EE Spezifikation
WEB Standards
RIAs
Java EE Standards
klassische
dynamische
Webanwend
ungen
There is a kind of magic
GWT & Standards
cloud
HTML5
HTML4
IE6
IE9
IE10
JS
Support
Websphere
5... 6... 7...
Mobile
Zukunftsicherheit
Gewährleistung
Herstellerunabhängigkeit?
Herstellersupport
gibts nicht.
Sencha
(GXT)
Google
GWT
Isomorphic Software
(Smart GWT)
JBoss
(RichFaces)
Prime Technology
(PrimeFaces)
Blau oder Rot?
JSF
Icesoft Technologies
(IceFaces)
Politische Kriterien
Architektur
Laufzeitumgebung
Programmiermodell
Software-Engineering
Produktivität
Notwendige Skills
UI Komponenten
Server
Browser
e ve n t
espo
r
l
m
t
h
l
l
fu
nse
e ve n t
espo
r
l
m
t
h
l
l
u
f
nse
e ve n t
esp
full html r
onse
klassische Webanwendungen
Server
Browser
first reques
t
espo
r
l
m
t
h
l
l
u
f
nse
event
event
event
data reque
st
data
event
data reque
st
data
Ajax architectural shift
http://breganzane.com/blog/snfl.php
(ifying)
Ajax
Webapps
http://breganzane.com/blog/snfl.php
(ifying)
Ajax
Webapps
Architektur Evolution?
• Reduzierung der Latenz
• Reduzierung des Bandbreitenbedarfs
• Reduzierung Ressourcenverbrauch Serverseitig
• Verteilung der Last auf Clients
•
Teil eines Ganzen?
Single-PagePrinzip
GWT
Statische
Resourcen
Servlet,
HttpRequest
(JSON, XML)
JSF
Navigation
Integration?
Einbettung in
Seite schwierig
JSF Runtime
Politische Kriterien
Architektur
Laufzeitumgebung
Programmiermodell
Software-Engineering
Produktivität
Notwendige Skills
UI Komponenten
weder
JSF noch
GWT
machen
Aussage zu
BackendTechnologien
http://download.oracle.com/javaee/5/tutorial/doc/bnabo.html
Nur ein Web-Container
In der
Entwicklung
aber...
ist es bei GWT angenehmer das
Backend im mitgelieferten Jetty
starten zu können.
Daher sind Spring-Backends sehr
beliebt.
weblogic jboss
websphere
glassfish
JSF & die „Fullstack“ Falle
Politische Kriterien
Architektur
Laufzeitumgebung
Programmiermodell
Software-Engineering
Produktivität
Notwendige Skills
UI Komponenten
Data-Binding/ Validierung
Request-Response Modell
JSF macht Vorgaben
Navigation
Konzepte aus Rich-Client-Entwicklung übernehmen
Vorgaben müssen erst definiert werden
GWT eher weniger
Womit will ich
entwickeln?
Facelets (XML)
HTML
CSS
CSS
JavaScript
GWT
Java
UI Binder (XML)
Technologiebrüche werden
vermieden
JSF
HTML
JavaScript
(für RIA)
Java
Technologiebruch gehört
zum Programmiermodell
Hier wäre die Einführung und GWT und JSF angebracht
Politische Kriterien
Architektur
Laufzeitumgebung
Programmiermodell
Software-Engineering
Produktivität
Notwendige Skills
UI Komponenten
Webtechnologien &
Software-Engineering ?!?
Lessons learned aus
SE & Java
Zu aufwendig?
Unit Tests,
Testabdeckung, CI
OhneTooling
geht nix
Refactoring,
Enwurfsmuster, ...
Checkstyle,
Findbugs, PMD
Fail early?
IDE, Code-Completion,
Starke Typisierung, Debugging
Programmiermodell (wdh)
Facelets (XML)
HTML
CSS
CSS
JavaScript
GWT
Java
UI Binder (XML)
Technologiebrüche werden
vermieden
JSF
HTML
JavaScript
(für RIA)
Java
Technologiebruch gehört
zum Programmiermodell
Hier wäre eine Einführung in GWT und JSF angebracht
Programmiermodell und
Software-Engineering?
Facelets (XML)
Java
GWT
JSF
HTML
Java
Programmiermodell und
Software-Engineering?
Technologiebrüche
machen es
schwieriger
Java
GWT
Facelets (XML)
JSF
HTML
Java
Heimspiel...
Politische Kriterien
Architektur
Laufzeitumgebung
Programmiermodell
Software-Engineering
Produktivität
Notwendige Skills
UI Komponenten
GWT
<1s
JSF
1s bis 3m
+backend
Deployment Turnaround
Sonstiges...
GWT
schnelleres, umkompliziertes debugging
bessere Composite
Komponentenbildung (Typisierung
möglich)
JSF
Rollentrennung Designer/ Java
Entwickler besser umsetzbar
Breite Toolingunterstützung über
mehrere IDEs
Webentwicklung
ist ein
Hürdenlauf
über
Technologiebrüche
Fachanwendung
Fachanwendungsframework
Generisches Webframework
Produktivitätsgewinn durch
Spezialisierung
Politische Kriterien
Architektur
Laufzeitumgebung
Programmiermodell
Software-Engineering
Produktivität
Notwendige Skills
UI Komponenten
Teambedingt
Rich Client
Frameworks
umfangreicher
komplexer
ungewohnt
Webapp
Frameworks
Lernkurve aus der Erfahrung
Know-How
starke Weiterentwicklung, wachsende
Themenbereiche
Online
Dokumentation
Wissen in Blogs
GWT
wenige Schulungsanbieter
Bücher grundsätzlich
Veraltet
Knappheit im
Arbeitsmarkt
Beispiele & Javadocs
Wissen in Blogs
Stabil durch
lange Releasezyklen
JSF
theoretisch Arbeitskräfte
am Markt…
gute Bücher
vorhanden
viele Schulungsanbieter (Technologie)
Dokumentation, Javadocs, Beispiele abhängig
von der Komponentenbibliothek
Politische Kriterien
Architektur
Laufzeitumgebung
Programmiermodell
Software-Engineering
Produktivität
Notwendige Skills
UI Komponenten
UI Komponenten
• Komponentenvergleich ist eine Momentaufnahme,
versionsabhängig
• Keine sinnvolle Metrik für den Vergleich von Checkboxen
GWT bietet sehr
wenig…
• GWT Komponenten vergleichbar mit JSF RI
Komponenten
• GWT Komponentenbibliothek sehr schlicht
• Existierende (3rd Party)
Komponentenbibliotheken erzeugen mehr
Probleme als sie lösen
… dafür bietet GWT
• Einfache UI Komponenten (HTML Set)
• Tab-Panels, Accordeon
• Datenhaltungskomponenten (Cell-Widgets)
JSF
Komponentenbibliotheken
• Haben langsam aber sicher die JSF 2.0
Spezifikation erreicht
• Bieten umfangreiche Komponenten
• Eigenes Wahl-O-Mat notwendig...
UI Komponenten Fazit?
• Bei GWT baut man selber
• bei JSF nutzt man 3rd Party Bibliotheken
Und jetzt?
K.O. Kriterium gefunden?
Wahl treffen.
Mehr von OIO zum Thema...
Schulung: Einführung in GWT
http://www.oio.de/google-web-toolkit-schulung.htm
Schulung: JavaServer Faces
http://www.oio.de/java-server-faces.htm
Artikel: Überblick GWT - Google Web Toolkit
http://www.oio.de/public/opensource/ueberblick-gwtgoogle-web-toolkit-2-artikel.htm
Mehr von OIO zum Thema...
Artikel: JSF Best Practices (englischer Artikel)
http://www.oio.de/public/java/jsf-best-practicesjavaserver-faces-session-tips.htm
Zeitschriften-Artikel aus dem Eclipse Magazin
Vol. 14, S. 40
Google Web Toolkit: Webanwendungen mit
GWT entwickeln
http://www.oio.de/public/opensource/gwt/
google-web-toolkit.pdf
Zeitschriften-Artikel aus dem Java Magazin
01/2009, S. 46
Love & Peace & JSF!
http://www.oio.de/public/java/jsf-woodstock/
JM1.09_Love_Peace_JSF.pdf
Mehr von OIO zum Thema...
Beratung zu Java Software Frameworks
http://www.oio.de/beratung-consulting/open-sourcesoftware/java-frameworks/consulting-support-javaframeworks.htm
Referenz: Rent-a-Team: After-Sales System für
Automobilhersteller
http://www.oio.de/object-rangers/referenzen/javaprojekt-referenz-after-sales-jboss-soa-jsf.htm
Referenz: Coaching: Expertenwissen JSF bei
Arbeitsübergabe
http://www.oio.de/referenzen/competence-center/
referenz-coaching-review-jsf-anwendung.htm
Herunterladen