Diese basieren auf meinen persönlichen Erfahrungen mit den von Ihnen erwähnten Frameworks. Also ja, es ist ein bisschen voreingenommen. Wie andere immer wieder gesagt haben, definieren Sie Ihre Anforderungen und welche Ihrer Meinung nach Ihren Anforderungen entspricht, basierend auf dem, was die Leute hier vorgeschlagen haben.
Dies ist ausschließlich eine Frage der Meinung. Du wirst keine definitive Antwort von jemandem bekommen, da jeder, der antwortet, den einen oder den anderen haben wird, den er persönlich bevorzugt.
Probieren Sie jede einzelne lange genug aus, um zu entscheiden, welche für Ihre Zwecke (oder Ihres Teams) am besten geeignet ist.
Davon abgesehen, bevorzuge ich GWT. Andere werden mir immer widersprechen.
Gründe, warum ich GWT mag:
UiBinder
können Sie Ihre Benutzeroberfläche mit einer deklarativen HTML-ähnlichen Syntax schreiben. Sie sind nicht fest, Swing-like UI schreiben, wenn Sie nicht möchten Dinge, die GWT für Sie nicht richtig machen:
Ext GWT hat für mein Projekt gut funktioniert. Die Premium-Unterstützung war gut.
Das Projekt ist jedoch für den internen Gebrauch vorgesehen, wodurch die Bereitstellung auf einen Browser in einem Betriebssystem beschränkt werden konnte. Es wurden keine Anstrengungen unternommen, das Standard-Erscheinungsbild oder Verhalten von Ext GWT zu ändern.
Die vollständige Entwicklung innerhalb von Java ist ein wichtiger Vorteil, da es hilft, das Projekt bei Hinzufügen von Features handhabbar zu halten.
Ich arbeite gerade an einer Gral / Flex-Hybrid-App, die viel besser funktioniert, als ich erwartet habe. Ich habe mir GWT angeschaut, aber es gab zu der Zeit nicht viele Bücher darüber und es schien die Hebelwirkung von Swing-ähnlichen Programmiertechniken zu betonen, die ich nie gemocht habe. Ich stimme dem Kommentar zu, sie alle auszuprobieren. Führen Sie Hallo App, die sie alle haben und messen Sie, wie schwer oder einfach es zu ändern ist. Auch die Unterstützung von Tools (IDEs, Maven, CI usw.) kann ein wichtiger Faktor sein, um sofort produktiv zu sein.
Wir verwenden Grails + ExtJS hier. Da wir versuchen, eine idiomatische ExtJS-Anwendung zu erstellen, wird Grails nicht vollständig verwendet, obwohl es immer noch sinnvoll ist, Grails anstelle von, sagen wir, JSP für den serverseitigen Teil zu verwenden.
Warum ExtJS: Weil es ein sehr reichhaltiges Toolkit für GUI-ähnliche Web-Anwendungen ist. Unsere Aufgabe ist es, eine alte Motif GUI zu ersetzen, also brauchen wir genau das.
Warum Grails: Weil es die Arbeit einfach und schnell erledigt. Für die Kommunikation mit dem ExtJS-Teil benötigen wir viel JSON, und in Grails ist es so:
%Vor%Und das sind sogar zwei oder drei Zeilen mehr als nötig ...
Leider wird die Antwort rechthaberisch sein, GWT in seiner reinsten Form ist kein Augenschmaus. Davon abgesehen ist ExtJs GXT super hunky dory. Eines der Hauptprobleme, mit denen ich bei sich entwickelnden Frameworks konfrontiert bin, ist, dass sie nicht absolut fehlerfrei sind. Wenn ich mich richtig erinnere, wurde GWT 2.0 mit fehlenden CSS-Styles für einige der neuen Layouts ausgeliefert. Ich versuche, ein Problem in ExtJs / GXT seit den letzten 5 Tagen zu schieβen :(, Frameworks verdecken viele Dinge. Ich werde mit jedem Framework gehen, das absolut robust ist und entsprechende Fehlermeldungen gibt. Ich habe jedoch nicht mit anderen gearbeitet .
Ich würde Dojo empfehlen.
Neben der umfangreichen Infrastruktur ist Dojo 1.6 auch die erste (und einzige) populäre JavaScript-Bibliothek, die erfolgreich mit dem Erweiterten Modus des Closure Compilers verwendet werden kann - mit all den Vorteilen in Bezug auf Größe, Leistung und Verschleierung - - Anders als die Google-eigene Closure-Bibliothek.
Mit anderen Worten, ein Programm, das Dojo verwendet, kann zu 100% verschleiert werden - sogar die Bibliothek selbst.
Kompilierter Code hat genau dasselbe Verhalten wie reiner Textcode, nur dass er viel kleiner ist (durchschnittlich 25% über den Minifiern), viel schneller läuft (besonders auf mobilen Geräten) und fast unmöglich, selbst nach dem Reverse-Engineering Durch einen Beautifier gehen, weil die gesamte Codebasis (einschließlich der Bibliothek) verschleiert ist.
Code, der nur "minimiert" ist (z. B. YUI-Komprimierung, Uglify), kann nach dem Durchlaufen einer Verschönerungsvorrichtung leicht rückentwickelt werden.
ExtJs eignet sich hervorragend zum Erstellen komplexer Webanwendungen. Die API bietet alles, was Sie sich in einer Webanwendung vorstellen können, und es ist wirklich einfach, jede Komponente nach einiger Zeit zu erweitern.
Sie können es an jedes Backend anschließen (wir benutzen django oder php) und jede Komponente in verschiedenen Anwendungen wiederverwenden oder erweitern.
Sie brauchen mehrere Monate, um sich damit wohl zu fühlen. IMHO.
Das heißt, die lib ist manchmal ein bisschen zu langsam für einfache wie eine Website (dann können Sie ExtCore verwenden). Aber wenn es um Webapps geht, ist das kein Problem.
Ich bin kein Java-Typ, also war GWT für mich keine Option: /
hoffe das hilft
Tags und Links gwt grails dojo sproutcore