GWT zum Mitreden: Informationen zum Google Web Toolkit, die für einen Vortrag zusammengestellt wurden.


Motivation GWT

  • Anwender wollen Webanwendungen die sich anfühlen wie Programme und nicht wie Webseiten
  • Lösung: Ajax
  • Aber: Entwicklung aufwendig und fehleranfällig
  • Inkompatibilitäten (Browser)
  • Back-Button Problem
  • viele JavaScript Libraries
  • kein Tooling für Entwicklung und Debugging
  • Internationalisierung aufwendig

Hier setzt das Google Web Toolkit an

Philosophie Google Web Toolkit

  • Anwendung wird komplett in Java programmiert
  • Entwickler nutzt vertraute Entwicklungsumgebung
  • Ermöglicht OOD/OOP wie in Java (Design Patterns)
  • JavaScript wird aus Javaquellcode generiert
  • Kommunikation zwischen Browser und Server wickelt GWT ab
  • Widgets als wiederverwendbare UI-Komponenten

Entwickeln mit GWT

  • GWT hat Hostedmode für Entwicklung und Webmode für produktiven Einsatz
  • Installation von GWT
  • GWT runterladen auf code.google.com/webtoolkit und entpacken
  • GWT-Kommandos werden mit Hilfe der Shell im GWT-Verzeichnis ausgeführt
  • Konvetion: GWT Teil der Anwendung muss im „client“ Package liegen
  • Voll qualifizierter Package-Name erforderlich
  • Ausführen:
    applicationCreator com.example.client.GWTSample
  • Ergebnis: Programmrahmen erzeugt
  • Starter erzeugt für Hostedmode

Entwickeln mit GWT in Eclipse

  • Es gibt ein spezielles Eclipse Plugin für das Google Webtoolkit, jedoch kann GWT auch ein Eclipse Projekt erzeugen:
  • projectCreator -eclipse GWTSample
    applicationCreator -eclipse GWTSample com.example.client.GWTSample
  • Anschließend in Eclipse als „existing Project“ importieren

Entwickeln mit GWT am Beispiel

public void onModuleLoad() {
//callback der aufgerufen wird. quasi „main“
final Button button = new Button(„Click me“);
//erzeugt neues GWT Button Widget
final Label label = new Label();
//erzeugt GWT Label Widget

button.addClickListener(new ClickListener() {
//dem Button wird ein Clicklistener hinzugefügt
public void onClick(Widget sender) {
//
diese Methode wird bei einem Klick auf den Button aufgerufen
if (label.getText().equals(„“))
label.setText(„Hello World!“);
else
label.setText(„“);
}
});
// Widgets werden in HTML Seite eingefügt
RootPanel.get(„slot1“).add(button);
RootPanel.get(„slot2“).add(label);

Zugehöriger HTML Quellcode:

  • id Attribute slot1 und slot2 werden im Javaquellcode referenziert

<table align=center>
<tr>
<td id=“slot1″></td><td id=“slot2″></td>
</tr>
</table>

Alternativen zu GWT

  • Volta verfolgt gleichen Ansatz wie GWT für Java in Microsoft .net
  • Libraries selber zusammenstellen um Funktionalität von GWT abzudecken
  • UI: YUI, Scriptaculous, Mootools, jQuery
  • RPC: DWR(Java), JSON/XML als Austauschformat
  • Serverseitig: DWR(Java), Zend Framework(PHP)

Fazit zu GWT

  • Google Web Toolkit löst Probleme der modernen Ajax-Entwicklung auf elegante Weise
  • Sinnvoller Einsatz:
  • Bei neuen Projekten ohne Codebase
  • Portierung von bestehenden Java-Anwendungen als Webanwendung
  • Abwägung bei:
  • Umgebung erschwert Einsatz von Java
  • Große bestehende Codebase (Migrationsaufwand)

Links / Weitere Infos zu GWT und Ajax Entwicklung

  • GWT Small Guide http://angel.hurtado.googlepages.com/tutorialgwt2
  • .net Pendant zu GWT http://labs.live.com/volta/
  • DWR http://getahead.org/dwr/
  • Installationsanweisung http://code.google.com/webtoolkit/gettingstarted.html
  • GWT NetBeans Plugin https://gwt4nb.dev.java.net/
  • Wikipedia http://de.wikipedia.org/wiki/Google_Web_Toolkit