Der GWT oder JSF Wahl-O-Mat · Die Session stellt ein bereits mehrfach erprobtes Auswahlinstrument...

96
Der GWT oder JSF Wahl-O-Mat

Transcript of Der GWT oder JSF Wahl-O-Mat · Die Session stellt ein bereits mehrfach erprobtes Auswahlinstrument...

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.

Thomas Asel

Orientation in Objects GmbH

GW

T-N

erd

JSF

-Ge

ek

Papick G. Taboada

pgt technology scouting GmbH

About

JSF, GWT?

http://www.cartoonjournal.de

Fear, Uncertainty and Doubt

GWT ist...

kein Standard.

JSF ist...doch langsam!

State-Saving, erster Aufruf,

Server Ressourcen- verbrauch!

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?!?

?erzeugtes HTML?

verwendetes CSS?

Dokumentation?

API?Aussehen?

Was vergleichen wir?!?

And the winner is?!?

2.322 2.321

Architekturvergleich

Prototypisierung ist gut

Aber, Prototyp mit Produktionscharakter?!?

Produkt oder Projekt?

Java

Java EE

Spring, …

Swing, Struts, …

JSF, Eclipse RCP

GWT

Unsere Reise

RIA == JS Entwicklung?

Die Magie findet im Client/ Browser statt.

JS als De-facto oder Quasi-Standard?

RIA

Mehr RIA, mehr JS, weniger Java?

*DOM

Fear browsers* with all of mind, body and spirit

When in danger, when in doubt, run in circles

cry and shout...

HTML 5 here and now

Vic GundotraGoogle IO Keynote

HTML5 Chrome Firefox Safari Opera

canvas

video

geolocation

appcache

database

workers

Wahl-O-Mat?

Politische Kriterien

Architektur

Laufzeitumgebung

Programmiermodell

Software-Engineering

Produktivität

Notwendige Skills

UI Komponenten

Fail fast, failearly

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

• Java EE ist ein De-facto oder Quasi-Standard in der Entwicklung von unternehmenskritischen Anwendungen

• JSF Spezifikation ist Teil der Java EE SpezifikationStandard

Wo ist JSF Standard?

Industriestandard

There is a kind of magic

klassische dynamische Webanwend

ungen

RIAs

WEB Standards Java EE Standards

GWT & Standards

Zukunftsicherheit

IE9HTML4

Websphere 5... 6... 7...

HTML5

JSIE10

IE6

Mobile

Support

cloud

Herstellerunabhängigkeit?Herstellersupport

Gewährleistung

gibts nicht.

Blau oder Rot?

GWTGoogle

Sencha (GXT)

Isomorphic Software (Smart GWT)

JSF

JBoss(RichFaces)

Prime Technology(PrimeFaces)

Icesoft Technologies(IceFaces)

Politische Kriterien

Architektur

Laufzeitumgebung

Programmiermodell

Software-Engineering

Produktivität

Notwendige Skills

UI Komponenten

klassische Webanwendungen

Browser Server

event

event

event

full html response

full html response

full html response

Ajax architectural shift

Browser Server

event

first request

full html response

data

data request

data

data request

event

event

event

Ajax Webapps

http://breganzane.com/blog/snfl.php

(ifying)

Ajax Webapps

http://breganzane.com/blog/snfl.php

(ifying)

Architektur Evolution?

• Reduzierung der Latenz

• Reduzierung des Bandbreitenbedarfs

• Reduzierung Ressourcenverbrauch Serverseitig

• Verteilung der Last auf Clients

Teil eines Ganzen?

Integration?

GWT JSFServlet,

HttpRequest (JSON, XML)

JSF RuntimeStatische

Resourcen

Navigation

Einbettung in Seite schwierig

Single-Page-Prinzip

Politische Kriterien

Architektur

Laufzeitumgebung

Programmiermodell

Software-Engineering

Produktivität

Notwendige Skills

UI Komponenten

weder JSF noch GWT

machen Aussage zu Backend-

Technologien

Nur ein Web-Container

http://download.oracle.com/javaee/5/tutorial/doc/bnabo.html

In der Entwicklung

aber... ist es bei GWT angenehmer das

Backend im mitgelieferten Jetty starten zu können.

Daher sind Spring-Backends sehr beliebt.

JSF & die „Fullstack“ Falle

webspherejboss

glassfish

weblogic

Politische Kriterien

Architektur

Laufzeitumgebung

Programmiermodell

Software-Engineering

Produktivität

Notwendige Skills

UI Komponenten

JSF macht Vorgaben

Request-Response Modell

Data-Binding/ Validierung Navigation

GWT eher weniger

Vorgaben müssen erst definiert werden

Konzepte aus Rich-Client-Entwicklung übernehmen

Womit will ich entwickeln?

GWT JSF

Facelets (XML)HTML

JavaScriptCSS

Java UI Binder (XML)

HTMLJavaScript (für RIA)

CSS

Java

Technologiebrüche werden vermieden

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

Unit Tests, Testabdeckung, CI

Refactoring, Enwurfsmuster, ...

Checkstyle, Findbugs, PMD

IDE, Code-Completion, Starke Typisierung, Debugging

Zu aufwendig?

OhneTooling geht nix

Fail early?

Programmiermodell (wdh)

GWT JSF

Facelets (XML)HTML

JavaScriptCSS

Java UI Binder (XML)

HTMLJavaScript (für RIA)

CSS

Java

Technologiebrüche werden vermieden

Technologiebruch gehört zum Programmiermodell

Hier wäre eine Einführung in GWT und JSF angebracht

Programmiermodell und Software-Engineering?

GWT JSF

Facelets (XML)

Java HTML

Java

Programmiermodell und Software-Engineering?

GWT JSF

Facelets (XML)

Java HTML

Java

Technologiebrüche machen es schwieriger

Heimspiel...

Politische Kriterien

Architektur

Laufzeitumgebung

Programmiermodell

Software-Engineering

Produktivität

Notwendige Skills

UI Komponenten

Deployment Turnaround

<1s

JSFGWT

1s bis 3m +backend

Sonstiges...

GWT JSF

schnelleres, umkompliziertes debuggingRollentrennung Designer/ Java Entwickler besser umsetzbar

bessere Composite Komponentenbildung (Typisierung

möglich)

Breite Toolingunterstützung über mehrere IDEs

Web-entwicklung

ist ein Hürdenlauf

über Technologiebrüche

Produktivitätsgewinn durch Spezialisierung

Fachanwendung

Fachanwendungsframework

Generisches Webframework

Politische Kriterien

Architektur

Laufzeitumgebung

Programmiermodell

Software-Engineering

Produktivität

Notwendige Skills

UI Komponenten

Teambedingt

Rich Client Frameworks

Webapp Frameworks

ungewohntkomplexer

umfangreicher

Lernkurve aus der Erfahrung

Know-How

GWT

Bücher grundsätzlich Veraltet

Online Dokumentation

Beispiele & Javadocs

JSF

Wissen in Blogs

Wissen in Blogs

gute Bücher vorhanden

Dokumentation, Javadocs, Beispiele abhängig von der Komponentenbibliothek

starke Weiterentwicklung, wachsendeThemenbereiche

Stabil durch lange Releasezyklen

wenige Schulungsanbieter

viele Schulungsanbieter (Technologie)

Knappheit im Arbeitsmarkt

theoretisch Arbeitskräfte am Markt…

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

Referenz: Rent-a-Team: After-Sales System für Automobilherstellerhttp://www.oio.de/object-rangers/referenzen/java-projekt-referenz-after-sales-jboss-soa-jsf.htm

Referenz: Coaching: Expertenwissen JSF bei Arbeitsübergabehttp://www.oio.de/referenzen/competence-center/referenz-coaching-review-jsf-anwendung.htm

Beratung zu Java Software Frameworkshttp://www.oio.de/beratung-consulting/open-source-software/java-frameworks/consulting-support-java-frameworks.htm