Frage an alle GWT-Gurus da draußen - welche ist die beste GWT-Widgets-Bibliothek da draußen? Und warum?
Liste basierend auf den Antworten:
- Standard
- Sencha GXT
- Smart GWT
- Vaadin
- GWT-Bootstrap
- GwtBootstrap3
- Rakete GWT (inaktiv)
- Tatami (inaktiv)
- ErraiFramework
- GWTMaterialDesign
И наконец- новое поколение основанное на JsInterop :
Antworten:
Binden Sie sich nicht an eine dieser Bibliotheken. Verwenden Sie Vanilla GWT, um die Struktur Ihres Projekts zu erstellen. Verwenden Sie insbesondere das MVP-Muster und einen Ereignisbus. Im Google-Artikel erfahren Sie, wie Sie Ihre Clientanwendung mit GWT am besten gestalten können: Erstellen von MVP-Apps
Anschließend können Sie ein beliebiges Widget dieser Bibliotheken (z. B. eine Tabelle oder eine Combobox, einen Datepicker usw.) verwenden und in Ihr Projekt integrieren. Versuchen Sie, erweiterte Komponenten NUR zu verwenden, wenn Sie keine Möglichkeit sehen, dies mit Vanille-GWT zu tun. Auf diese Weise binden Sie sich nicht an diese Bibliotheken, die IMMER schmerzhaft sind, wenn Sie versuchen, etwas zu tun, das nicht in der Demo-Anwendung erscheint, viele Fehler enthält und deren Unterstützung bestenfalls schlecht ist.
Die Suche nach Widgets sollte in der folgenden Reihenfolge erfolgen:
Vorsichtig mit anderen Bibliotheken, ich habe mit ihnen gearbeitet (und habe immer noch Albträume).
quelle
Kommt darauf an, was du mit "am besten" meinst. Am besten aussehend? Beste API? Am besten für die Erweiterung auf Ihre eigenen Bedürfnisse?
Ich habe beispielsweise nur Tabellenklassen ausgewertet, die in unserer Anwendung verwendet werden sollen. Wir haben GWT-Ext verwendet, aber es hat viele Leistungsprobleme für uns und es ist sehr schwierig, die Größe der Tabellen so zu bestimmen, wie wir sie benötigen. Ich kam GWT-Mosaic sehr nahe, entschied mich aber stattdessen, die Widgets im GWT Incubator auszubauen .
Warum habe ich diese Wahl getroffen? Es scheint, dass zu viele Bibliotheken da draußen ihr eigenes Gepäck haben, mangels eines besseren Wortes. Entweder müssen Sie ganz in ein MVC-Framework eintauchen (das möglicherweise nicht vollständig mit dem Rest Ihrer Codebasis kompatibel ist), oder Sie müssen das neue Layout-System von jemandem übernehmen, oder Sie müssen damit leben, dass Sie es nicht können Debuggen Sie den Code wirklich (weil es nur JSNI-Wrapper sind).
Versteh mich nicht falsch, der GWT-Inkubator ist nicht perfekt ... die Widgets dort sind in gewissem Maße im Fluss. In meinem Fall war dies jedoch die beste Wahl. Es gibt mir gut (aber definitiv nicht perfekt):
Also ... die Antwort (für mich) ist eine Kombination aus:
(Ich sollte hinzufügen: Das "Gepäck", auf das ich mich beziehe, ist nicht unbedingt eine schlechte Sache. Wenn Sie jedoch nur ein oder zwei Widgets möchten, kann dies die Messlatte höher legen, was erforderlich ist, um Ihre Arbeit zu erledigen und wie gut du Anwendung sieht aus.)
quelle
Siehe diese Komponentenbibliothek GWT Bootstrap Dies ist eine Implementierung in gwt von Twitter Bootstrap.
quelle
GWT allein ist eine ziemlich gute Bibliothek.
Ich habe nicht alle genannten verwendet, kann aber Ext GWT empfehlen .
quelle
Ich bevorzuge Vanille GWT. Einige der anderen APIs sehen hübsch aus und ihre Vitrinen zeigen wirklich die Widgets, aber ich finde immer, dass die Leistung nicht die beste ist. Wenn ich Leistung sage, meine ich eher Antwortzeit. Ich hasse es, wenn sich eine Bewerbung träge anfühlt.
quelle
Die meisten der genannten Bibliotheken sind nicht Open Source und noch schlimmer: Sie sind nur Wrapper über einer JavaScript-Bibliothek. Die Stärke von GWT liegt in der Tatsache, dass die Anwendung auf verschiedenen Browsern funktioniert (aufgrund der Codegenerierung speziell für die "großen" Browser). Diese zugrunde liegenden JavaScript-Bibliotheken können viele Probleme verursachen.
Ich stimme jgindin zu. GWT Incubator und GWT Mosaic sind die besten, die es bisher gab.
quelle
Ich sage nicht, dass es "das Beste" ist, aber ich habe in letzter Zeit GWT-Ext bei der Arbeit verwendet. Es hat einige Vor- und Nachteile:
Vorteile:
Nachteile:
quelle
Verwenden Sie KEINE von ihnen! Wenn Sie eine groß angelegte Anwendung entwickeln möchten, sollten Sie die Verwendung eines MVP-Musters in Betracht ziehen. Die beste Implementierung ist das MVP4G- Framework, das die sofortige Aufteilung von GWT-Code unterstützt. Es gibt viele gute Beispiele, mit denen Sie beginnen können. Das wertvollste ist Mvp4GModules.
quelle
Füge den neuen hinzu: GWT-Bootstrap :)
Derzeit gibt es keine stabile Version, diese wird jedoch bald verfügbar sein.
quelle
Meine Erfahrung zeigt, dass es immer viele Probleme mit Bibliotheken von Drittanbietern gibt. Der beste Weg - besteht darin, die bekannte und gut gemachte Technologie selbst sowie Ihre eigenen Komponenten zu verwenden. Das Schreiben und Verwalten kann länger dauern, aber die Gesamtbetriebskosten sind immer niedriger.
Bibliotheken von Drittanbietern können Ihre Pläne häufig unerwartet brechen. Und es ist schwer, die Ursache des Problems zu finden und zu beheben.
Daher würde ich vorschlagen, einfaches GWT zu verwenden.
quelle
Ich denke, SmartGWT ist in Ordnung, wenn Sie die Widgets nur so verwenden möchten, wie sie sind, aber wenn Sie die Widgets wie im Gxt Scheduler erweitern oder ändern möchten , ist Ext-GWT meiner Meinung nach die bessere Wahl.
quelle
Für mich ist EXT-GWT (auch bekannt als GXT) die beste derzeit verfügbare Bibliothek. Ich verwende sie in einem 6-monatigen Projekt und sie hilft sehr bei vielen vordefinierten Komponenten wie Gittern, Bäumen ... Es ist auch wunderschön
quelle
SmartGWT ist eine gute Bibliothek und enthält viele Beispiele, aber die Benutzeroberfläche ist nicht so elegant. Für die Benutzeroberfläche ist Ext GWT gut.
quelle
Die Benutzergruppe von gwt-mosaic scheint nicht sehr aktiv zu sein und ich konnte neben den Wiki-Schnipsel kein Benutzerhandbuch finden. gwt-mosaic führte mich in zwei interessante Werkzeuge ein.
1) gwt-mosaic enthält einen Wrapper für Tibcos PageBus, ein Publish / Subscribe-Tool für die JS-Teile Ihrer App (RPC-Handler, Widget-Rückrufe, Widget-Setter). Dies ist eine Alternative zum Eventbus von gwt.
2) gwt-mosaic empfiehlt die Verwendung der Bohnenbindung (http://code.google.com/p/gwt-beans-binding/) zum Binden von Daten an Widgets und zum Überprüfen von Widgets.
smartgwt ist nicht billig für den gesamten Funktionsumfang und die Unterstützung. Das Glas ist zu groß für Appengine, es sei denn, Sie entfernen die nicht verwendeten Themendateien. Sie investieren Engineering auch auf der Serverseite.
Ich habe gehört, ext-gwt ist träge und die JS-Dateien sind groß.
Der Inkubator für das GWT-Widget sieht veraltet aus. Ich glaube, das Deluxe-Grid wird mit dem neuen GWT veröffentlicht.
Das Fehlen von Look-and-Feel-, Bindungs- und Validierungsstandards beeinträchtigt die Interoperabilität von Widget-Bibliotheken.
quelle
Auf keinen Fall SmartGWT. Ihr Rahmen ist aufgebläht und hat einen sehr halbgebackenen Charakter. Sie haben eine Million Widgets, aber es ist nicht einfach, sie dazu zu bringen, für Ihr Projekt zu arbeiten. Datenquellen erschweren den Prozess der Verwaltung Ihrer Daten erheblich. Um beispielsweise auf Daten in Ihrer Datenquelle zuzugreifen, müssen Sie häufig fecth und inspect verwenden. Während Sie die Ergebnisse zwischenspeichern können, ist es nicht immer einfach, sie abzufragen.
RPC ist ein weiterer schwacher und verschlungener Bereich. Es gibt widersprüchliche Informationen in der Dokumentation und in den Foren. Während die Dokumentation besagt, dass Sie selten eine benutzerdefinierte Operation als Teil eines ds verwenden sollten, wird Ihnen das Forum sagen, dass es vollkommen in Ordnung ist. Das Erlernen des effektiven Einsatzes dieser Werkzeuge ist an den besten Tagen ein Aufstieg.
Sie werden das Produkt verkaufen. Das Diagramm- / Analysepaket enthält beispielsweise Diagramme ... In diesen Diagrammen werden jedoch keine negativen Werte angezeigt oder Sie können Achsenbeschriftungen auf sinnvolle Weise bearbeiten. Und sie antworten offen auf Fragen dazu im Forum mit einer "yeah na was" -Haltung. "Wir planen nicht, das zu 3.0x hinzuzufügen, obwohl dies eines unserer Verkaufsargumente ist, es steht auf unserer Roadmap." Als sie mir das Paket verkauften, erwähnten sie nie, dass ich keine negativen Werte anzeigen konnte. "Ja wirklich?" Welcher Graph müsste keine negativen Werte anzeigen können? Ich kann mir nur einen vorstellen, der die Anzahl der unglücklichen isomorphen Kunden darstellt.
Halten Sie sich von diesen Leuten fern und besuchen Sie die Website eines Mitbewerbers, zum Beispiel ExtJS, JQuery oder sogar quxdoo. Es gibt einige Projekte, die wirklich an Boden gewinnen und tatsächlich eine gute Lösung bieten.
Seien Sie sehr vorsichtig, wenn Sie dieses Produkt jemals bewerten. Es sieht gut aus, aber ungefähr zwei Wochen nach Beginn des Projekts werden Sie sehen, was ich meine. Widgets sind halbgebacken, Datenquellen sind extrem kompliziert, und nur weil Sie für die Unterstützung des Forums bezahlt haben, heißt das nicht, dass Sie tatsächlich etwas anderes als abfällige, herablassende Antworten erhalten, die Sie zunächst glauben lassen, Sie hätten etwas verpasst. Sie haben nicht, dass sie im Allgemeinen sehr arrogant sind.
Viel Glück und halten Sie sich von diesem Produkt fern, wenn Sie Ihre Entwicklungszeit und Wartbarkeit schätzen. Oh und noch eine letzte Sache. Schauen Sie sich das MVC-Beispiel auf ihrer Website an. Es hat buchstäblich nichts mit MVC zu tun, außer dass auf dem Etikett "MVC" steht. Sie werden versuchen, Sie davon zu überzeugen, dass solche Frameworks für unerfahrene Entwickler sind und dass ein solches Konzept in der realen Programmierung keinen Platz hat ... Ein bisschen wie diese versuchen, Blöcke zu fangen.
quelle
Die Standardbibliothek von Google ist die leistungsstärkste Bibliothek.
Ext GWT fügt Schnickschnack hinzu, aber ansonsten ähnelt es dem von Google.
quelle
Derzeit gefallen uns die GWT Mosaic- Widgets. Wir haben mit ext-JS gearbeitet und in der Vergangenheit unsere eigenen Widgets gerollt. ext-JS-Lizenzierung und Bulk waren für uns ein Problem. Unsere eigenen zu rollen ist nicht das, was wir tun wollen. Mosaic gibt uns einen glücklichen Mittelweg, von dem wir glauben, dass er mit zunehmender Projektreife ein noch glücklicherer Mittelweg sein wird.
quelle
Ich würde sagen, wenn Sie nur ein paar Widgets benötigen, dann erstellen Sie Ihre eigenen. Sie können einige Konzepte aus den genannten Bibliotheken kopieren und einfügen. Aber allen fehlt das eine oder andere. Ich habe mit den meisten gespielt und jeden verlassen.
quelle
Eine Sache, die Sie beachten sollten, ist, dass GWT-Ext aus den Foren so aussieht, als würde es nicht mehr viel entwickelt / gewartet (vielleicht überhaupt nicht?). Auf ihrer Website empfehlen sie die Migration zu SmartGWT .
quelle
Ich habe diesen nicht erwähnt, Vaadin (früher bekannt ist IT Mill Toolkit), aber vielleicht liegt das daran, dass es technisch nicht genau GWT ist; wie ihre FAQ sagt:
quelle
smartGWT ist langsam und es fehlen Beispiele, und es ist sehr schwierig, Antworten auf die grundlegenden Fragen zu finden, dh alle meine nicht beantworteten Fragen in diesem Forum zu sehen. Ich entleere smartgwt.
quelle
Vergleich der beiden EXTs hier mit Vor- und Nachteilen.
quelle
Wir haben ein großes HR-Portal und einige kleinere Anwendungen mit GWT-Portlets erstellt . Der Schwerpunkt des Projekts liegt nicht so sehr auf der Erstellung einer Sammlung von Widgets, sondern auf der Erstellung eines einfachen Programmiermodells.
Von der Website:
GWT Portlets ist ein kostenloses Open Source-Webframework zum Erstellen von GWT-Anwendungen (Google Web Toolkit). Es definiert ein sehr einfaches und produktives und dennoch leistungsstarkes Programmiermodell zum Erstellen gut aussehender, modularer GWT-Anwendungen.
Das Programmiermodell ähnelt dem Schreiben von JSR168-Portlets für einen Portalserver (Liferay, JBoss Portal usw.). Das "Portal" ist Ihre Anwendung, die mit dem GWT Portlets-Framework als Bibliothek erstellt wurde. Die Anwendungsfunktionalität wird als lose gekoppelte Portlets mit jeweils einem optionalen serverseitigen DataProvider entwickelt.
quelle
Ich benutze GWT seit einem Jahr. Nach vielen Recherchen habe ich mich für GWT Mosaic als Widget-Bibliothek entschieden. Mosaic verwendet einige der GWT-Inkubatorkomponenten wie PagingScrollTable. Aber die Funktionen der Combobox und der Tabelle reichen uns nicht aus. Deshalb haben wir erweiterte diese Komponenten, um die erforderlichen Funktionen hinzuzufügen.
quelle
Schauen Sie sich SpiffyUI an: www.spiffyui.org
Es ist nicht nur eine Widget-Bibliothek, sondern ein komplexes UI / UX-GWT-Framework.
quelle
Zwei wichtige Dinge - und was die meisten Bibliotheken vermissen - sind Unit-Tests und Debugging. Hier leuchtet GWT. Wenn Sie eine Bibliothek verwenden, die auf Vanilla Js basiert, können Sie Ihr Projekt Unit-Tests und Debugging durchführen. Als GWT-Entwickler sollten Sie diese Punkte berücksichtigen und eine Bibliothek ohne oder mit minimaler js-Abhängigkeit verwenden.
quelle
Wir machen seit mehr als 2 Jahren GWT-Projekte und halten uns an die Standard-Widgets. Wir haben unsere eigene Open Source-Bibliothek erstellt, um die Standardbibliotheken oder unsere eigenen Widget-Erweiterungen automatisch zu füllen. Bitte überprüfen Sie es, es heißt gwt-jet . Es ist sehr gut getestet, da wir es in großen Produktionsumgebungen verwenden, und wir hoffen, dass es im Laufe der Zeit sicher wächst.
quelle