Der GWT oder JSF Wahl-O-Mat

Die Seite wird erstellt Sibylle-Susanne Weigel
 
WEITER LESEN
Der GWT oder JSF Wahl-O-Mat
Der GWT oder JSF
   Wahl-O-Mat
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.
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.
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.
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.
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.
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.
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.
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.
Der GWT oder JSF Wahl-O-Mat
About

                                                     Thomas Asel

                               JSF-Geek
                                                     Orientation in Objects GmbH

                                          GWT-Nerd
Papick G. Taboada

pgt technology scouting GmbH
http://www.cartoonjournal.de

JSF, GWT?
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?!?
verwendetes CSS?

erzeugtes HTML?

                     ?
                                Dokumentation?

Aussehen?
                                     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 Quasi-
                 Standard?

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           Chrome   Firefox   Safari   Opera

      canvas
                                                         Vic Gundotra
                                                    Google IO Keynote
       video

  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   Java EE Standards

                                   klassische
                                  dynamische
RIAs
                                  Webanwend
                                     ungen

       There is a kind of magic
GWT & Standards
cloud

    HTML5
                       IE6
             IE10
                  IE9
   HTML4
             JS
                      Support
     Websphere
     5... 6... 7...
                Mobile

Zukunftsicherheit
Gewährleistung

Herstellerunabhängigkeit?
Herstellersupport
gibts nicht.
JBoss

Sencha
          Google                      (RichFaces)

(GXT)    GWT                    Prime Technology    JSF
                                  (PrimeFaces)
          Isomorphic Software
             (Smart GWT)                           Icesoft Technologies
                                                        (IceFaces)

                      Blau oder Rot?
Politische Kriterien
     Architektur
   Laufzeitumgebung
 Programmiermodell
Software-Engineering
       Produktivität
   Notwendige Skills
   UI Komponenten
Browser                                Server

                 e ve n t

                          l r espo   nse
              fu l l h tm

                  e ve n t

                          l r espo   nse
              fu l l h tm

                  e ve n t

                          esp   onse
              full html r

klassische Webanwendungen
Browser                               Server
                       first reques
                                         t

                               l respo   nse
                   fu l l h tm

 event

 event

                     data reque
                                    st
 event

                             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-Page-               Servlet,
                                                            Einbettung in
   Prinzip              HttpRequest
               GWT      (JSON, XML)                JSF     Seite schwierig

           Statische                  Navigation
                                                         JSF Runtime
          Resourcen

                       Integration?
Politische Kriterien
         Architektur
Laufzeitumgebung
  Programmiermodell
 Software-Engineering
        Produktivität
    Notwendige Skills
    UI Komponenten
weder
JSF noch
  GWT
   machen
 Aussage zu
  Backend-
Technologien
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   Navigation

Request-Response Modell

                          JSF macht Vorgaben
Konzepte aus Rich-Client-Entwicklung übernehmen

Vorgaben müssen erst definiert werden

       GWT eher weniger
Womit will ich
                             entwickeln?

                  HTML                        Facelets (XML)
                                                                               CSS
                               CSS
JavaScript

             GWT                             HTML
                                                           JSF                   JavaScript
                                                                                  (für RIA)

   Java                                             Java
                           UI Binder (XML)

         Technologiebrüche werden                    Technologiebruch gehört
                vermieden                            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,
                                                                OhneTooling
                 Testabdeckung, CI
                                                                 geht nix

                                      Refactoring,
                                      Enwurfsmuster, ...

                     Checkstyle,
                  Findbugs, PMD

                                      IDE, Code-Completion,
                                      Starke Typisierung, Debugging
   Fail early?
Programmiermodell (wdh)

                  HTML                        Facelets (XML)
                                                                               CSS
                               CSS
JavaScript

              GWT                            HTML
                                                           JSF                   JavaScript
                                                                                  (für RIA)

   Java                                             Java
                           UI Binder (XML)

         Technologiebrüche werden                    Technologiebruch gehört
                vermieden                            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
                                  Facelets (XML)

Java     GWT                JSF    HTML

                                  Java
             Heimspiel...
Politische Kriterien
        Architektur
   Laufzeitumgebung
 Programmiermodell
Software-Engineering
   Produktivität
   Notwendige Skills
   UI Komponenten
GWT               JSF
Sonstiges...

             GWT                                    JSF

                                         Rollentrennung Designer/ Java
schnelleres, umkompliziertes debugging   Entwickler besser umsetzbar

       bessere Composite
  Komponentenbildung (Typisierung        Breite Toolingunterstützung über
            möglich)                              mehrere IDEs
Web-
entwicklung
   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                        Webapp
Frameworks                        Frameworks
                  umfangreicher
                komplexer
                    ungewohnt
Lernkurve aus der Erfahrung
Know-How
                starke Weiterentwicklung, wachsende
                Themenbereiche
  Online
  Dokumentation          Wissen in Blogs

               GWT                Knappheit im
                                  Arbeitsmarkt
   wenige Schulungsanbieter

Bücher grundsätzlich   Beispiele & Javadocs                                             theoretisch Arbeitskräfte
            Veraltet                                          Wissen in Blogs                 am Markt…

                                                      Stabil durch
                                              lange Releasezyklen        JSF              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-gwt-
   google-web-toolkit-2-artikel.htm
Mehr von OIO zum Thema...
   Artikel: JSF Best Practices (englischer Artikel)
   http://www.oio.de/public/java/jsf-best-practices-
   javaserver-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-source-
   software/java-frameworks/consulting-support-java-
   frameworks.htm

  Referenz: Rent-a-Team: After-Sales System für
  Automobilhersteller
  http://www.oio.de/object-rangers/referenzen/java-
  projekt-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
Sie können auch lesen