Zur Zeit bin ich in dem Bereich GWT und GXT aktiv und habe mich daher auf die Suche nach geeigneter Literatur gemacht. Natürlich findet man im Netz einige Seiten zu den Themen, aber gelegentlich ist es schon gut Information in einem gebundenen Zustand zur Hand zu haben. Bei der Suche habe ich 3 Bücher gefunden: Ext GWT 2.0: Beginner’s Guide, Developing with ExtGWT: Enterprise RIA Development und das im Titel benannte ExtGWT Rich Internet Application Cookbook. Der Beginnersguide war vom Thema her wirklich sehr für Anfänger gedacht und war bei weiterführenden Themen und Fragen nicht sehr hilfreich. Developing with ExtGWT ist von 2008, das hat mich ziemlich abgeschreckt, da vor allem bei GWT die Entwicklung in letzter Zeit ganz schöne Fortschritte gemacht hat. Diese können eigentlich nicht berücksichtigt sein. Also bleibt noch das Cookbook. Und das möchte ich nun etwas vorstellen.
Das ExtGWT Rich Internet Application Cookbook basiert auf GWT 2.4 und ExtGWT 2.2.5 und ist damit von der Aktualität etwas durchwachsen. GWT 2.5 ist erst vor kurzem veröffentlicht worden und somit geht es für ein Buch eigentlich nicht aktueller. ExtGWT ist ein etwas anderes Thema. Hier ist die Version 3 bereits verfügbar, die sich mehr an moderne GWT Patterns hält. Im Enterprise Umfeld ist diese Version gerade wegen der API-Anpassung noch nicht angekommen, da ein Umstieg einige Umbauarbeiten mit sich ziehen würde. Es ist von daher anzunehmen, dass ExtGWT 2.2.5 noch etwas Bestand haben wird. Vielleicht bieten die Autoren zu einem späteren Zeitpunkt eine überarbeitete Fassung. Das vorliegende Buch ist vom September 2012, wurde von Odili Charles Opute und Oded Nissan geschrieben und umfasst fast 370 Seiten.
Ein Kochbuch mit Rezepten
Das Buch beinhaltet 80 Rezepte. Jedes Rezept besteht aus einer Einleitung, einem Quellcode-Abschnitt und aus einer Erklärung des Codes. In der Einleitung wird kurz umrissen, worum es in dem Rezept geht. Hier findet man neben dem einführenden Text auch Screenshots und zum Teil Klassendiagramme, die den kommenden Aufbau verdeutlichen. Der Quellcode beschränkt sich auf das notwendigste. Es werden keine Methoden programmiert die vom wesentlichen ablenken. In der Erklärung wird dann ausführlich auf die Zusammenhänge im Code eingegangen. Sollte man mit dem Quellcode nicht auf Anhieb klar kommen, ist der letzte Abschnitt („How it works„) unumgänglich.
Themenbereiche
Die Rezepte sind thematisch sortiert und zu logischen Blöcken zusammengefasst. Somit kann man – wenn man das Buch nicht nur als Nachschlagewerk nutzt – sich einen Themenkomplex genauer anschauen. Da ExtGWT schon sehr oberflächenlastig ist, sind viele der Themen in diesem Bereich angesiedelt. Was unter der Haube passiert wird bei den komplexeren UI-Elementen natürlich auch erklärt. Als Einstieg dient ein Kapitel über Panels und Windows. Im Themenbereich Tabs wird der Umgang mit der Tab-Steuerung erklärt, wie man diese programmatisch manipuliert und auch wie eine einfache Benachrichtigungsfunktion eingebaut werden kann, die den Benutzer auf Tab hinweist, welches sich nicht im seinem Fokus befindet, aber dennoch von seinem Interesse sein kann. Beispielsweise durch eine Änderung der Daten oder ähnliches.
Im Themenkomplex Buttons, Toolbars und Menüs sieht man neben der einfachen Benutzung von Buttons auch, wie man mit Actions arbeiten kann. Insbesondere in größeren Anwendungen ist dies von Vorteil und spart sehr viel Code. Dieses Vorgehensweise ist vor allem aus der Swing Welt bekannt, wird aber – nach meiner Erfahrung – in jedem größeren GWT-Projekt neu erfunden und reimplementiert. Warum also nicht gleich die Boardmittel von GXT nutzen.
Weitere UI-Kapitel beschäftigen sich mit den Formularen, der Tree-Komponente und ihrer Benutzung und der sehr genialen Grid Komponente von GXT. Die Benutzung von Templates wird vorgestellt und es wird eine Datenvisualisierung vorgstellt.
Dabei wird eine Komponente vorgestellt die nicht Bestandteil von GXT ist. Es handelt sich dabei um ein Plugin, das diese Funktionalität zur Verfügung stellt.
Abschließend findet sich noch ein Kapitel zum Thema Drag and Drop, was bei einer modernen Weboberfläche heute nicht mehr fehlen darf und ein Kapitel mit Advanced Tips, wowie eins über Themeing.
Die Advanced Tips sind richtig spannend. Hier wird Persistenz und das MVP Pattern vorgestellt. Daneben gibt es noch einen Abschnitt zu einem Server Push Mechanismus, was bspw bei Chat oder Anwendungen mit Realtime Daten interessant ist. Das Kapitel setzt vor allem auf Fremdbibliotheken wie Hibernate oder eben dem Server Push.
… und es gibt noch mehr
Die Appendices vom ExtGWT Rich Internet Application Cookbook haben es auch in sich. Das Event Handling wird noch kurz vorgestellt, der Umgang mit Exceptions, der unter GWT vor allem in Hinblick auf die Servlet Schicht nicht unbedingt ganz offensichtlich ist. Die Erstellung eigener Icons darf nicht fehlen und das GWT-RPC Konzept wird auf der Ebene vorgestellt, wie es für den Entwickler interessant ist. Und als Abschluß des gesamten Buches gibt es noch den Appendix zu File Uploads. Dort wird auch erklärt wie man den Fortschritt nachverfolgen kann und den Benutzer visuell informiert.
Fazit
Für mich wirkt das Buch durchdacht und ist ein Muss für alle ExtGWT Entwickler, die das Framework nicht schon bis ins kleinste Detail kennen. Leider ist noch die „alte“ Version 2.2.5 von GXT behandelt, aber wie bereits erwähnt ist dies im Enterprise Umfeld nicht unbedingt ein Nachteil. Interessant ist das Angebot von Packt Publishing: Neben der Printausgabe bekommt man auch noch die eBook Version. Und das zu einem recht guten Preis.