GWT (Google Web Toolkit) zum Mitreden
Allgemein/Internet, Java, Web Entwicklung, Windows/Microsoft Juni 14th, 2008GWT 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
Neue Kommentare