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-Entwickler

Kursvoraussetzungen

Der Kurs ›Java für Fortgeschrittene‹ oder ›Java für Umsteiger‹.

Seminarinhalte

[LOGO]
  • 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
    - RichTextArea und ImageBundle, 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 dem RequestBuilder
    - 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
    - Ausblick auf GWT 2.5: Super Dev Mode, Elemental, Fragment Merging, UIBinder-Änderungen

Eingesetzte 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.5.

Unternehmen

5
142