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