GWT ftw
Also eigentlich hatte ich schon einen ziemlich langen Artikel über GWT in einem aktuellen Projekt eingetippert als mir aufgefallen ist, dass das viel zu speziell und vor allem viel zu sehr im Detail war um irgendjemanden zu interessieren. Daher hier einfach nur eine kurze Zusammenfassung wie ich GWT nutze und mit welchen anderen Frameworks ich noch arbeite.
Für die, die keinen Plan haben wovon ich rede, GWT ist ein Framework von Google das es ermöglicht Javascript und AJAX basierte Webanwendungen in Java zu bauen und zu kompilieren. War das richtig formuliert? Also nochmal, man baut die Anwendung in Java, drückt auf kompilieren und das Teil spuckt eine Javascript basierte Webanwendung aus.
Anfangs habe ich dazu gwt-presenter benutzt, ein kleines Framwork das einen dabei untersützt seine Anwendung nach dem MVP Muster zu strukturieren, wie von Ray Ryan auf der Google IO 2009 vorgeschlagen, allerdings hab ich inzwischen meine eigene Implementierung weil es gwt-presenter für meinen Anwendungsfall noch an ein paar Sachen fehlt. Im Speziellen die Lösung wie mit der History, bzw dem Browser Back Button umgegangen wird gefällt mir da nicht so wirklich. (Problem: Ein Presenter muss bereits existieren damit ich ihn per URL aufrufen kann. Ich kann ihn nicht bei Bedarf erzeugen, wenn ein URL Aufruf kommt) Allerdings wird das bestimmt in zukünftigen Versionen behoben und GWT selbst wird in einer der nächsten Versionen auch ein eigene MVP Implementation haben.
Dazu verwende ich Guice, ein Java Framework, das einem Dependency Injection erleichtert und GIN, eine Erweiterung von Guice, die auch GWT unterstützt. Also für alle Java Entwickler die das noch nicht kennen: Anschauen, lohnt sich.
Für die Serverseite und die Kommunikation zwischen Client und Server benutz ich gwt-dispatch, eine Implementation des Command Patterns für GWT. Ich muss nur meine Commands anlegen, und Handler für die Serverseite schreiben die eine entsprechende Response liefern. Ein Servlet, das die Commands entgegennimmt, und die entsprechenden Handler aufruft bringt gwt-dispatch mit, Erzeugung des Servlets und Registrierung der Handler übernimmt Guice für mich.
Für einige Fälle benutze ich zudem GWTEventService. Diese Erweiterung erlaubt es, Clientseitig Events vom Server abzufangen. Das kann zum Beispiel so ablaufen, dass ich über gwt-dispatch in durch ein Kommando ein Event auslöse und andere Besucher der Seite dieses Event erhalten.
Gehostet wird das ganze dann bei Google App Engine, das heißt ich muss mir erstmal keine Gedanken darüber machen meinen Server entsprechend zu konfigurieren (das ist irgendwie bei Java immer nicht ganz so intuitiv wie bei PHP), und ich profitiere von diversen extra Frameworks (z.B. zur Authentifizierung über Google Accounts oder OpenID). Und es kostet erstmal nichts.
Naja, vielleicht werd ich das demnächst mal genauer ausführen, wenn ich auf Probleme stoße.
Anmerkungen? Ergänzungen? Sachen die ich mir unbedingt noch angucken muss? Wüste Beschimpfungen, dass ich nicht über so geekige Sachen bloggen soll?
Schreibe einen Kommentar
Und was sagst du dazu? Hinterlass einen Kommentar und lass es mich wissen. Achte darauf, dass die Felder, die mit einem * gekennzeichnet sind, alle ausgefüllt werden. Die Email Adresse wird nicht angezeigt, zum spammen werd ich die auch nicht benutzen und weitergeben auch nicht.

Letzte Kommentare
05.07. um 14:26 Uhr
05.07. um 14:25 Uhr
21.06. um 11:09 Uhr
21.06. um 11:07 Uhr
08.06. um 07:20 Uhr