Neben dem Argument der Einfachheit von Wicket (Wicket ist ein einfacheres IMHO) und der Reaktionsfähigkeit von GWT im Client (GWTs clientseitiger Zustand und JavaScript - potenziell komplexer clientseitiger Code) und GWTs größerem Skalierungspotential, was ist das? das Argument für die Verwendung von GWT über Wicket?
Persönlich habe ich eine Menge Wicket-Entwicklung gemacht, aber ich habe mir GWT schon lange angesehen.
Die Vorteile sind im Grunde, dass GWT ein Werkzeug ist, um JavaScript-basierten Client zu erstellen, daher ist es am besten geeignet, wenn Sie einen Javascript-basierten Client wollen.
Wicket zentriert sich auf dem Server, und während es das Einbetten von JavaScript in zustandslose Seiten recht einfach macht, ist die serverseitige Statusbehandlung der natürlichere Ansatz.
Man muss beachten, dass die Architekturen sehr unterschiedlich sind.
Mit GWT wird Ihre Architektur zu einem Client-Server, einem Thick-Client im Browser, der Aufrufe von 'Prozeduren' (Services) an den Server, das Senden und Empfangen von Daten .
Mit Wicket (und anderen serverseitigen Komponenten-Frameworks, wie JSF und Tapestry) ist die Architektur eine "traditionelle" 3-Layer-Architektur, und was gesendet und empfangen wird, sind Seiten oder Fragmente der Seiten, keine reinen Daten.
Sie können zwar beide kombinieren, um sich an die andere Architektur anzupassen, aber es wäre einfach nicht sehr natürlich.
Menschen neigen dazu, sich darauf zu konzentrieren, "was einfacher zu benutzen ist" (was völlig subjektiv ist, abhängig von Ihrem Hintergrund), oder "das ist schöner und hat mehr Komponenten", aber man sollte den architektonischen Unterschied nicht unterschätzen die Vorgehensweise, die Sie ergreifen müssen, um Aspekte wie Sicherheit und Skalierbarkeit zu behandeln.
Ich war in den letzten Monaten an einem GWT-basierten Projekt beteiligt. Ich war, seit Jahren Teil des Wicket-Entwicklungsteams, freue mich auf eine Veränderung und erwartete viel von GWT (was ich immer als ein weiteres großartiges Java-Framework angepriesen habe).
Ehrlich gesagt, ich bin enttäuscht, wenn es um die Zusammenarbeit mit GWT geht. Ich fühle - mein gesamtes Team -, dass die Produktivität stark getroffen wurde. Theoretisch ist GWT großartig. Aber wenn man die Macken und Einschränkungen des Frameworks berücksichtigt, mittelmäßige Fehlerberichte (besonders wenn es um Serialisierungsfehler geht), die langen Kompilierzeiten (irgendwo zwischen 3 - 10 Minuten und unser Projekt ist noch nicht einmal so groß), Die Tatsache, dass Sie schließlich noch alle Browser testen müssen und Tweaks und Workarounds finden müssen, die Tatsache, dass es einen riesigen anfänglichen Download erzeugt (fast ein MB, den wir schrittweise zurücknehmen, aber mit einer Menge der Anstrengung), etc, usw., fühle ich Wicket ist viel einfacher und schneller mit zu arbeiten.
Ich hasse es nicht, mit GWT zu arbeiten. Es ist immer noch viel besser als die meisten Java-Frameworks. Ich habe nur viel mehr davon erwartet, damit zu arbeiten; Ich habe sogar erwartet, dass es vielleicht schöner ist als Wicket. Aber am Ende ist es einfach nicht imho. Hoffentlich wird GWT 2.0 eine Menge Dinge verbessern, und hoffentlich werden einige der Eigenheiten des Eclipse-Plugins bald ausgeräumt werden.
Es ist nicht fair, GWT mit Wicket (oder ähnlich) zu vergleichen, da sie wirklich aus zwei verschiedenen Lagern kommen. Ersteres ist ein Framework zum Erstellen von JavaScript-Frontend-Anwendungen, während Letzteres ein klassisches Java-Webanwendungs-Framework ist.
Die folgenden Punkte sind also nicht so sehr wie GWT vs. Wicket, sondern eine allgemeine Liste, die zusammengestellt wurde, als wir uns entschieden, GWT für eine erweiterte JavaScript / AJAX-Webanwendung zu verwenden:
Meiner Meinung nach ist der größte Vorteil von GWT, dass Sie mit einer Programmiersprache arbeiten können - Java, mit all den Vorteilen, die es bringt.
Zusammen mit CSS bilden sie ein starkes Paar.
Um es anders auszudrücken: Sie können meistens Javascript und HTML vergessen.
Ob das ein Vorteil ist oder nicht, hängt hauptsächlich von Ihren Fähigkeiten und Anforderungen ab. Wir hatten dieselbe Debatte intern und am Ende hat sich ein Team für Wicket und ein anderes GWT entschieden.
Ein Vorteil von Wicket gegenüber GWT wäre, dass Wicket den Fall behandeln kann, in dem Sie einen Fallback für Clients bereitstellen möchten, für die Javascript nicht aktiviert ist. GWT ist komplett für Javascript, Wicket ermöglicht es Ihnen, graziös zu degradieren.
Ich kann mir mehrere Gründe vorstellen, warum GWT für typische Business-Web-Apps eine bessere Wahl ist als Wicket:
Das Genie hinter GWT ist, dass Sie ausschließlich mit Java arbeiten. Sie haben mit RPC eine großartige Arbeit geleistet, die es für den Programmierer fast transparent machte. Viele Male haben Sie das Gefühl, dass Sie eher wie eine Desktop-Anwendung statt einer Anwendung mit einer wirklich definierten Client- und Serverseite programmieren.
Ich bin ein Neuling für GWT, aber nach einigen Studien habe ich herausgefunden, dass GWT für mein neues Projekt der Webanwendung für seinen Client-Fokus "geeignet" ist, was mir das Gefühl gibt, eine Desktop-Anwendung zu programmieren. Heute haben wir einen leistungsstarken Client, der die Anwendung auf Client-Seite ausführen kann. Meine Anwendung kann ausschließlich in Java ausgeführt werden, und die OOP-Java-Klasse bietet die Möglichkeit, ein eigenes, einsatzbereites Framework für unser Team zu erstellen.
Es gibt einige andere Vorteile von Wicket gegenüber GWT, die ich finde.
Tags und Links gwt web-frameworks wicket