Google Web Toolkit

Werbung
GWT
Google Web Toolkit
© by PRODYNA AG 2007 – www.prodyna.de
Die Referenten
Michael Schmut
• Senior IT Consultant
• Java EE Architekturen
• Project Management
Papick Taboada
• Software Architekt
• Java EE Architekturen
• Open-Source-Technologien
© by PRODYNA AG 2007 – www.prodyna.de
2
Agenda
ƒ Konzept
ƒ Roundtrip
ƒ Anbindung Spring
ƒ Beurteilung
© by PRODYNA AG 2007 – www.prodyna.de
3
Konzept
ƒ Motivation
ƒ Ansatz
ƒ Prinzipien
ƒ Komponenten
ƒ Release Überblick
ƒ Ein „Hello World“
© by PRODYNA AG 2007 – www.prodyna.de
4
Konzept / Motivation
„Developing ajaxified Web Applications with Ease“
© by PRODYNA AG 2007 – www.prodyna.de
5
Konzept / Ansatz
ƒ Entwicklung hauptsächlich in Java
ƒ Kompilierung von
Java
DHTML (HTML, CSS und JavaScript)
© by PRODYNA AG 2007 – www.prodyna.de
6
Konzept / Prinzipien
ƒ Everything just works
ƒ Keep the base simple
ƒ Use as much as you like
ƒ Java for Java developers
ƒ Stay close to the IDE
ƒ Open Source (Apache 2 Lizenz)
© by PRODYNA AG 2007 – www.prodyna.de
7
Konzept / Komponenten
ƒ UI - Bibliothek
ƒ Java AJAX Support
ƒ Java-to-JavaScript Compiler
ƒ JRE Emulation 1.4.2 (java.lang, java.util)
ƒ Language Support < Java 5
ƒ Hosted Mode Shell
© by PRODYNA AG 2007 – www.prodyna.de
8
Konzept / Komponenten
ƒ JSNI (JavaScript Native Interface)
ƒ XML Support / JSON Support
ƒ JUnit Integration
ƒ I18n Support
ƒ Browser History Navigation
ƒ Rich Text Format Unterstützung
© by PRODYNA AG 2007 – www.prodyna.de
9
Konzept / Release Übersicht
ƒ Version 1.0 am 17. Mai 2006
ƒ Version 1.4 aktuell seit Mai 2007
ƒ Version 1.5 (Java 5 Support, drag & drop)
© by PRODYNA AG 2007 – www.prodyna.de
10
Konzept / Ein „Hello World“
Live Coding…
© by PRODYNA AG 2007 – www.prodyna.de
11
Roundtrip
ƒ Modul System
ƒ Widgets & Panels
ƒ Internationalisierung
ƒ AJAX im GWT
ƒ JSNI
© by PRODYNA AG 2007 – www.prodyna.de
12
Roundtrip / Modul System
ƒ GWT Applikation bestehen aus „Modulen“
ƒ 1 minimales Modul enthält
ƒ 1 Modul-Deskriptor
ƒ 1 „Client“ Sub-Package mit Client Code
ƒ 1 „Public“ Sub-Package mit statischen Web Content
ƒ Module können von Module erben
© by PRODYNA AG 2007 – www.prodyna.de
13
Roundtrip / Widgets & Panels
ƒ Java-Klassenbibliothek zur Abbildung von User Interfaces
ƒ Oberflächenelemente mit eine Java-Klasse als Widget abgebildet
ƒ Widgets nutzen das Listener-Pattern um über Events informiert zu
werden
ƒ Widgets werden zur Strukturierung in Panels abgelegt
ƒ Styling erfolgt über CSS
© by PRODYNA AG 2007 – www.prodyna.de
14
Roundtrip / Widgets & Panels
ƒ Rootpanel: Absolute Positionierung, Grundpanel
ƒ Cellpanel: Abstrakte Basisklasse für:
DockPanel
© by PRODYNA AG 2007 – www.prodyna.de
HorizontalPanel
VerticalPanel
15
Roundtrip / Widgets & Panels
FlowPanel
© by PRODYNA AG 2007 – www.prodyna.de
TabPanel
StackPanel
16
Roundtrip / Widgets & Panels
PopupPanel
DialogBox
Other
HTMLPanel
AbsolutePanel
SimplePanel
ScrollPanel
...
© by PRODYNA AG 2007 – www.prodyna.de
17
Roundtrip / Widgets & Panels
Hyperlink
RichTextArea
© by PRODYNA AG 2007 – www.prodyna.de
ListBox
Table
SuggestBox
18
Roundtrip / Widgets & Panels
MenuBar
© by PRODYNA AG 2007 – www.prodyna.de
TabBar
Tree
19
Roundtrip / Internationalisierung
ƒ Eingebauter i18n Support
ƒ Statisch: Localizable, Konstanten, Messages
ƒ Dediziertes Skript
ƒ Dynamisch: Dictionary über JavaScript Objekt
© by PRODYNA AG 2007 – www.prodyna.de
20
Roundtrip / AJAX im GWT
© by PRODYNA AG 2007 – www.prodyna.de
21
Roundtrip / AJAX im GWT
ƒ AJAX wird über ein RPC-Idiom abgebildet
ƒ Asynchrone Kommunikation Client Æ Server
ƒ Client benutzt CallBack-Implementierung zur Reaktion auf Server
Calls
ƒ Server-Seite ist Servlet-basiert
ƒ Proprietäres Kommunikationsprotokoll und Format
© by PRODYNA AG 2007 – www.prodyna.de
22
Roundtrip / AJAX im GWT
ƒ Schnittstellendefinition:
© by PRODYNA AG 2007 – www.prodyna.de
23
Roundtrip / AJAX im GWT
ƒ Implementierung auf der Server-Seite
© by PRODYNA AG 2007 – www.prodyna.de
24
Roundtrip / AJAX im GWT
ƒ Registrierung im Deployment-Deskriptor
© by PRODYNA AG 2007 – www.prodyna.de
25
Roundtrip / AJAX im GWT
ƒ Ableitung eines asynchronen Client-Interface
© by PRODYNA AG 2007 – www.prodyna.de
26
Roundtrip / AJAX im GWT
ƒ Beschaffung eines Server-Proxys über GWT-Factory
© by PRODYNA AG 2007 – www.prodyna.de
27
Roundtrip / AJAX im GWT
ƒ Making the Call
© by PRODYNA AG 2007 – www.prodyna.de
28
Roundtrip / AJAX im GWT
Was kann serialisiert werden???
ƒ Primitive Typen und deren Wrapper
ƒ java.lang.String und java.util.Date
ƒ Arrays von serialisierbaren Typen
ƒ Viele Typen der Collection API (annotiert über JavaDoc)
ƒ User-definierte Typen
© by PRODYNA AG 2007 – www.prodyna.de
29
Roundtrip / AJAX im GWT
Was ist ein User-definierter Typ?
ƒ Implementiert oder erbt von eine Ableitung von IsSerializable
oder Serializable
ƒ Alle nicht transienten Member sind im Sinne des GWT
serialisierbar
© by PRODYNA AG 2007 – www.prodyna.de
30
Roundtrip / JSNI
© by PRODYNA AG 2007 – www.prodyna.de
31
Anbindung Spring
© by PRODYNA AG 2007 – www.prodyna.de
32
Anbindung Spring
Anbindung über
ƒ GWT Spring Controller aus GWT Widget Library (3rd Party Library)
ƒ Spring Dispatcher Servlet
© by PRODYNA AG 2007 – www.prodyna.de
33
Anbindung Spring
Client-Seite:
© by PRODYNA AG 2007 – www.prodyna.de
34
Anbindung Spring
Server-Seite:
(Bekanntmachung der Spring Bean in Spring Config)
© by PRODYNA AG 2007 – www.prodyna.de
35
Anbindung Spring
Server-Seite:
(Setzen des Endpoints im Client)
(Bekanntmachung des Spring Dispatcher Servlet in web.xml)
© by PRODYNA AG 2007 – www.prodyna.de
36
Anbindung Spring
Server-Seite:
(Setzen des Endpoints im Client)
(Zuordnung Path Info zu Spring Bean in handler-servlet.xml)
© by PRODYNA AG 2007 – www.prodyna.de
37
Beurteilung
ƒ Nachteile
ƒ Vorteile
ƒ Alternativen
ƒ Empfehlung
© by PRODYNA AG 2007 – www.prodyna.de
38
Beurteilung / Nachteile
ƒ „Everything just works?“
ƒ Google doen‘t eat its own Dog Food
ƒ Noch kein Support für Java 5
ƒ No Build-In Support für MVC
ƒ Aufwendige Integration von eigenen Komponenten
© by PRODYNA AG 2007 – www.prodyna.de
39
Beurteilung / Vorteile
ƒ Entwicklung in der Domäne „Java“
ƒ Out-of-the-box: industrielle Software Entwicklung
ƒ Debugging
ƒ Unit Testing
ƒ Versionskontrolle
ƒ Code Refactoring
ƒ Compile-Zeit vs. Laufzeit Fehlerfindung
ƒ…
© by PRODYNA AG 2007 – www.prodyna.de
40
Beurteilung / Vorteile
ƒ Reichhaltige Entwicklungsbibliothek (UI, AJAX, …)
ƒ Leichter Zugang für Java Desktop Entwickler
ƒ Klare Trennung: statischer Web Inhalte / dynamische Oberfläche /
Server-seitiger Code
ƒ Open Source
ƒ Google Know How (Caching, Code Optimierungen)
ƒ Große Community
ƒ Gute Dokumentation
© by PRODYNA AG 2007 – www.prodyna.de
41
Beurteilung / Alternativen
ƒ Klassische Presentation Layer Frameworks
ƒ
Actionbasiert: Apache Struts² , Spring MVC
ƒ
Komponentenbasiert:
ƒ
JavaServer Faces:
(Sun Ref. Impl, Tomahawk, Tobago, Trinidad, ICEfaces, RCFaces, Netadvantage, WebGalileoFaces,
QuipuKit, BluePrints, Woodstock, JBossRichFaces, Bindows, Ajax4jsf, …)
ƒ
JavaServer Faces & Struts², Apache Wicket, Apache Tapestry, Apache Cocoon, Velocity, Turbine,
JetSpeed
ƒ
…
ƒ RIA Frameworks
ƒ
Java: RAP, Echo2, Adobe Flex/Open Laszlo, General Interface, Zk (XUL-basiert)
ƒ
.NET: Volta
ƒ
Ruby: Rails
ƒ
…
…
© by PRODYNA AG 2007 – www.prodyna.de
42
Beurteilung / Empfehlung für den Einsatz
ƒ Klassische (formular-basierte) Web Applikationen:
JavaServer Faces
ƒ Desktop-like Web Applikation
Google Web Toolkit
© by PRODYNA AG 2007 – www.prodyna.de
43
Vielen Dank!
© by PRODYNA AG 2007 – www.prodyna.de
44
Herunterladen