Categorizes all important Java Web Frameworks (Classic Web Application, CRUD, Rich Client, Rich Internet Application, Portal).
Shows when to use which kind of framework and gives examples from practice.
Presented at the IT conference "Herbstcampus 2010" at Nuremberg, Germany in September 2010.
See details about this conference at my blog: www.kai-waehner.de/blog
2. Unüberschaubare Auswahl im Alltag
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 2
3. Unüberschaubare Auswahl bei Web-Frameworks
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 3
4. Viele gute Artikel in Fachzeitschriften
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 4
5. Flame War – unerwünscht, aber überall existent
16.09.2010 | Seite 5
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 5
6. Keine Auflistung von Features einzelner Frameworks
Bullet Point
Boot Camp
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 6
8. Was ist die "Key-Message"?
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 8
9. Ermöglichen eine Entscheidung zu treffen
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 9
10. Kategorisierung wird benötigt
BUCHSTABEN NUMMERN SPRACHEN
Z 1 IV „Japanisch“
Y 667 „Englisch“
A
C XX „Deutsch“
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 10
11. Ziele dieses Vortrags
BUCHSTABEN NUMMERN SPRACHEN
Z 1 IV „Japanisch“
Y 667 „Englisch“
A
C XX „Deutsch“
Wichtige Begriffe verstehen!
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 11
12. Ziele dieses Vortrags
BUCHSTABEN NUMMERN SPRACHEN
Z 1 IV „Japanisch“
Y 667 „Englisch“
A
C XX „Deutsch“
Wichtige Begriffe verstehen!
Web-Frameworks kagegorisieren!
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 12
13. Ziele dieses Vortrags
BUCHSTABEN NUMMERN SPRACHEN
Z 1 IV „Japanisch“
Y 667 „Englisch“
A
C XX „Deutsch“
Wichtige Begriffe verstehen!
Web-Frameworks kagegorisieren!
Entscheidung treffen können!
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 13
14. Agenda
1. Wichtige Begriffe
2. Kategorisierung
3. Einsatzmöglichkeiten
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 14
15. Agenda
1. Wichtige Begriffe
(bezüglich Webentwicklung)
2. Kategorisierung
3. Einsatzmöglichkeiten
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 15
16. Das wichtigste Modewort: Web 2.0
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 16
17. Web 2.0 – technisch betrachtet: AJAX
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 17
18. Was ist AJAX nicht?
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 18
19. Was ist AJAX nicht?
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 19
20. Definition von AJAX
AJAX is a group of interrelated
web development techniques used
on the client-side to create
interactive web applications.
(Wikipedia)
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 20
21. Klassische Kommunikation vs. AJAX
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 21
22. Klassische Kommunikation vs. AJAX
Client-Anfrage
+
Server-Antwort
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 22
23. Klassische Kommunikation vs. AJAX
HTML
DOM
JavaScript
JSON / XML
XMLHttpRequest-
Objekt
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 23
24. Multi-Page vs. Single-Page
Suche Artikel Waren-
Startseite
katalog
Wähle Artikel aus
Kunden-
Warenkorb
verwaltung
Bestelle Artikel
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 24
25. Multi-Page vs. Single-Page
Schreibe
Email
Web-
anwendun Zeige Eingang an
g
Suche Email XYZ
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 25
26. Server-zentrisch vs. Client-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/16/2010 Seite 26
27. Server-zentrisch vs. Client-zentrisch
Beim ersten Request:
Request
Client Server
Response:
Vollständige GUI
+ Daten
www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/16/2010 Seite 27
28. Server-zentrisch vs. Client-zentrisch
Bei weiteren Requests:
Request
Client Server
Response:
GUI + zugehörige
Steuerungslogik
Beim ersten
Request: Request
Client Server
Response:
Vollständige GUI +
Daten
www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/16/2010 Seite 28
29. Action-basiert vs. Komponenten-basiert
Request
Client Server
Response
www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/16/2010 Seite 29
30. Action-basiert vs. Komponenten-basiert
Button
Table
Request
Client Server
Response Dropdown-
Box
Custom Component
www.mwea.de Einsatz und Grenzen von Java Server Faces 2.0 (Kai Wähner) 9/16/2010 Seite 30
31. Mehrkanal-Fähigkeit
Webanwendung
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 31
32. Offline-Fähigkeit
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 32
33. Agenda
1. Wichtige Begriffe
2. Kategorisierung
(von Web-Frameworks)
3. Einsatzmöglichkeiten
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 33
34. Welche Kriterien zur Bewertung von Web-
Frameworks?
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 34
35. Mögliche Kriterien zur Bewertung von Web-
Frameworks
Lesezeichen
Internationalsierung
Einige
weitere...
AJAX „Post-
Redirect-
Problem“
16.09.2010 | Seite 35
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 35
36. Die Kriterien sind bereits durchgängig erfüllt
Lesezeichen
Internationalisierung
Einige
weitere...
AJAX „Post-
Redirect-
Problem“
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 36
37. Kategorisierung von Web-Frameworks
Klassische Portal
Web-
CRUD Anwendung
Zeit-
aufwand
Kurz Lang
Rich Internet
Rich Client Application
(RIA)
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 37
41. Klassische Webanwendung
Technisch betrachtet:
Kein Plugin notwendig
Browser-Kompatibilitätsprobleme
(besonders bei AJAX)
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 41
42. ;Mögliche Web-Frameworks
Klassische Webanwendung
16.09.2010 | Seite 42
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 42
43. Rich Internet Application (RIA)
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 43
44. Rich Internet Application (RIA)
Technisch betrachtet:
GUI wird bei Start auf Client geladen
Plugin notwendig
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 44
45. Mögliche Web-Frameworks
Rich Internet Application (RIA)
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 45
46. Rich Client
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 46
47. Rich Client
Technisch betrachtet:
GUI wird bei Start auf Client geladen
Kein Plugin notwendig
Keine Browser-Kompatibilitätsprobleme
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 47
48. Mögliche Web-Frameworks
Rich Client
16.09.2010 | Seite 48
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 48
49. CRUD Client (Create – Read – Update – Delete)
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 49
50. CRUD Client (Create – Read – Update – Delete)
Technisch betrachtet:
Für Client kein Unterschied zur
klassischen Webanwendung
„Full Stack“-Framework
Ziel: Effizientere Entwicklung
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 50
51. Mögliche Web-Frameworks
CRUD Client
(Roma Framework)
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 51
52. Portal
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 52
53. Portal
Technisch betrachtet:
Portlet-Standard
Action-Phase und Render-Phase
„Low-Level“-Programmierung
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 53
54. Mögliche Web-Frameworks
Portal
16.09.2010 | Seite 54
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 54
55. Überblick über Web-Frameworks
Komplexität hoch
Lift
Flex
JavaFX
Grails
JSF
Spring
MVC
Klassische
Web- RIA
anwendung Tapestr
GWT
Struts y ZK
Frame
Wicket work
Roma
Frame
work
Komplexität gering
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 55
56. Überblick über Web-Frameworks
Komplexität hoch
Lift
Grails
CRUD JavaFX
Flex
JSF
Spring
MVC
Klassische
Web- RIA
anwendung Tapestr
GWT
Struts y ZK
Frame
Wicket work
Roma
Frame
work
Komplexität gering
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 56
57. Überblick über Web-Frameworks
Komplexität hoch
Lift
Klassische Flex
Grails Webanwendung JavaFX
JSF
Spring
MVC
Klassische
Web- RIA
anwendung Tapestr
GWT
Struts y ZK
Frame
Wicket work
Roma
Frame
work
Komplexität gering
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 57
58. Überblick über Web-Frameworks
Komplexität hoch
Lift
Flex
JavaFX
Grails
Spring
JSF Rich Client
MVC
Klassische
Web- RIA
anwendung Tapestr
GWT
Struts y ZK
Frame
Wicket work
Roma
Frame
work
Komplexität gering
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 58
59. Überblick über Web-Frameworks
Komplexität hoch
Lift
Flex
JavaFX
Grails
Spring
MVC
JSF RIA
Klassische
Web- RIA
anwendung Tapestr
GWT
Struts y ZK
Frame
Wicket work
Roma
Frame
work
Komplexität gering
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 59
60. Agenda
1. Wichtige Begriffe
2. Kategorisierung
3. Einsatzmöglichkeiten
(Einige Szenarien aus dem Unternehmensalltag)
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 60
61. Beispiel 1
GUI muss
Geringe
ihren „Job“
Kosten
tun
Interne Anwendung
zur Verwaltung von Daten
Kein
Nur „Must-
Aufwand für
Haves“
tolles Design
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 61
62. Beispiel 1
GUI muss
Geringe
ihren „Job“
Kosten
machen
Internal Application
for managing Data
Kein
Aufwand Nur „Must-
für tolles Haves“
Design
CRUD
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 62
63. Beispiel 2
Optisch nicht Muss kurze Netzwerk-
anspruchsvoll Probleme überstehen
Einstellungstest
für Bewerber
Gute
Hohe Verfügbarkeit
Benutzbarkeit
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 63
64. Beispiel 2
Muss kurze
Optisch nicht
Netzwerkprobleme
anspruchsvoll
überstehen
Einstellungstest
für Bewerber
Gute Hohe
Benutzbarkeit Verfügbarkeit
Rich
Client
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 64
65. Beispiel 2
Professionelles
Tolle Optik
Design
Unterhaltungssoftware
für Marketingzwecke
Gute Multimedia-
Benutzbarkeit Integration
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 65
66. Beispiel 3
Professionelles
Tolle Optik
Design
Unterhaltungssoftware
für Marketingzwecke
Gute Multimedia-
Benutzbarkeit Integration
RIA
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 66
67. Beispiel 4
Übersichtliche Hohe
Struktur Verfügbarkeit
Externe
Unternehmensdarstellung
Gute Schneller
Benutzbarkeit Zugriff
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 67
68. Beispiel 4
Übersichtliche
Hohe
Struktur
Verfügbarkeit
Externe
Unternehmensdarstellung
Gute Schneller Zugriff
Benutzbarkeit
Klassische
Webanwendung
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 68
69. Beispiel 5
Integration mehrere
Mehrkanalfähige
Geschäftsbereiche in
Prozesse
eine Oberfläche
Große
Unternehmensanwendung
Offline- Corporate
fähigkeit Identity
16.09.2010 | Seite 69
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 69
70. Beispiel 5
Integration mehrere Mehrkanalfähige
Geschäftsbereiche in eine Prozesse
Oberfläche
Große
Unternehmensanwendung
Offline- Corporate
fähigkeit Identity
Portal
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 70
16.09.2010 | Seite 70
71. Trend oder Hype?
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 71
72. Trend oder Hype?
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 72
73. Trend oder Hype?
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 73
74. Trend oder Hype?
IDE-
Plugins Community
Fachbücher
Komponenten-
Bibliotheken Medienberichte
(Konferenzen,
Blogs, Magazine)
GUI-Builder
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 74
75. Trend oder Hype?
16.09.2010 | Seite 75
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 75
76. Trend oder Hype?
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 76
77. Trend oder Hype?
16.09.2010 | Seite 77
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 77
78. Trend oder Hype?
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 78
79. Trend oder Hype?
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 79
80. Ist die "Key-Message" angekommen?
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 80
81. Was war das Ziel dieses Vortrags?
16.09.2010 | Seite 81
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 81
82. Ziel erreicht?
AJAX Multi-
Offline
Page
Und so weiter...
Klassische Portal
Web-
CRUD Anwendung
Time to
Short Long Develope
Rich Internet
Rich Application
Client (RIA)
JSF
GWT
JavaFX
Viele mehr...
www.mwea.de Bitte unter Einfügen/Foliennummer den Präsentationsnamen einpflegen 16.09.2010 Seite 82