SlideShare une entreprise Scribd logo
1  sur  76
Télécharger pour lire hors ligne
Kai Wähner
 München
 09. September 2010



 Einsatz und Grenzen von Java Server
 Faces 2.0
www.mwea.de
Einordnung von JSF in JEE




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 2
Einordnung von JSF in JEE




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 3
"Überblick" über JSF




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 4
Ziel: ÜBERBLICK über JSF geben




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 5
Keine Erläuterung aller Details des JSF-Standards




                         Bullet Point
                         Boot Camp




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 6
Keine Quellcode-Beispiele




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 7
Agenda



        1. Überblick über JSF
        2. Verfügbare Addons
        3. Grenzen von JSF




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 8
Agenda




        1. Überblick über JSF
        2. Verfügbare Addons
        3. Grenzen von JSF




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 9
JSF ist ein Web-Framework                         Was ist das?




 A web application framework is a software
 framework that is designed to support the
 development Web applications.
 The framework aims to alleviate the overhead
 associated with common activities performed in
 Web development..

 (Wikipedia)




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 10
Model-View-Controller (MVC) Pattern




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 11
Überblick über JSF


HTTP-
Request
                                            R                              XUL
                                            e
                                            n                               JSP
 (AJAX)
                                            d                                XHTML      Converter
                                                                                         Converter
              Faces                         e                               Component     Converter
                                            r                                  A
HTTP-         Servlet                                                       Component
                                            e                                  B
Response                                                                    Component
                                            r                                  C         Validator
                                                                                          Validator



                faces-                                                       Managed
              config.xml
              (optional)
                                                                              Bean

www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                9/11/2010   Seite 12
JSF und MVC


HTTP-
Request
                                                                                          View
                                            R                              XUL
                                            e
                                            n                               JSP
 (AJAX)
                                            d                                XHTML      Converter
                                                                                         Converter
              Faces                         e                               Component     Converter
                                            r                                  A
HTTP-         Servlet                                                       Component
                                            e                                  B
Response                                                                    Component
                                            r                                  C         Validator
                                                                                          Validator



                faces-                                                       Managed
              config.xml
              (optional)
                                                                              Bean

www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                9/11/2010   Seite 13
JSF und MVC


HTTP-
Request
                                            R                              XUL
                                            e
                                            n                               JSP
 (AJAX)
                                            d                                XHTML      Converter
                                                                                         Converter
              Faces                         e                               Component     Converter
                                            r                                  A
HTTP-         Servlet                                                       Component
                                            e                                  B
Response                                                                    Component
                                            r                                  C         Validator
                                                                                          Validator



                faces-
              config.xml
                                                                             Managed
                                                                              Bean
                                                                                         Model
              (optional)

www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                9/11/2010   Seite 14
JSF und MVC


HTTP-                                                                             Controller
Request
                                            R                              XUL
                                            e
                                            n                               JSP
 (AJAX)
                                            d                                XHTML      Converter
                                                                                         Converter
              Faces                         e                               Component     Converter
                                            r                                  A
HTTP-         Servlet                                                       Component
                                            e                                  B
Response                                                                    Component
                                            r                                  C         Validator
                                                                                          Validator



                faces-                                                       Managed
              config.xml
              (optional)
                                                                              Bean

www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                9/11/2010   Seite 15
MVC - View



      <?xml version='1.0' encoding='UTF-8' ?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml"
         xmlns:h="http://java.sun.com/jsf/html">
        <h:head>
           <title>"Hello World"-Beispiel</title>
        </h:head>

          <h:body>
            <p>Aktuelles Datum: </p>
            <h:outputText value="#{helloBean.now}" />

           <h:button value="Zur zweiten Seite“ action="#{helloBean.secondPage}"
        </h:body>
      </html>



www.mwea.de    Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 16
MVC – Model und Controller

package de.mwea.waehner.helloworld.beans;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;


// Annotations statt Konfiguration in faces-config.xml


@ManagedBean(name="helloBean") // Default-Name: helloWorldManagedBean
public class HelloWorldManagedBean {
    public HelloWorldManagedBean() {}


    public java.util.Date getNow() { return new java.util.Date();}


  public String getSecondPage() { return "secondPage.xhtml"; } // auch Navigation
möglich
}

www.mwea.de    Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 17
JSF Life Cycle




                                                                             Apply
                                          Restore                                               Process
     Request                                                                Request
                                           View                                                Validations
                                                                             Values

                            No Query Data



                                                                             Invoke              Update
                                          Render
    Response                                                               Application           Model
                                         Response
                                                                                s                Values



                                                                            Conversion or Validation Errors


www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                        9/11/2010     Seite 18
Design-Konzepte                 Multi-Page




                                                Suche Artikel                    Waren-
              Startseite
                                                                                 katalog



                                                                   Wähle Artikel aus




               Kunden-
                                                                               Warenkorb
              verwaltung
                                                Bestelle Artikel



www.mwea.de    Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                  9/11/2010   Seite 19
Design-Konzepte                Server-zentrisch



     Bei jedem
     Request:


                                                     Request



                Client                                                     Server



                                                Response:
                                                GUI + Daten



www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)            9/11/2010   Seite 20
Design-Konzepte                Komponenten-basiert




                         Dropdown-
                            Box

                       RadioButtons
                                                                Complex Component



                               Table
                                                                 Button    Button




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)            9/11/2010   Seite 21
Design-Konzepte: Server-seitige Validierung




    Standard-Validierung vs. Bean-Validation (JSR-
    303)
www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 22
Was ist eigentlich neu bei JSF 2.0?



        Standardisiertes                                                       Facelets
         Ressourcen-                                                          (kein JSR!)
         Management

                                                    Zusätzliche
                                                     Scopes
                                                                                Annotations



              AJAX                                Einfachere
                                                 Komponenten
                                                                                   Weniger
                                                 -entwicklung
                                                                                 Konfiguration



www.mwea.de      Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)           9/11/2010   Seite 23
Weitere Details (d.h. Codebeispiele) zu JSF?

Standard JSF Tags
Managed Beans,
Navigation,
Facelets,
Data Tables,
Converter,
Validation,
Composite Components,
Event Handling,
Custom Components,
Converters and Validators.

www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 24
Agenda



        1.    Überblick über JSF

        2. Verfügbare Addons
        3. Grenzen von JSF




www.mwea.de     Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 25
Verfügbare Addons: Komponenten-Bibliotheken




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 26
Beispiel "RichFaces"


             Viele                                                               Dynamisch
          Komponente                                                                 e
               n                                                                Ressourcen
                                                                                -Verwaltung
                                   AJAX-
                                Erweiterungen

                                                                                Eigene
                                                                             Komponenten
              Client-side
                                                                                 noch
              Validation
                                                                               einfacher


www.mwea.de     Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)            9/11/2010   Seite 27
Verfügbare Addons: JBoss Seam




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 28
JBoss Seam




              Seam 2 vs. Seam 3


www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 29
JBoss Seam – Rückblick: Seam 2 (JSF 1.2)




              „Mit JBoss Seam liegt ein Framework vor, das das Gebot
              der Leichtgewichtigkeit mit dem klassischen Java EE Stack
              kombinieren will.
              Es verspricht, die einzelnen Java-EE-Komponenten mit
              einem speziellen „Klebstoff“ zu verbinden und so für den
              Entwickler die Grenzen zwischen den einzelnen
              Technologien zu verwischen.“

              Java Magazin 01/2009 (Jan Groth, Frank Ratzlow)




www.mwea.de      Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 30
JBoss Seam – Rückblick: Seam 2 (JSF 1.2)


     JBos
                                    LGLP-
       s                                                                       JSF 1.2 +
                                    Lizenz
                                                                            EJB 3.0 / POJO +
                                                                           JPA 1.0 / Hibernate
        100%                                                                    + jBPM
        JEE-
       konform
                          Seam-Kontext
                            über alle
                            Schichten
                          (GUI – Logik –                                           seam-gen
                               DB)

www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                 9/11/2010   Seite 31
JBoss Seam – Vorschau: Seam 3 (JSF 2.0)




               „Wenn Java EE 6 das Haus baut,
               dann sorgt Seam 3 für die Möbel“

               Dan Allen (Seam-Comitter) im Java Magazin 08/2010




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 32
JBoss Seam – Vorschau: Seam 3 (JSF 2.0)




„Problem“: Vieles von Seam 2 in Java EE 6
integriert
    Context and Dependency Injection (JSR-299)
    Bean Validation (JSR-303)
    neue JSF 2.0 Features




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 33
JBoss Seam – Vorschau: Seam 3 (JSF 2.0)




                    Frage: Wieso wird dann
                überhaupt noch Seam 3 benötigt?




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 34
JBoss Seam – Vorschau: Seam 3 (JSF 2.0)



        Auszug aus Seam 3:


              JEE 6 Web-Profil als technisches Minimum
              seam-gen fast komplett neu
              „Seam 2 Bridge“
              PDF-Erzeugung
              BPM-Integration
              Arquillian: „An end to end testing solution“


www.mwea.de    Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 35
JBoss Seam – Wann soll es eingesetzt werden?




 Seam ist geeignet für:
      Entwicklung einer vollständigen Webanwendung

 Seam ist nicht geeignet für:
       Entwicklung einzelner Module
       Integration mit anderen Frameworks




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 36
JBoss Seam – Pitfall




       „Ich habe mit Seam angefangen. Ich habe aber
       gar keine Erfahrung mit Web-Entwicklung.
       Würde mir jemand sagen, wie ich darüber
       Beispiele und kleine Übungen finden kann?“

       Quelle: Ein Java-Forum...




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 37
JBoss Seam – Pitfall




    Hohes Maß an Verständnis sowohl der
verwendeten Technologien als auch der Seam-
   Konzepte wird unbedingt vorausgesetzt!



                                                     „Ich habe mit Seam angefangen. Ich habe aber gar
                                                     keine Erfahrung mit Web-Entwicklung. Würde mir
                                                     jemand sagen, wie ich darüber Beispiele und kleine
                                                     Übungen finden kann?“


                                                     Quelle: Ein Java-Forum...



www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                       9/11/2010   Seite 38
Verfügbare Addons: Portal-Integration




                        <Exkurs_Portal>



www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 39
Portal-Integration - Was ist ein Portal?




                            Kein Standard!




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 40
Portal-Integration - Was ist ein Portal?




     Informationen verschiedener Anwendungen auf eine
  einheitliche Art darstellen
     Informationen, Personen und Prozesse über
  organisatorische Grenzen hinweg in Unternehmen
  integrieren
        zusätzlich zu Web-Framework(s)
        Portal-Server
        Portlet-Standard


www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 41
Portal-Integration




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 42
Portal-Integration - Vorteile eines Portals?



          Integration
          Zusammenarbeit
          Single-Sign-On
          Personalisierung




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 43
Portal-Integration




                        </ Exkurs_Portal>



www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 44
Portal-Integration - Wieso JSF bei Portal einsetzen?


                                       Problem generell:
       Integration / Migration
  von Portlet und Web-Framework




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 45
Portal-Integration - Wieso JSF bei Portal einsetzen?


                                       Problem generell:
       Integration / Migration
  von Portlet und Web-Framework

                                        Problem bei JSF:
       JSF Life Cycle vs. Portlet Life
                  Cycle
www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 46
Portal-Integration - Wieso JSF bei Portal einsetzen?




              „Portlet Bridge for JSF“
                  JSR-301: Portlet 1.0 (JSR-168) + JSF 1.2

                  JSR-329: Portlet 2.0 (JSR-286) + JSF 1.2

                  JSR-???: Portlet 2.0 (JSR-286) + JSF 2.0
                   (bisher keine Standardspezifikation gestartet)
                   Liferay: portletfaces.org
                   JBoss: PortletBridge 3.0


www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 47
Verfügbare Addons: CaptainCasa




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 48
CaptainCasa – Was ist das?




              Rich Client +                                                         Eigene PDL
              JSF Backend                                                          und Render-Kit



                                                         100% JSF-
                                                         kompatibel




                Zielgruppe:                                                  Verschiedene
                Enterprise-                                                  Lizenzierungs-
               Anwendungen                                                   möglichkeiten



www.mwea.de     Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                    9/11/2010   Seite 49
CaptainCasa – Welche Technologien werden
 eingesetzt?


                 Nutzt JSF-                                                 Ausschluss
                 Referenz-                                                  einiger JSF-
               implementierun                                                 Features
                     g



           Swing-
                                                           XML-Layout
          basierter
                                                           statt HTML
           Client


                                                                                   HTML-Client
                                                                                        als
                                                                                    Alternative


www.mwea.de    Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                  9/11/2010   Seite 50
CaptainCasa – Wie wird entwickelt?




              Einfache Installation
                        /
              Keine Konfiguration                                                 Video-
                                                                                 Tutorials




                  GUI-Builder +                                                 Viele
                    Eclipse-                                                 verfügbare
                     Plugin                                                 Komponente
                                                                                  n


www.mwea.de    Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                 9/11/2010   Seite 51
CaptainCasa – Wie wird entwickelt?




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 52
CaptainCasa – Wie wird entwickelt?




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 53
Verfügbare Addons: Viele weitere...



          JSFUnit                                                             PrettyFaces

                                                   JSF-Flex

                                                                              MyFaces
           J4Fry                                                               External
         (u.a. JSF-                                                           Validation
        JPA-Bridge)                                                         (Server-side)
                                                  XULFaces


                                                                                RichFaces
              OracleAD
                                                                                Validation
                 F
                                                                               (Client-side)
                                                    jQuery4jsf


www.mwea.de    Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)           9/11/2010   Seite 54
Agenda



        1. Überblick über JSF
        2. Verfügbare Addons

        3. Grenzen von JSF




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 55
Welche Kriterien für den Vergleich von Web-
 Frameworks?




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 56
Kriterien für den Vergleich von Web-Frameworks




                                                                              Lesezeichen
               Internationalisierung




                                                              „Post-
                                                             Redirect-
                                                             Problem“

              AJAX
                                                                                   Einige
                                                                                   mehr...



www.mwea.de      Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)           9/11/2010   Seite 57
Kriterien für den Vergleich von Web-Frameworks




                                                                              Lesezeichen
               Internationalisierung




                                                                                  Einige
                                                                                  mehr...

              AJAX                                         „Post-
                                                          Redirect-
                                                          Problem“



www.mwea.de      Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)           9/11/2010   Seite 58
Unerwünscht: Flame War




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 59
Kategorisierung von Web-Frameworks




                      Klassische                                           Portal
                         Web-
      CRUD            Anwendung
                                                                                                 Zeit-
Kurz                                                                                Lang         aufwand

                                                   Rich Internet
              Rich Client                           Application
                                                      (RIA)




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)             9/11/2010     Seite 60
Überblick über Web-Frameworks im Java-Umfeld

                                                     Komplexität hoch
         Lift
                                                                                                      Flex
                                                                                       JavaF
       Grails                                                                            X




                 Sprin                       JSF
                  g
Klassische       MVC
Web-                                                                                                            RIA
anwendung                                                                        GWT
                                 Tapestr
                Struts              y                                     ZK
                                                                         Fram
                                           Wicke                         ework
                                             t

       Roma
       Fram
       ework
                                                     Komplexität gering
www.mwea.de      Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                    9/11/2010     Seite 61
Überblick über Web-Frameworks im Java-Umfeld

                                                     Komplexität hoch
         Lift

                         CRUD-Client                                                                  Flex
                                                                                       JavaF
       Grails                                                                            X




                 Sprin                       JSF
                  g
Klassische       MVC
Web-                                                                                                            RIA
anwendung                                                                        GWT
                                 Tapestr
                Struts              y                                     ZK
                                                                         Fram
                                           Wicke                         ework
                                             t

       Roma
       Fram
       ework
                                                     Komplexität gering
www.mwea.de      Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                    9/11/2010     Seite 62
Überblick über Web-Frameworks im Java-Umfeld

                                                     Komplexität hoch
         Lift

                         Klassische                                                                   Flex
                                                                                       JavaF
       Grails            Webanwendung                                                    X




                 Sprin                       JSF
                  g
Klassische       MVC
Web-                                                                                                            RIA
anwendung                                                                        GWT
                                 Tapestr
                Struts              y                                     ZK
                                                                         Fram
                                           Wicke                         ework
                                             t

        Roma
       Fram
       ework
                                                     Komplexität gering
www.mwea.de      Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                    9/11/2010     Seite 63
Überblick über Web-Frameworks im Java-Umfeld

                                                     Komplexität hoch
         Lift
                                                                                                      Flex
                                                                                       JavaF
       Grails                                                                            X




                 Sprin
                  g
                                             JSF                      Rich Client
Klassische       MVC
Web-                                                                                                            RIA
anwendung                                                                        GWT
                                 Tapestr
                Struts              y                                     ZK
                                                                         Fram
                                           Wicke                         ework
                                             t

       Roma
       Fram
       ework
                                                     Komplexität gering
www.mwea.de      Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                    9/11/2010     Seite 64
Überblick über Web-Frameworks im Java-Umfeld

                                                     Komplexität hoch
         Lift
                                                                                                       Flex
                                                                                        JavaF
       Grails                                                                             X




                 Sprin
                  g
                                             JSF                                 RIA
Klassische       MVC
Web-                                                                                                             RIA
anwendung                                                                         GWT
                                 Tapestr
                Struts              y                                     ZK
                                                                         Fram
                                           Wicke                         ework
                                             t

       Roma
       Fram
       ework
                                                     Komplexität gering
www.mwea.de      Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                     9/11/2010     Seite 65
Überblick über Web-Frameworks im Java-Umfeld

                         JSF =    Komplexität hoch
         Lift
                         Klassische                                                                   Flex

       Grails
                         Webanwendung                                                  JavaF
                                                                                         X




                 Sprin                       JSF
                  g
Klassische       MVC
Web-                                                                                                            RIA
anwendung                                                                        GWT
                                 Tapestr
                Struts              y                                     ZK
                                                                         Fram
                                           Wicke                         ework
                                             t

       Roma
       Fram
       ework
                                                     Komplexität gering
www.mwea.de      Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                    9/11/2010     Seite 66
Überblick über Web-Frameworks im Java-Umfeld

                                                    Komplexität hoch
         Lift

                               JSF + seam-gen
       Grails
                               = CRUD Client
                                            JSF

Klassische
Web-                                                                                        RIA
        JSF
anwendung
         +
       Seam



       Roma
       Fram
       ework
                                                    Komplexität gering
www.mwea.de     Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 67
Überblick über Web-Frameworks im Java-Umfeld

                                                  Komplexität hoch




                                                                    JSF + CaptainCasa
                                                                    = Rich Client
                                          JSF

Klassische
Web-                                                                                                RIA
anwendung                                                                   JSFGWT
                                                                       ZK    +
                                                                      FramCaptain
                                                                      ework Casa




                                                  Komplexität gering
www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)             9/11/2010   Seite 68
Überblick über Web-Frameworks im Java-Umfeld

                                                  Komplexität hoch
                                                                               JSF
                                                                                 +
                                                                                         Flex
                                                                                ???
    JSF + ??? = RIA                                                        JavaF
                                                                             X




                                          JSF

Klassische
Web-                                                                                               RIA
anwendung




                                                  Komplexität gering
www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)          9/11/2010     Seite 69
Überblick über Web-Frameworks im Java-Umfeld

                                                  Komplexität hoch
                                                                               JSF
                                                                                 +
                                                                                         Flex
                                                                                ???
    JSF + ??? = RIA                                                        JavaF
                                                                             X




                                          JSF

Klassische
Web-                                                                                               RIA
anwendung




                                                  Komplexität gering
www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)          9/11/2010     Seite 70
"Key-Message" angekommen?




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 71
Was ist JSF?




                             JSF




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)   9/11/2010   Seite 72
Welche Addons gibt es?




                              JSF                                    PortletBridge
  Seam


                                                                             PrettyFaces
              Captain                                                       JSFUnit
                                                                                     JSF-Flex

               Casa                                                            Viele weitere....

www.mwea.de    Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)         9/11/2010   Seite 73
Welches Web-Framework einsetzen?




                              JSF                                    PortletBridge
  Seam                 Klassische                                           Portal
                          Web-
      CRUD             Anwendung
                                                                                                       Zeit-
Kurz                                                                                     Lang          aufwand

                                                    Rich Internet
               Rich Client                           Application                      PrettyFaces
                                                       (RIA)
              Captain                                                                JSFUnit
                                                                                              JSF-Flex

               Casa                                                                     Viele weitere....

www.mwea.de    Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                  9/11/2010     Seite 74
Ziel: Verständlichen Überblick über JSF geben


                                                                                 Überblick über JSF




                                                                           Verfügbare Addons




                            Grenzen von JSF




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)                       9/11/2010   Seite 75
Auf Wiedersehen!




                  Kai Wähner
                  IT-Consultant

                  Telefon +49 89 544 253 88
                  Mobil +49 151 544 277 88
                  kai.waehner@mwea.de
                  www.kai-waehner.de/blog

                  MaibornWolff et al GmbH | Theresienhöhe 13 | D-80339 München




www.mwea.de   Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)         9/11/2010   Seite 76

Contenu connexe

Plus de Kai Wähner

Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...Kai Wähner
 
Data Streaming with Apache Kafka in the Defence and Cybersecurity Industry
Data Streaming with Apache Kafka in the Defence and Cybersecurity IndustryData Streaming with Apache Kafka in the Defence and Cybersecurity Industry
Data Streaming with Apache Kafka in the Defence and Cybersecurity IndustryKai Wähner
 
Apache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare IndustryApache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare IndustryKai Wähner
 
Apache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare IndustryApache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare IndustryKai Wähner
 
Apache Kafka for Real-time Supply Chain in the Food and Retail Industry
Apache Kafka for Real-time Supply Chainin the Food and Retail IndustryApache Kafka for Real-time Supply Chainin the Food and Retail Industry
Apache Kafka for Real-time Supply Chain in the Food and Retail IndustryKai Wähner
 
Kafka for Real-Time Replication between Edge and Hybrid Cloud
Kafka for Real-Time Replication between Edge and Hybrid CloudKafka for Real-Time Replication between Edge and Hybrid Cloud
Kafka for Real-Time Replication between Edge and Hybrid CloudKai Wähner
 
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0Kai Wähner
 
Apache Kafka Landscape for Automotive and Manufacturing
Apache Kafka Landscape for Automotive and ManufacturingApache Kafka Landscape for Automotive and Manufacturing
Apache Kafka Landscape for Automotive and ManufacturingKai Wähner
 
Kappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology ComparisonKappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology ComparisonKai Wähner
 
The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022Kai Wähner
 
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
Event Streaming CTO Roundtable for Cloud-native Kafka ArchitecturesEvent Streaming CTO Roundtable for Cloud-native Kafka Architectures
Event Streaming CTO Roundtable for Cloud-native Kafka ArchitecturesKai Wähner
 
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...Kai Wähner
 
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...Kai Wähner
 
Apache Kafka in the Transportation and Logistics
Apache Kafka in the Transportation and LogisticsApache Kafka in the Transportation and Logistics
Apache Kafka in the Transportation and LogisticsKai Wähner
 
Apache Kafka for Cybersecurity and SIEM / SOAR Modernization
Apache Kafka for Cybersecurity and SIEM / SOAR ModernizationApache Kafka for Cybersecurity and SIEM / SOAR Modernization
Apache Kafka for Cybersecurity and SIEM / SOAR ModernizationKai Wähner
 
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....Kai Wähner
 
Serverless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake ArchitectureServerless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake ArchitectureKai Wähner
 
IBM Cloud Pak for Integration with Confluent Platform powered by Apache Kafka
IBM Cloud Pak for Integration with Confluent Platform powered by Apache KafkaIBM Cloud Pak for Integration with Confluent Platform powered by Apache Kafka
IBM Cloud Pak for Integration with Confluent Platform powered by Apache KafkaKai Wähner
 
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?Kai Wähner
 
Apache Kafka in the Insurance Industry
Apache Kafka in the Insurance IndustryApache Kafka in the Insurance Industry
Apache Kafka in the Insurance IndustryKai Wähner
 

Plus de Kai Wähner (20)

Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
 
Data Streaming with Apache Kafka in the Defence and Cybersecurity Industry
Data Streaming with Apache Kafka in the Defence and Cybersecurity IndustryData Streaming with Apache Kafka in the Defence and Cybersecurity Industry
Data Streaming with Apache Kafka in the Defence and Cybersecurity Industry
 
Apache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare IndustryApache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare Industry
 
Apache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare IndustryApache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare Industry
 
Apache Kafka for Real-time Supply Chain in the Food and Retail Industry
Apache Kafka for Real-time Supply Chainin the Food and Retail IndustryApache Kafka for Real-time Supply Chainin the Food and Retail Industry
Apache Kafka for Real-time Supply Chain in the Food and Retail Industry
 
Kafka for Real-Time Replication between Edge and Hybrid Cloud
Kafka for Real-Time Replication between Edge and Hybrid CloudKafka for Real-Time Replication between Edge and Hybrid Cloud
Kafka for Real-Time Replication between Edge and Hybrid Cloud
 
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
 
Apache Kafka Landscape for Automotive and Manufacturing
Apache Kafka Landscape for Automotive and ManufacturingApache Kafka Landscape for Automotive and Manufacturing
Apache Kafka Landscape for Automotive and Manufacturing
 
Kappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology ComparisonKappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology Comparison
 
The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022
 
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
Event Streaming CTO Roundtable for Cloud-native Kafka ArchitecturesEvent Streaming CTO Roundtable for Cloud-native Kafka Architectures
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
 
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
 
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
 
Apache Kafka in the Transportation and Logistics
Apache Kafka in the Transportation and LogisticsApache Kafka in the Transportation and Logistics
Apache Kafka in the Transportation and Logistics
 
Apache Kafka for Cybersecurity and SIEM / SOAR Modernization
Apache Kafka for Cybersecurity and SIEM / SOAR ModernizationApache Kafka for Cybersecurity and SIEM / SOAR Modernization
Apache Kafka for Cybersecurity and SIEM / SOAR Modernization
 
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....
 
Serverless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake ArchitectureServerless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
 
IBM Cloud Pak for Integration with Confluent Platform powered by Apache Kafka
IBM Cloud Pak for Integration with Confluent Platform powered by Apache KafkaIBM Cloud Pak for Integration with Confluent Platform powered by Apache Kafka
IBM Cloud Pak for Integration with Confluent Platform powered by Apache Kafka
 
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?
 
Apache Kafka in the Insurance Industry
Apache Kafka in the Insurance IndustryApache Kafka in the Insurance Industry
Apache Kafka in the Insurance Industry
 

DOAG SIG Java 2010 - Java Web Framework - Java Server Faces (JSF) 2.0 - Architecture, Addons (Seam, ICEFaces, etc) and Comparison to other Frameworks (GWT, Wicket, Tapestry, ZK, Grails, Lift, Spring MVC / Roo, Flex, JavaFX)

  • 1. Kai Wähner München 09. September 2010 Einsatz und Grenzen von Java Server Faces 2.0 www.mwea.de
  • 2. Einordnung von JSF in JEE www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 2
  • 3. Einordnung von JSF in JEE www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 3
  • 4. "Überblick" über JSF www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 4
  • 5. Ziel: ÜBERBLICK über JSF geben www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 5
  • 6. Keine Erläuterung aller Details des JSF-Standards Bullet Point Boot Camp www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 6
  • 7. Keine Quellcode-Beispiele www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 7
  • 8. Agenda 1. Überblick über JSF 2. Verfügbare Addons 3. Grenzen von JSF www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 8
  • 9. Agenda 1. Überblick über JSF 2. Verfügbare Addons 3. Grenzen von JSF www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 9
  • 10. JSF ist ein Web-Framework Was ist das? A web application framework is a software framework that is designed to support the development Web applications. The framework aims to alleviate the overhead associated with common activities performed in Web development.. (Wikipedia) www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 10
  • 11. Model-View-Controller (MVC) Pattern www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 11
  • 12. Überblick über JSF HTTP- Request R XUL e n JSP (AJAX) d XHTML Converter Converter Faces e Component Converter r A HTTP- Servlet Component e B Response Component r C Validator Validator faces- Managed config.xml (optional) Bean www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 12
  • 13. JSF und MVC HTTP- Request View R XUL e n JSP (AJAX) d XHTML Converter Converter Faces e Component Converter r A HTTP- Servlet Component e B Response Component r C Validator Validator faces- Managed config.xml (optional) Bean www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 13
  • 14. JSF und MVC HTTP- Request R XUL e n JSP (AJAX) d XHTML Converter Converter Faces e Component Converter r A HTTP- Servlet Component e B Response Component r C Validator Validator faces- config.xml Managed Bean Model (optional) www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 14
  • 15. JSF und MVC HTTP- Controller Request R XUL e n JSP (AJAX) d XHTML Converter Converter Faces e Component Converter r A HTTP- Servlet Component e B Response Component r C Validator Validator faces- Managed config.xml (optional) Bean www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 15
  • 16. MVC - View <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>"Hello World"-Beispiel</title> </h:head> <h:body> <p>Aktuelles Datum: </p> <h:outputText value="#{helloBean.now}" /> <h:button value="Zur zweiten Seite“ action="#{helloBean.secondPage}" </h:body> </html> www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 16
  • 17. MVC – Model und Controller package de.mwea.waehner.helloworld.beans; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; // Annotations statt Konfiguration in faces-config.xml @ManagedBean(name="helloBean") // Default-Name: helloWorldManagedBean public class HelloWorldManagedBean { public HelloWorldManagedBean() {} public java.util.Date getNow() { return new java.util.Date();} public String getSecondPage() { return "secondPage.xhtml"; } // auch Navigation möglich } www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 17
  • 18. JSF Life Cycle Apply Restore Process Request Request View Validations Values No Query Data Invoke Update Render Response Application Model Response s Values Conversion or Validation Errors www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 18
  • 19. Design-Konzepte Multi-Page Suche Artikel Waren- Startseite katalog Wähle Artikel aus Kunden- Warenkorb verwaltung Bestelle Artikel www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 19
  • 20. Design-Konzepte Server-zentrisch Bei jedem Request: Request Client Server Response: GUI + Daten www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 20
  • 21. Design-Konzepte Komponenten-basiert Dropdown- Box RadioButtons Complex Component Table Button Button www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 21
  • 22. Design-Konzepte: Server-seitige Validierung Standard-Validierung vs. Bean-Validation (JSR- 303) www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 22
  • 23. Was ist eigentlich neu bei JSF 2.0? Standardisiertes Facelets Ressourcen- (kein JSR!) Management Zusätzliche Scopes Annotations AJAX Einfachere Komponenten Weniger -entwicklung Konfiguration www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 23
  • 24. Weitere Details (d.h. Codebeispiele) zu JSF? Standard JSF Tags Managed Beans, Navigation, Facelets, Data Tables, Converter, Validation, Composite Components, Event Handling, Custom Components, Converters and Validators. www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 24
  • 25. Agenda 1. Überblick über JSF 2. Verfügbare Addons 3. Grenzen von JSF www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 25
  • 26. Verfügbare Addons: Komponenten-Bibliotheken www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 26
  • 27. Beispiel "RichFaces" Viele Dynamisch Komponente e n Ressourcen -Verwaltung AJAX- Erweiterungen Eigene Komponenten Client-side noch Validation einfacher www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 27
  • 28. Verfügbare Addons: JBoss Seam www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 28
  • 29. JBoss Seam Seam 2 vs. Seam 3 www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 29
  • 30. JBoss Seam – Rückblick: Seam 2 (JSF 1.2) „Mit JBoss Seam liegt ein Framework vor, das das Gebot der Leichtgewichtigkeit mit dem klassischen Java EE Stack kombinieren will. Es verspricht, die einzelnen Java-EE-Komponenten mit einem speziellen „Klebstoff“ zu verbinden und so für den Entwickler die Grenzen zwischen den einzelnen Technologien zu verwischen.“ Java Magazin 01/2009 (Jan Groth, Frank Ratzlow) www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 30
  • 31. JBoss Seam – Rückblick: Seam 2 (JSF 1.2) JBos LGLP- s JSF 1.2 + Lizenz EJB 3.0 / POJO + JPA 1.0 / Hibernate 100% + jBPM JEE- konform Seam-Kontext über alle Schichten (GUI – Logik – seam-gen DB) www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 31
  • 32. JBoss Seam – Vorschau: Seam 3 (JSF 2.0) „Wenn Java EE 6 das Haus baut, dann sorgt Seam 3 für die Möbel“ Dan Allen (Seam-Comitter) im Java Magazin 08/2010 www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 32
  • 33. JBoss Seam – Vorschau: Seam 3 (JSF 2.0) „Problem“: Vieles von Seam 2 in Java EE 6 integriert Context and Dependency Injection (JSR-299) Bean Validation (JSR-303) neue JSF 2.0 Features www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 33
  • 34. JBoss Seam – Vorschau: Seam 3 (JSF 2.0) Frage: Wieso wird dann überhaupt noch Seam 3 benötigt? www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 34
  • 35. JBoss Seam – Vorschau: Seam 3 (JSF 2.0) Auszug aus Seam 3: JEE 6 Web-Profil als technisches Minimum seam-gen fast komplett neu „Seam 2 Bridge“ PDF-Erzeugung BPM-Integration Arquillian: „An end to end testing solution“ www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 35
  • 36. JBoss Seam – Wann soll es eingesetzt werden? Seam ist geeignet für: Entwicklung einer vollständigen Webanwendung Seam ist nicht geeignet für: Entwicklung einzelner Module Integration mit anderen Frameworks www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 36
  • 37. JBoss Seam – Pitfall „Ich habe mit Seam angefangen. Ich habe aber gar keine Erfahrung mit Web-Entwicklung. Würde mir jemand sagen, wie ich darüber Beispiele und kleine Übungen finden kann?“ Quelle: Ein Java-Forum... www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 37
  • 38. JBoss Seam – Pitfall Hohes Maß an Verständnis sowohl der verwendeten Technologien als auch der Seam- Konzepte wird unbedingt vorausgesetzt! „Ich habe mit Seam angefangen. Ich habe aber gar keine Erfahrung mit Web-Entwicklung. Würde mir jemand sagen, wie ich darüber Beispiele und kleine Übungen finden kann?“ Quelle: Ein Java-Forum... www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 38
  • 39. Verfügbare Addons: Portal-Integration <Exkurs_Portal> www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 39
  • 40. Portal-Integration - Was ist ein Portal? Kein Standard! www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 40
  • 41. Portal-Integration - Was ist ein Portal? Informationen verschiedener Anwendungen auf eine einheitliche Art darstellen Informationen, Personen und Prozesse über organisatorische Grenzen hinweg in Unternehmen integrieren zusätzlich zu Web-Framework(s) Portal-Server Portlet-Standard www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 41
  • 42. Portal-Integration www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 42
  • 43. Portal-Integration - Vorteile eines Portals? Integration Zusammenarbeit Single-Sign-On Personalisierung www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 43
  • 44. Portal-Integration </ Exkurs_Portal> www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 44
  • 45. Portal-Integration - Wieso JSF bei Portal einsetzen? Problem generell: Integration / Migration von Portlet und Web-Framework www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 45
  • 46. Portal-Integration - Wieso JSF bei Portal einsetzen? Problem generell: Integration / Migration von Portlet und Web-Framework Problem bei JSF: JSF Life Cycle vs. Portlet Life Cycle www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 46
  • 47. Portal-Integration - Wieso JSF bei Portal einsetzen? „Portlet Bridge for JSF“ JSR-301: Portlet 1.0 (JSR-168) + JSF 1.2 JSR-329: Portlet 2.0 (JSR-286) + JSF 1.2 JSR-???: Portlet 2.0 (JSR-286) + JSF 2.0 (bisher keine Standardspezifikation gestartet) Liferay: portletfaces.org JBoss: PortletBridge 3.0 www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 47
  • 48. Verfügbare Addons: CaptainCasa www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 48
  • 49. CaptainCasa – Was ist das? Rich Client + Eigene PDL JSF Backend und Render-Kit 100% JSF- kompatibel Zielgruppe: Verschiedene Enterprise- Lizenzierungs- Anwendungen möglichkeiten www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 49
  • 50. CaptainCasa – Welche Technologien werden eingesetzt? Nutzt JSF- Ausschluss Referenz- einiger JSF- implementierun Features g Swing- XML-Layout basierter statt HTML Client HTML-Client als Alternative www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 50
  • 51. CaptainCasa – Wie wird entwickelt? Einfache Installation / Keine Konfiguration Video- Tutorials GUI-Builder + Viele Eclipse- verfügbare Plugin Komponente n www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 51
  • 52. CaptainCasa – Wie wird entwickelt? www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 52
  • 53. CaptainCasa – Wie wird entwickelt? www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 53
  • 54. Verfügbare Addons: Viele weitere... JSFUnit PrettyFaces JSF-Flex MyFaces J4Fry External (u.a. JSF- Validation JPA-Bridge) (Server-side) XULFaces RichFaces OracleAD Validation F (Client-side) jQuery4jsf www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 54
  • 55. Agenda 1. Überblick über JSF 2. Verfügbare Addons 3. Grenzen von JSF www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 55
  • 56. Welche Kriterien für den Vergleich von Web- Frameworks? www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 56
  • 57. Kriterien für den Vergleich von Web-Frameworks Lesezeichen Internationalisierung „Post- Redirect- Problem“ AJAX Einige mehr... www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 57
  • 58. Kriterien für den Vergleich von Web-Frameworks Lesezeichen Internationalisierung Einige mehr... AJAX „Post- Redirect- Problem“ www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 58
  • 59. Unerwünscht: Flame War www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 59
  • 60. Kategorisierung von Web-Frameworks Klassische Portal Web- CRUD Anwendung Zeit- Kurz Lang aufwand Rich Internet Rich Client Application (RIA) www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 60
  • 61. Überblick über Web-Frameworks im Java-Umfeld Komplexität hoch Lift Flex JavaF Grails X Sprin JSF g Klassische MVC Web- RIA anwendung GWT Tapestr Struts y ZK Fram Wicke ework t Roma Fram ework Komplexität gering www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 61
  • 62. Überblick über Web-Frameworks im Java-Umfeld Komplexität hoch Lift CRUD-Client Flex JavaF Grails X Sprin JSF g Klassische MVC Web- RIA anwendung GWT Tapestr Struts y ZK Fram Wicke ework t Roma Fram ework Komplexität gering www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 62
  • 63. Überblick über Web-Frameworks im Java-Umfeld Komplexität hoch Lift Klassische Flex JavaF Grails Webanwendung X Sprin JSF g Klassische MVC Web- RIA anwendung GWT Tapestr Struts y ZK Fram Wicke ework t Roma Fram ework Komplexität gering www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 63
  • 64. Überblick über Web-Frameworks im Java-Umfeld Komplexität hoch Lift Flex JavaF Grails X Sprin g JSF Rich Client Klassische MVC Web- RIA anwendung GWT Tapestr Struts y ZK Fram Wicke ework t Roma Fram ework Komplexität gering www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 64
  • 65. Überblick über Web-Frameworks im Java-Umfeld Komplexität hoch Lift Flex JavaF Grails X Sprin g JSF RIA Klassische MVC Web- RIA anwendung GWT Tapestr Struts y ZK Fram Wicke ework t Roma Fram ework Komplexität gering www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 65
  • 66. Überblick über Web-Frameworks im Java-Umfeld JSF = Komplexität hoch Lift Klassische Flex Grails Webanwendung JavaF X Sprin JSF g Klassische MVC Web- RIA anwendung GWT Tapestr Struts y ZK Fram Wicke ework t Roma Fram ework Komplexität gering www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 66
  • 67. Überblick über Web-Frameworks im Java-Umfeld Komplexität hoch Lift JSF + seam-gen Grails = CRUD Client JSF Klassische Web- RIA JSF anwendung + Seam Roma Fram ework Komplexität gering www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 67
  • 68. Überblick über Web-Frameworks im Java-Umfeld Komplexität hoch JSF + CaptainCasa = Rich Client JSF Klassische Web- RIA anwendung JSFGWT ZK + FramCaptain ework Casa Komplexität gering www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 68
  • 69. Überblick über Web-Frameworks im Java-Umfeld Komplexität hoch JSF + Flex ??? JSF + ??? = RIA JavaF X JSF Klassische Web- RIA anwendung Komplexität gering www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 69
  • 70. Überblick über Web-Frameworks im Java-Umfeld Komplexität hoch JSF + Flex ??? JSF + ??? = RIA JavaF X JSF Klassische Web- RIA anwendung Komplexität gering www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 70
  • 71. "Key-Message" angekommen? www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 71
  • 72. Was ist JSF? JSF www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 72
  • 73. Welche Addons gibt es? JSF PortletBridge Seam PrettyFaces Captain JSFUnit JSF-Flex Casa Viele weitere.... www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 73
  • 74. Welches Web-Framework einsetzen? JSF PortletBridge Seam Klassische Portal Web- CRUD Anwendung Zeit- Kurz Lang aufwand Rich Internet Rich Client Application PrettyFaces (RIA) Captain JSFUnit JSF-Flex Casa Viele weitere.... www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 74
  • 75. Ziel: Verständlichen Überblick über JSF geben Überblick über JSF Verfügbare Addons Grenzen von JSF www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 75
  • 76. Auf Wiedersehen! Kai Wähner IT-Consultant Telefon +49 89 544 253 88 Mobil +49 151 544 277 88 kai.waehner@mwea.de www.kai-waehner.de/blog MaibornWolff et al GmbH | Theresienhöhe 13 | D-80339 München www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/11/2010 Seite 76