Google Web Toolkit (GWT)
Empfohlene Schulungsdauer: 4 Tage, insgesamt 32 Unterrichtsstunden à 45 Minuten
Kursziele
Mit dem ›Google Web Toolkit‹ (GWT) kam 2006 ein entwicklerfreundliches und freies Framework zur Programmierung von Web 2.0 Ajax-Applikationen auf den Markt. Eine Besonderheit ist der Java-zu-JavaScript-Compiler, der Java-Entwicklern das Arbeiten in ihrer gewohnten Entwicklungsumgebung ermöglicht. Der GWT-Compiler übersetzt den Java-Code in eine HTML-Seite mit CSS und JavaScript-Funktionen. Die Seminarteilnehmer lernen praxisnah, Web 2.0 Ajax-Applikationen mit dem Google Web Toolkit zu erstellen, welche Entwicklungs-Tools geboten und wie effektive mehrschichtige GWT-Anwendungen entworfen werden. Das Seminar führt ebenfalls den Debug-Prozess und zusätzliche freie und kommerzielle Komponenten vor.
Zielgruppe
Software-EntwicklerKursvoraussetzungen
Der Kurs ›Java für Fortgeschrittene‹ oder ›Java für Umsteiger‹.Seminarinhalte
![[LOGO]](../../images/seminare/logos/gwt.png)
Einführung in das Google Web Toolkit
- Ajax und Web 2.0-Anwendungen, ›Rich Internet Anwendungen‹ (RIA)
- Dashboard Demo-Applikation
- Download und Installation von GWT, GWT-Lizenz
- Browser-Unterstütztung
- Entwicklungsumgebung, GWT-Projekte mit Eclipse, NetBeans IDE, IntelliJ IDEA
- GWT Designer, Gui-Builder als WYSIWYG-Tool
- Projektstruktur einer GWT-Anwendung
- Client- und Servercode Unterscheidung
- Erste kleine Anwendung, Entwicklungszyklus
-RootPanel,EntryPoint,onModuleLoad()
- GWT-Compiler: Wie GWT Java in JavaScript compiliert
- Hosted-Modus (GWT-Emulator) und Web-Modus
- GWT 2.0: OOPHM (Out Of Process Hosted Mode)
- JRE-Emulation und GWT-Bibliothek
- GWT im Vergleich zu Swing, JSF, Ruby on Rails, Echo2
GWT-Widgets und Ereignisse
- Standard-Widgets des GWT:Label,Button,TextBox,HyperLink,Tree, ...
- Bestehende HTML-Elemente wie<input type="text" />in GWT-Widgets umwandeln
- Ereignisbehandlung: Listener und Handler
-onBrowserEvent(), Browser-Standardereignisse,KeyboardListenerAdapter
- Bilder:Image-Widget, Prefetching
-RichTextAreaundImageBundle, Client-Bundle aus GWT 2.0
-DatePicker,DateBox
- Themes standard, chrome and dark
- GWT Quirks- und Standard-Modus
-VerticalPanel,HorizontalPanel,FlowPanel,AbsolutPanel
-ScrollPanel,DockPanel,CellPanel,TabPanel,LazyPanel
- Tabellen,Grid,FlexTable
- Drag-and-Drop
- Zusammengesetze und neue Widgets erstellen,Composite-Klasse
- Widgets im DOM-Baum erstellen und modifizieren
- Styling von Widgets über CSS, DIV-IDs, Einbinden der CSS-Dateien
- UIBinder aus GWT 2.0, Data-Binding
- MVP-Architektur
Remote Procedure Call (RPC) mit GWT
- GWT in der Mehrschichten-Architektur
- RPC-Konzepte zur (a)synchronen Kommunikation
- Schnittstellen und Klassen des GWT-RPC
-RemoteService,onSuccess(),onFailure(),AsyncCallback
- Schnittstelle deklarieren und Service implementieren
- Fassaden zur Vereinfachung des GWT-RPC-Aufrufs
- GWT-serialisierbare Objekte, Collections
-IsSerializable,Serializable, eigene Serialisierer
- RPC-Servlet konfigurieren
- Alternativen zu GWT-RPC: JSON RPC für GWT
Ajax, HTML-Formulare und JSON
- Abfragen und HTTP-Aufrufe mit demRequestBuilder
- HTTP-Methoden
- XML-Dateien laden
-FormPanel, PayPal-Anbindung als Beispiel
- Formularelemente
- JSON-Dateiformat, JSON Mashups, Daten von fremden Webseiten laden
-JSONParser,JSONValue,JSONObject, Arrays
Java Script Native Interface (JSNI) in GWT
- JavaScript und GWT Kommminikation
- JSNI-Syntax,/*-{/}-*/
- Aus JavaScript Java-Eigenschaften nutzen
- GWT JavaScriptObject (JSO)
- Ausnahmen,JavaScriptException
- JavaScript-Bibliotheken einbinden und kapseln
- JavaScript HTML-Editor FCKeditor als Beispiel einbetten
- Dojo-Integration in GWT
Anwendungen modularisieren
- Modulkonzept von GWT
- Modul-XML, Aufbau der Standard-Projektstruktur
- Module laden, neue Module einbinden, Module umbenennen
- Pfade definieren
- Eigene Module bauen
- Java-Paket-Struktur
- Code Splitting (runAsynch) in GWT 2.0
Ergänzende GWT-Widgets und Widget-Sammlungen
- GWT-Ext (LGPL v3) und Ext GWT (kommerziell und GPL v3)
- Autovervollständigung, editierbare Tabellen und Bäume, Menüs, Grids, Dialoge
- GWT-Ext 2.0 Charts
- Google Maps GWT API
- SmartGWT (GWT API's for SmartClient)
- GWT Widget Library
- GWT Component Library
Weitere GWT-Eigenschaften
- Browserverlauf, Umgang mit Browser-Zurück, lesezeichenfreundliche Seiten
- URL-Parameter:page.html&company=tutego
- Sitzugsverwaltung, Cookies
- Schutz vor Cross-Site Scripting (XSS), XSRF-Schutz
- GWT und Java-Applets und Flash, Kommunikation zwischen GWT und Java Applets
- Browserunterschiede berücksichtigen
- Caching/Versionierung
- Deferred Binding
- Statische und dynamische Internationalisierung/Lokalisierung von GWT-Anwendungen
- Benutzerdefinierte Eigenschaften
- Deployment und Build-Management mit Ant und Maven
- Testen und debuggen von GWT-Anwendungen, JUnit, GWT-Logging und log4j
- Deployment auf Webserver und Dateisystem, WAR-Archive bauen
- Datei-Upload zum Server
- GWT-Generatoren, automatische Codegenerierung für Dashboard
- Speed Tracer
- Browserunterschiede berücksichtigen
- Lademechanismus von GWT, Bootstrapping
- Performance-Optimierung: Caching, Image-Bundles, Lazy-loading, Prefetching
- GWT-Applikationen suchmaschinenoptimiert gestalten, GWT-SEO
- GWT und Google Gears
- GWT und Spring im Backend, GWT-Spring-Integration
- GWT und Hibernate, DTO-Layer entwerfen
Eingesetze Seminar-Software
Als Laufzeitumgebung wird standardmäßig Java SE 6 von Sun eingesetzt. Die Entwicklungsumgebung bildet Eclipse, das ›Google Plugin for Eclipse‹ und GWT 2.4.
Schlagwörter
Unternehmen
![Zu einem Bookmark-Anbieter hinzufügen [Addthis]](../../images/bookmarks/addthis.png)
![Zu Google Bookmarks hinzufügen [Google Bookmarks]](../../images/bookmarks/google.png)
![Zu Yahoo! Bookmarks hinzufügen [Yahoo! Bookmarks]](../../images/bookmarks/yahoo.png)
![Zu Delicius hinzufügen [Delicius]](../../images/bookmarks/delicious.png)
![Zu Mister Wong hinzufügen [Mister Wong]](../../images/bookmarks/misterwong.png)