ExtJS ist ein hervorragende Lösung, wenn man eine Webanwendung im Stil von Microsoft Office bauen möchte. Gerade die kommende Version 3.0 wird dort noch einen "draufsetzen", da sie einen VisualStudio-artigen GUI-Designer enthalten soll. Ob der im jetzigen Preis enthalten sein wird oder ein Extraprodukt sein wird, weiß ich allerdings nicht.
Ich kann mir vorstellen, dass ExtJS daher für ein UI zur Stammdatenverwaltung sehr gut geeignet ist. Ich würde erwarten, dass Daten tabellarisch per Grid angezeigt werden können, dort sortiert und gefiltert werden und per Ajax nachgeladen werden, sodass man niemals "pagen" muss. Gerade das "grouping"-Feature fände ich sehr interessant, um Daten besser zu präsentieren.
Will man nicht nur direkt die Zellen bearbeiten, kann mit dem Forms-Rahmenwerk schicke Dialoge inklusive Tabs und eines Date-Pickers und einfache WYSIWYG-Editors haben, die Valdierung der Daten unterstützen.
Zusammen kann man auch Master-Detail-Darstellungen machen, die neben oder unter einer tabellarischen Darstellung ein Formular anzeigen.
Mit Hilfe der Panels kann man doch außerdem so einen Windows-artigen Desktop mit einer Taskbar bauen, wo man zwischen verschiedenen Fenstern hin und her schalten kann. In jedem Fall könnte man schließbare Tabs wie in einem Browser haben.
Möglichkeiten gibt es also viele.
Ob ich's verwenden würde hängt ein bisschen davon ab, ob ich bereit wäre, die $300 für ExtJS in den jeweiligen Projekt zu zahlen. Das ist zwar jetzt nicht so viel (und ExtJS ist warhscheinlich das beste, was man bekommen kann), aber dennoch ein möglicher Hinderungsgrund. Die GPL-Version zu benutzen wäre u.U. eine Alternative für Hobby-Projekte.
Technisch würde ich mir einen ähnlichen Ansatz wie bei Django vorstellen: Ich beschreibe mit Python-Klassen, wie ich die Objekte einer Tabelle darstellen möchte. Es muss sinnvolle Vorgaben geben, die ich dann anpassen kann. Ich würde mir wünschen, dass wenn man schon ExtJS benutzt, es auch bis zum Anschlag ausreizt und nicht versucht, von dem JavaScript-Rahmenwerk zu abstrahieren. Große Dosen Ajax wäre IMHO Pflicht.
Ich würde mir wünschen, dass ich die Einstiegsseite mit einer gruppierten Liste von Tabellen einfacher als bei Django strukturieren kann, vielleicht so:
Code: Alles auswählen
Site(title="ACME Inc",
Tab(title="Stammdaten",
Group(title="Anwender", collapsed=True,
Table(User, name="Mitarbeiter|Mitarbeiter", meta=(display_count, display_latest)),
...
womit ich definiere, dass mein Admin UI "ACME Inc" heißen soll, mindestens einen Tab namens "Stammdaten" hat auf dessen Seite mindestens eine Gruppe namens "Anwender" angezeigt wird (die standardmäßig zusammengeklappt sein könnte) und wo (ein Link für) die Tabelle für "User" dargestellt wird, die Mitarbeiter heißen soll und wo in einer zweiten Zeile (in kleiner Schrift) noch Informationen über die Tabelle angezeigt werden, indem die beiden angeführten Funktionen aufgerufen werden.
Einzelne Tabellen werden als Grid - optional bearbeitbar - dargestellt, wobei man angeben kann, was wie validiert werden soll. Gleichzeitig kann man immer Suchen und Filtern.
Ein Datensatz wird als Formular angezeigt, bei dem ich wählen kann, welche Felder wie gruppiert (auch nebeneinander) in welcher Reihenfolge angezeigt werden. Pro Feld gibt es ein zugeordnetes Widget, was ich bei Bedarf überschreiben kann.
Das ganze muss so erweiterbar sein, dass ich irgendwo noch Knöpfe oder Links für weitere Funktionen einblenden kann.
Idealerweise fragt das Rahmenwerk auch zusammen mit den aktuell angemeldenten User vor dem Anzeigen noch mal nach, ob ich die Menge der Felder vielleicht filtern möchte, um bestimmten Anwendern nur bestimmte Teilmengen der Felder anzuzeigen.
Stefan