76
www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 Einsatz und Grenzen von Java Server Faces 2.0 Kai Wähner München 09. September 2010

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,

Embed Size (px)

DESCRIPTION

Contains three Parts: 1) JSF basics (Architecture, Concepts) 2) JSF addons (Seam, Portlet-Bridge, Component Libraries, CaptainCasa) 3) Comparison to other Java Web Frameworks - decide when to use JSF and when to user another web framework Presented at an IT conference organized by "DOAG SIG Java" at Munich, Germany in September 2010. See details about this conference at my blog: www.kai-waehner.de/blog

Citation preview

Page 1: 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,

www.mwea.de

Einsatz und Grenzen von Java Server Faces 2.0 Einsatz und Grenzen von Java Server Faces 2.0

Kai Wähner

München

09. September 2010

Page 2: 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,

www.mwea.de

Einordnung von JSF in JEE

9/11/2010 Seite 2Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 3: 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,

www.mwea.de

Einordnung von JSF in JEE

9/11/2010 Seite 3Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 4: 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,

www.mwea.de

"Überblick" über JSF

9/11/2010 Seite 4Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 5: 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,

www.mwea.de

Ziel: ÜBERBLICK über JSF geben

9/11/2010 Seite 5Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 6: 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,

www.mwea.de

Keine Erläuterung aller Details des JSF-Standards

9/11/2010 Seite 6Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Bullet Point Boot Camp

Page 7: 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,

www.mwea.de

Keine Quellcode-Beispiele

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

Page 8: 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,

www.mwea.de

1. Überblick über JSF

2. Verfügbare Addons

3. Grenzen von JSF

Agenda

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

Page 9: 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,

www.mwea.de

1. Überblick über JSF2. Verfügbare Addons

3. Grenzen von JSF

Agenda

9/11/2010 Seite 9Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 10: 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,

www.mwea.de

JSF ist ein Web-Framework �Was ist das?

9/11/2010 Seite 10Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

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)

Page 11: 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,

www.mwea.de

Model-View-Controller (MVC) Pattern

9/11/2010 Seite 11Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 12: 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,

www.mwea.de

Überblick über JSF

9/11/2010 Seite 12Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Faces Servlet

Renderer

XUL

JSP

XHTML Converter

Validator

Managed Bean

faces-

(optional)

faces-config.xml(optional)

HTTP-Request

HTTP-Response

(AJAX)

Component A

Component A

Component B

Component B

Component C

Component C

Validator

ConverterConverter

Page 13: 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,

www.mwea.de

JSF und MVC

9/11/2010 Seite 13Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Faces Servlet

Renderer

XUL

JSP

XHTML Converter

Validator

Managed Bean

faces-

(optional)

faces-config.xml(optional)

HTTP-Request

HTTP-Response

(AJAX)

Component A

Component A

Component B

Component B

Component C

Component C

Validator

ConverterConverter

View

Page 14: 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,

www.mwea.de

JSF und MVC

9/11/2010 Seite 14Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Faces Servlet

Renderer

XUL

JSP

XHTML Converter

Validator

Managed Bean

faces-

(optional)

faces-config.xml(optional)

HTTP-Request

HTTP-Response

(AJAX)

Component A

Component A

Component B

Component B

Component C

Component C

Validator

ConverterConverter

Model

Page 15: 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,

www.mwea.de

JSF und MVC

9/11/2010 Seite 15Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Faces Servlet

Renderer

XUL

JSP

XHTML Converter

Validator

Managed Bean

faces-

(optional)

faces-config.xml(optional)

HTTP-Request

HTTP-Response

(AJAX)

Component A

Component A

Component B

Component B

Component C

Component C

Validator

ConverterConverter

Controller

Page 16: 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,

www.mwea.de

MVC - View

9/11/2010 Seite 16Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

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

Page 17: 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,

www.mwea.de

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

}

MVC – Model und Controller

9/11/2010 Seite 17Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 18: 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,

www.mwea.de

JSF Life Cycle

9/11/2010 Seite 18Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

RequestRequest

ResponseResponse

Apply Request Values

Apply Request Values

Restore View

Restore View

Process ValidationsProcess Validations

Update Model Values

Update Model Values

Invoke Application

s

Invoke Application

s

Render ResponseRender

Response

No Query Data

Conversion or Validation Errors

Page 19: 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,

www.mwea.de

Design-Konzepte � Multi-Page

9/11/2010 Seite 19Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Waren-katalogWaren-katalog

WarenkorbWarenkorb

StartseiteStartseite

Kunden-verwaltungKunden-verwaltung

Suche Artikel

Wähle Artikel aus

Bestelle Artikel

Page 20: 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,

www.mwea.de

Design-Konzepte � Server-zentrisch

9/11/2010 Seite 20Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

ServerServerClientClient

Request

Response: GUI + Daten

Bei jedem Request:

Page 21: 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,

www.mwea.de

Design-Konzepte � Komponenten-basiert

9/11/2010 Seite 21Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

ButtonButton

Complex ComponentComplex ComponentRadioButtonsRadioButtons

Dropdown-Box

Dropdown-Box

ButtonButton

TableTable

Page 22: 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,

www.mwea.de

Design-Konzepte: Server-seitige Validierung

9/11/2010 Seite 22Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Standard-Validierung vs. Bean-Validation (JSR-303)

Page 23: 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,

www.mwea.de

Was ist eigentlich neu bei JSF 2.0?

9/11/2010 Seite 23Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Standardisiertes Ressourcen-Management

Facelets(kein JSR!)

Zusätzliche Scopes

AJAX

Annotations

Einfachere Komponenten-entwicklung

Weniger Konfiguration

Page 24: 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,

www.mwea.de

Standard JSF Tags

Managed Beans,

Navigation,

Facelets,

Data Tables,

Converter,

Validation,

Composite Components,

Event Handling,

Custom Components,

Converters and Validators.

Weitere Details (d.h. Codebeispiele) zu JSF?

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

Page 25: 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,

www.mwea.de

1. Überblick über JSF

2. Verfügbare Addons3. Grenzen von JSF

Agenda

9/11/2010 Seite 25Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 26: 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,

www.mwea.de

Verfügbare Addons: Komponenten-Bibliotheken

9/11/2010 Seite 26Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 27: 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,

www.mwea.de

Beispiel "RichFaces"

9/11/2010 Seite 27Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

AJAX-Erweiterungen

AJAX-Erweiterungen

Dynamische

Ressourcen-Verwaltung

Dynamische

Ressourcen-Verwaltung

Client-side ValidationClient-side Validation

Eigene Komponenten

noch einfacher

Eigene Komponenten

noch einfacher

Viele Komponente

n

Viele Komponente

n

Page 28: 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,

www.mwea.de

Verfügbare Addons: JBoss Seam

9/11/2010 Seite 28Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 29: 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,

www.mwea.de

JBoss Seam

9/11/2010 Seite 29Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Seam 2 vs. Seam 3

Page 30: 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,

www.mwea.de

JBoss Seam – Rückblick: Seam 2 (JSF 1.2)

9/11/2010 Seite 30Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

„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)

Page 31: 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,

www.mwea.de

JBoss Seam – Rückblick: Seam 2 (JSF 1.2)

9/11/2010 Seite 31Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

JBoss

JBoss LGLP-

LizenzLGLP-Lizenz

100% JEE-

konform

100% JEE-

konform

JSF 1.2 + EJB 3.0 / POJO + JPA 1.0 / Hibernate

+ jBPM

JSF 1.2 + EJB 3.0 / POJO + JPA 1.0 / Hibernate

+ jBPM

seam-genseam-gen

Seam-Kontext über alle Schichten

(GUI – Logik –DB)

Seam-Kontext über alle Schichten

(GUI – Logik –DB)

Page 32: 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,

www.mwea.de

JBoss Seam – Vorschau: Seam 3 (JSF 2.0)

9/11/2010 Seite 32Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

„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

Page 33: 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,

www.mwea.de

JBoss Seam – Vorschau: Seam 3 (JSF 2.0)

9/11/2010 Seite 33Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

„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

Page 34: 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,

www.mwea.de

JBoss Seam – Vorschau: Seam 3 (JSF 2.0)

9/11/2010 Seite 34Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Frage: Wieso wird dann

überhaupt noch Seam 3 benötigt?

Page 35: 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,

www.mwea.de

JBoss Seam – Vorschau: Seam 3 (JSF 2.0)

9/11/2010 Seite 35Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

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“

Page 36: 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,

www.mwea.de

JBoss Seam – Wann soll es eingesetzt werden?

9/11/2010 Seite 36Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Seam ist geeignet für:

�Entwicklung einer vollständigen Webanwendung

Seam ist nicht geeignet für:

� Entwicklung einzelner Module

� Integration mit anderen Frameworks

Page 37: 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,

www.mwea.de

JBoss Seam – Pitfall

9/11/2010 Seite 37Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

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

Page 38: 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,

www.mwea.de

JBoss Seam – Pitfall

9/11/2010 Seite 38Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

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

Page 39: 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,

www.mwea.de

Verfügbare Addons: Portal-Integration

9/11/2010 Seite 39Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

<Exkurs_Portal>

Page 40: 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,

www.mwea.de

Portal-Integration - Was ist ein Portal?

9/11/2010 Seite 40Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Kein Standard!

Page 41: 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,

www.mwea.de

Portal-Integration - Was ist ein Portal?

9/11/2010 Seite 41Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

� 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

Page 42: 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,

www.mwea.de

Portal-Integration

9/11/2010 Seite 42Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 43: 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,

www.mwea.de

Portal-Integration - Vorteile eines Portals?

9/11/2010 Seite 43Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

� Integration

� Zusammenarbeit

� Single-Sign-On

� Personalisierung

Page 44: 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,

www.mwea.de

Portal-Integration

9/11/2010 Seite 44Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

</ Exkurs_Portal>

Page 45: 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,

www.mwea.de

Portal-Integration - Wieso JSF bei Portal einsetzen?

9/11/2010 Seite 45Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Problem generell:

Integration / Migration von Portlet und Web-Framework

Page 46: 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,

www.mwea.de

Portal-Integration - Wieso JSF bei Portal einsetzen?

9/11/2010 Seite 46Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Problem bei JSF:

JSF Life Cycle vs. Portlet Life Cycle

Problem generell:

Integration / Migration von Portlet und Web-Framework

Page 47: 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,

www.mwea.de

Portal-Integration - Wieso JSF bei Portal einsetzen?

9/11/2010 Seite 47Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

„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

Page 48: 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,

www.mwea.de

Verfügbare Addons: CaptainCasa

9/11/2010 Seite 48Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 49: 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,

www.mwea.de

CaptainCasa – Was ist das?

9/11/2010 Seite 49Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

100% JSF-kompatibel100% JSF-kompatibel

Zielgruppe: Enterprise-

Anwendungen

Zielgruppe: Enterprise-

Anwendungen

Rich Client + JSF BackendRich Client + JSF Backend

Verschiedene Lizenzierungs-möglichkeiten

Verschiedene Lizenzierungs-möglichkeiten

Eigene PDL und Render-KitEigene PDL

und Render-Kit

Page 50: 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,

www.mwea.de

CaptainCasa – Welche Technologien werden eingesetzt?

9/11/2010 Seite 50Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

HTML-Client als

Alternative

HTML-Client als

Alternative

XML-Layout statt HTMLXML-Layout statt HTML

Ausschluss einiger JSF-Features

Ausschluss einiger JSF-Features

Swing-basierter Client

Swing-basierter Client

Nutzt JSF-Referenz-

implementierung

Nutzt JSF-Referenz-

implementierung

Page 51: 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,

www.mwea.de

CaptainCasa – Wie wird entwickelt?

9/11/2010 Seite 51Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Video-TutorialsVideo-Tutorials

Einfache Installation /

Keine Konfiguration

Einfache Installation /

Keine Konfiguration

Viele verfügbare Komponente

n

Viele verfügbare Komponente

n

GUI-Builder + Eclipse-Plugin

GUI-Builder + Eclipse-Plugin

Page 52: 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,

www.mwea.de

CaptainCasa – Wie wird entwickelt?

9/11/2010 Seite 52Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 53: 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,

www.mwea.de

CaptainCasa – Wie wird entwickelt?

9/11/2010 Seite 53Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 54: 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,

www.mwea.de

Verfügbare Addons: Viele weitere...

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

JSF-FlexJSF-Flex

XULFacesXULFaces

J4Fry (u.a. JSF-JPA-Bridge)

J4Fry (u.a. JSF-JPA-Bridge)

JSFUnitJSFUnit PrettyFacesPrettyFaces

MyFaces External Validation

(Server-side)

MyFaces External Validation

(Server-side)

RichFaces Validation (Client-side)

RichFaces Validation (Client-side)

jQuery4jsfjQuery4jsf

OracleADF

OracleADF

Page 55: 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,

www.mwea.de

1. Überblick über JSF2. Verfügbare Addons

3. Grenzen von JSF

Agenda

9/11/2010 Seite 55Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 56: 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,

www.mwea.de

Welche Kriterien für den Vergleich von Web-Frameworks?

9/11/2010 Seite 56Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 57: 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,

www.mwea.de

Kriterien für den Vergleich von Web-Frameworks

9/11/2010 Seite 57Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

InternationalisierungLesezeichen

„Post-Redirect-Problem“

AJAXEinige mehr...

Page 58: 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,

www.mwea.de

Kriterien für den Vergleich von Web-Frameworks

9/11/2010 Seite 58Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

InternationalisierungLesezeichen

„Post-Redirect-Problem“

AJAX

Einige mehr...

Page 59: 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,

www.mwea.de

Unerwünscht: Flame War

9/11/2010 Seite 59Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 60: 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,

www.mwea.de

Kategorisierung von Web-Frameworks

9/11/2010 Seite 60Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Zeit-

aufwandKurz Lang

CRUD

Klassische Web-

Anwendung

Rich Internet Application

(RIA)Rich Client

Portal

Page 61: 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,

www.mwea.de

Überblick über Web-Frameworks im Java-Umfeld

9/11/2010 Seite 61Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Grails

JSF

Flex

JavaFX

Tapestry

Wicket

Roma Framework

ZK Framework

GWT

Struts

Spring

MVC

Komplexität hoch

Komplexität gering

Klassische

Web-

anwendungRIA

Lift

Page 62: 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,

www.mwea.de

Überblick über Web-Frameworks im Java-Umfeld

9/11/2010 Seite 62Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Grails

JSF

Flex

JavaFX

Tapestry

Wicket

Roma Framework

ZK Framework

GWT

Struts

Spring

MVC

Komplexität hoch

Komplexität gering

Klassische

Web-

anwendungRIA

Lift

CRUD-Client

Page 63: 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,

www.mwea.de

Überblick über Web-Frameworks im Java-Umfeld

9/11/2010 Seite 63Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Grails

JSF

Flex

JavaFX

Tapestry

Wicket

Roma Framework

ZK Framework

GWT

Struts

Spring

MVC

Komplexität hoch

Komplexität gering

Klassische

Web-

anwendungRIA

Lift

Klassische Webanwendung

Page 64: 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,

www.mwea.de

Überblick über Web-Frameworks im Java-Umfeld

9/11/2010 Seite 64Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Grails

JSF

Flex

JavaFX

Tapestry

Wicket

Roma Framework

ZK Framework

GWT

Struts

Spring

MVC

Komplexität hoch

Komplexität gering

Klassische

Web-

anwendungRIA

Lift

Rich Client

Page 65: 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,

www.mwea.de

Überblick über Web-Frameworks im Java-Umfeld

9/11/2010 Seite 65Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Grails

JSF

Flex

JavaFX

Tapestry

Wicket

Roma Framework

ZK Framework

GWT

Struts

Spring

MVC

Komplexität hoch

Komplexität gering

Klassische

Web-

anwendungRIA

Lift

RIA

Page 66: 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,

www.mwea.de

Überblick über Web-Frameworks im Java-Umfeld

9/11/2010 Seite 66Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Grails

JSF

Flex

JavaFX

Tapestry

Wicket

Roma Framework

ZK Framework

GWT

Struts

Spring

MVC

Komplexität hoch

Komplexität gering

Klassische

Web-

anwendungRIA

Lift

JSF = Klassische Webanwendung

Page 67: 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,

www.mwea.de

Überblick über Web-Frameworks im Java-Umfeld

9/11/2010 Seite 67Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Grails

JSF

Roma Framework

Komplexität hoch

Komplexität gering

Klassische

Web-

anwendungRIA

Lift

JSF + seam-gen= CRUD Client

JSF+

Seam

Page 68: 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,

www.mwea.de

Überblick über Web-Frameworks im Java-Umfeld

9/11/2010 Seite 68Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

JSF

ZK Framework

GWT

Komplexität hoch

Komplexität gering

Klassische

Web-

anwendungRIA

JSF + CaptainCasa = Rich Client

JSF +

Captain Casa

Page 69: 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,

www.mwea.de

Überblick über Web-Frameworks im Java-Umfeld

9/11/2010 Seite 69Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

JSF

Flex

JavaFX

Komplexität hoch

Komplexität gering

Klassische

Web-

anwendungRIA

JSF + ??? = RIA

JSF +???

Page 70: 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,

www.mwea.de

Überblick über Web-Frameworks im Java-Umfeld

9/11/2010 Seite 70Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

JSF

Flex

JavaFX

Komplexität hoch

Komplexität gering

Klassische

Web-

anwendungRIA

JSF + ??? = RIA

JSF +???

Page 71: 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,

www.mwea.de

"Key-Message" angekommen?

9/11/2010 Seite 71Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Page 72: 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,

www.mwea.de

Was ist JSF?

9/11/2010 Seite 72Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

JSF

Page 73: 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,

www.mwea.de

Welche Addons gibt es?

9/11/2010 Seite 73Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

JSFSeam

CaptainCasa

PortletBridge

JSFUnitJSF-Flex

Viele weitere....

PrettyFaces

Page 74: 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,

www.mwea.de

Welches Web-Framework einsetzen?

9/11/2010 Seite 74Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Zeit-

aufwandKurz Lang

CRUD

Klassische Web-

Anwendung

Rich Internet Application

(RIA)Rich Client

Portal

JSFSeam

CaptainCasa

PortletBridge

JSFUnitJSF-Flex

Viele weitere....

PrettyFaces

Page 75: 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,

www.mwea.de

Ziel: Verständlichen Überblick über JSF geben

9/11/2010 Seite 75Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner)

Grenzen von JSF

Verfügbare Addons

Überblick über JSF

Page 76: 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,

www.mwea.de

Auf Wiedersehen!

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

Kai WähnerIT-Consultant

Telefon +49 89 544 253 88Mobil +49 151 544 277 [email protected]/blog

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

Kai WähnerIT-Consultant

Telefon +49 89 544 253 88Mobil +49 151 544 277 [email protected]/blog

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