Will ich eigentlich RIA mit Ext GWT?
5 Kommentar(e). Veröffentlicht von Christian Ullenboom am Samstag, Juni 06, 2009.Nach dem ich nun eine Woche eine Anwendung mit Ext GWT (GXT) zusammengebaut habe, kommen mir Zweifel, ob Ext GWT überhaupt das richtige für meinen Anwendungsfall ist. Einige Fragen in dem Zusammenhang:
Ist Ext GWT 2.0 M2 gut gewählt?
Ext GWT 2 gibt es noch gar nicht lange (http://extjs.com/blog/2009/05/20/ext-gwt-20-milestone-2-released/), neues M2 Release also vor 2 Wochen, und die Komponenten sind grundsätzlich toll. Auf der Demo Seite http://extjs.com/examples-dev/explorer.html#overview kann man sich das anschauen.
Probleme: Ext GWT 2.0 hat in meinen Augen sehr vielen Änderungen in der API. Quellcode für Ext GWT 1.0 findet man im Netz, doch viele Beispiele lassen sich nicht ohne weiteres auf die 2er Version übertragen. Wer migrieren will/muss wird noch seinen Spaß bekommen. Einige Beispiele laufen in der Demo nicht (http://extjs.com/examples-dev/explorer.html#grouping), bei anderen fehlt der Quellcode im Demo. Da muss man dann die Quellen laden.
Laut Ankündigung müsste GXT schon längst fertig sein.
Was passt mir an Ext GWT nicht?
- Die Dokumentation. Einfache Beispiele zu finden kostet viel Zeit. Es fehlt so etwas wie ein Java-Almanac für Ext GWT. Aus komplexen Szenarien kann man sich einfache Beispiele ableiten, von dort diese auf seinen Anwendungsfall übertragen. Selbst die Beispiele aus dem ShowCase könnten einfacher sein, denn der ShowCase nutzt interne “Demo-Datengeber-Klassen”. Hier wären in meinen Augen einfachere Beispiele gut gewesen, die wirklich eigenständig sind um schnell die wichtigsten Schnittstellen ablesen zu können.
- Compiliere ich meine Programme, so lassen sich im Browser plötzlich keine Textfelder mehr selektieren und den Cursor sieht man nicht.
- Das Layout-Handing. Da die Ext GWT Anwendungen auf eine “Bildschirmseite” kommen, und weniger auf einem beliebig langen HTML-Dokument, gibt es Probleme mit den Höhen. Manches mal sind die Elemente in einem Scroll-Container zu klein, dann zu groß. Ich habe viel Zeit damit verbracht, große Tabellen in den richtigen Größen auf den Container zu setzen.
- Während das Orginal-GWT viele eher den typischen Web-Charakter hat, basiert Ext GWT auf dem Applikationsgedanken: (Popup-)Menüs in Web-Applikationen? Hm …
- Anpassungen des Aussehens sind eine Qual. Die CSS-Datei gxt-all.css ist 6478 Zeilen lang, gxt-gray.css noch mal 443! Wer viel Zeit hat, kann einmal versuchen, den Font 2 Pixel größer zu setzen. Dazu müssen natürlich auch die Icons passen. Strg++ geht nicht einfach so.
- Es “erfindet” GXT eigentlich alles neu: Widgets, Container, Layout-Manager, Grafik-Einbindung, …. Besonders blöd ist das bei den Grafiken, wo Google mit Proxies einen schönen Ansatz fährt.
- Es gibt keinen Gui-Builder, für GWT aber schon.
War Ext GWT eine gute Wahl, oder hätte es doch SmartGWT sein sollen?
Das weiß ich nicht, denn mit SmartGWT habe ich nur einfache Beispiele programmiert. Ext GWT hat aber den gleichen RIA-Ansatz wie SmartGWT, und unterscheidet sich nicht großartig im Ansatz. Die GXT-Komponenten sehen auf jeden Fall super aus. Daher hat mich GXT ja auch so angezogen. Wer hübscher ist gewinnt :) Die Komponenten sind fancy und meine Lieblinge sind http://extjs.com/examples-dev/explorer.html#advancedcharts (cool), http://extjs.com/examples-dev/explorer.html#gridplugins, http://extjs.com/examples-dev/explorer.html#grouping, http://extjs.com/examples-dev/explorer.html#filtertree, http://extjs.com/examples-dev/explorer.html#gridtogrid.
Ist ein RIA-Framework wie GXT immer gut?
Das ist eigentlich die zentrale Frage.
- Die Standard-Komponenten von GWT sind etwas “einfach”. Natürlich nutzt GXT das GWT als Infrastruktur, aber hat sich in meinen Augen weit davon entfernt.
- GXT versucht, alle Desktop-Komponenten in den Browser zu bekommen. Und so bekommen wir immer mehr und mehr tolle Komponenten. Das hat aber seinen Preis! Der generierte JavaScript-Code wird schnell astronomisch. Und die Anwendungen sehen eben nicht mehr so aus wie Webseiten. Das ist mal gewollt, mal nicht gewollt. Ein richtig und falsch gibt es nicht! Wer aber vollständige Applikationen im Web-Schreiben möchte, der bekommt mit GXT ein gutes Framework. Alles ist vorbereitet und das Look-and-Feel konsistent.
- Änderungen des Aussehens sind aufwändig. Wenn man also HTML/CSS sehen und damit designen möchte, ist mit GXT nicht optimal bedient. (Als nächstes teste ich http://code.google.com/p/google-web-toolkit-incubator/wiki/UiBinder --- wenn der denn mal im Trunk ist…) Soll ein (echte) Webdesigner eine GXT-Anwendung skinnen, wird der sicherlich nicht glücklich werden. Es ist eben nicht Design first.
Labels: GWT, Web Frameworks

Hi, interessante Beobachtungen. Ich wechsle bald von Gwt-Ext auf GXT und ich denke, dass viele der probleme die du aufgezählt hast mit dem "Milestone"-Charakter zusammenhängen.
Meine Strategie ist es nicht alles über GXT Komponenten zu machen, sondern nur die aktiven Inhalte, dadurch wird der "Web-Charakter" erhalten. Ich hab also eine Navigation, die aussieht wie auf eine normalen Website, die Hyperlinks darin benutzen das GWT History Management und das GXT MVC Framework um einen "Screen-Flow" zu realisieren. Bisher lief das ganz gut. Wenn jetzt noch GWT.runAsync und OOPHM in GWT 2.0 kommt (Q3 09), dann lässt sich der monolithische Compile-Output auch leichter verkleinern (Google Wave hat es allein dadurch von 1 MB auf 400 KB geschafft, mittlerweile anscheinend bei 200 KB oder sowas in der Richtung).
Was anpassen des UIs anpasst, dafür suche ich meist mit Firebug die CSS-Klasse heraus, die den Hintergrund/etc definiert und überschreibe das in meiner CSS Datei, die nach gxt-all.css eingebunden ist. Dadurch ist das schön voneinander getrennt.
Leider gibt es für NetBeans noch keine GUI-Builder-Integration von GWT mit Matisse.
Und ganz allgemein habe ich derzeit noch ein Problem damit, mich wirklich für ein Web-Framework zu entscheiden. Überall scheint es aus meiner Sicht grobe Störfaktoren zu geben, sei es der fehlende GUI-Builder, zu viel XML-Frickelei oder zu viele Abhängigkeiten.
Bin ich da eigentlich wirklich alleine mit diesen Sorgen?
Wenigstens tröstend, daß Du Dir mit dem ein oder anderen Toolkit auch schwer tust.
GUI-Builder? Nein danke. Ich hab mit Matisse ausreichend Zeit verloren.
Also bei mir ging früher mindestens 80 % der Zeit in GUI-Design und GUI-Programmierung auf. Ich verwende jetzt seit über 15 Jahren GUI-Builder - die gab es sogar, als ich unter MS DOS entwickelt habe.
Ich kehre doch jetzt nicht in die Steinzeit zurück!
@1: Anonym
leider habe ich keine informationen gefunden wie schwierig der umstief von gwt-ext auf gxt ist.
da wären erfahrungen sehr interessant. leider wird im gxt forum bei extjs.com überhaupt nicht auf meine migrationsfrage eingegangen. schade.