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