Google Web Toolkit (GWT)

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

Empfohlene Dauer

4 Tage, insgesamt 24 Zeitstunden

Inhalte

[LOGO]
  • Einführung in das GWT
    - 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 unter 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
    - 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
    - DatePicker, DateBox
    - Themes standard, chrome and dark
    - VerticalPanel, HorizontalPanel, FlowPanel, AbsolutPanel
    - ScrollPanel, DockPanel, CellPanel, TabPanel, LazyPanel
    - Tabellen, FlexTable
    - Drag-and-Drop
    - Zusammengesetze Widgets, Composite-Klasse
    - Neue Widgets erstellen
    - Widgets im DOM-Baum erstellen und modifizieren
    - Styling von Widgets über CSS, DIV-IDs, Einbinden der CSS-Dateien
  • 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
  • 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 von Jar-Dateien
    - Deferred Binding
    - Statische und dynamische Internationalisierung/Lokalisierung von GWT-Anwendungen
    - Data Binding
    - Benutzerdefinierte Eigenschaften
    - Testen und debuggen, GWT-Logging und log4j
    - Deployment auf Webserver und Dateisystem, WAR-Archive bauen
    - Datei-Upload zum Server
    - Testen von GWT-Anwendungen mit JUnit
    - Deployment und Build-Management mit Ant und Maven
    - GWT-Generatoren, automatische Codegenerierung für Dashboard
    - 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

Voraussetzungen

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

Software

Als Laufzeitumgebung wird standardmäßig Java SE 6 von Sun zusammen mit der Entwicklungsumgebung Eclipse und dem ›Google Plugin for Eclipse‹ zusammen mit dem Google Web Toolkit Version 1.6 eingesetzt. Seit GWT 1.5 bietet das Toolkit sowohl Widget-Animationen und Accessibility-Unterstützung als auch Java 5-Features mit Generics, Annotationen, Aufzählungen sowie den Datentyp long. Des Weiteren unterstützt die JRE-Emulation den StringBuilder und weitere seit Java 5 eingezogenen Datenstrukturen. Mit GWT 1.6 können auch realisierte Schnittstellenmethoden mit @Override annotiert werden, eine Möglichkeit, die Java 6 erlaubt, Java 5 aber verbietet.

Unternehmen

  • Google Inc.

[Addthis] [Google Bookmarks] [Yahoo! Bookmarks] [Delicius] [Mister Wong]

[Nach oben]