Frage

Ich möchte eine datenbankgestützte interaktive AJAX-Webanwendung erstellen, die über ein benutzerdefiniertes Kalendersystem (bestimmte Art von Ereignissen, Bearbeitung) verfügt.Dies würde ziemlich viel JavaScript und AJAX erfordern, und ich dachte über Google Web Toolkit für die Schnittstelle und Ruby on Rails für die Serverseite nach.

Ist Google Web Toolkit zuverlässig und gut?Welche versteckten Risiken könnten bestehen, wenn ich mich für Google Web Toolkit entscheide?Kann man es problemlos serverseitig mit Ruby on Rails kombinieren?Oder sollte ich versuchen, direkt eine JavaScript-Bibliothek wie jQuery zu verwenden?

Ich habe außer etwas HTML keine Erfahrung in der Webentwicklung, bin aber ein erfahrener Programmierer (C++, Java, C#) und möchte für dieses Projekt nur kostenlose Tools verwenden.

War es hilfreich?

Lösung

RoR ist tatsächlich eines der Dinge, mit denen das GWT gut funktioniert, solange Sie REST ordnungsgemäß verwenden.Es befindet sich im Google Web Toolkit Applications-Buch, und Sie können eine Demo aus dem Buch sehen, die diese Art von Idee verwendet Hier.Das heißt nicht, dass Sie keine Probleme haben werden, aber ich denke, dass die Unterstützung dafür auf jeden Fall da ist.

Es gibt ein nettes Projekt zur Vereinfachung von RoR/GWT, das Sie finden können Hier (MIT-Lizenz).Ich hatte noch keine Gelegenheit, es auszuprobieren, aber es sieht so aus, als hätte man sich viele Gedanken darüber gemacht.Ein Haken ist, dass es anscheinend noch nicht vollständig mit 2.1 Rails getestet wurde, sondern nur mit 2.0, sodass möglicherweise ein paar (wahrscheinlich kleinere und behebbare) Fehler auftreten.

Andere Tipps

Wenn Sie GWT mit Nicht-Java-Backends wie ROR, PHP usw. integrieren möchten, sollten Sie bedenken, dass GWT 1.5 jetzt JavaScript-Overlay-Typen unterstützt.Mit dieser Funktion können Sie Klassen schreiben, die über native JavaScript-Objekte abgebildet werden können, um auf einfache Weise Zugriffsmethoden für Eigenschaften dieser Objekte und andere erweiterte Funktionen bereitzustellen.

Weitere Informationen finden Sie unter diesem Link:JavaScript-Overlay-Typen

Sie könnten also JSON-codierte Daten von Ihrem Backend über AJAX-Aufrufe zurückgeben, sie in ein JavaScript-Objekt analysieren und dann über Ihren GWT-Java-Code mithilfe der von Ihnen erstellten Overlay-Klassen auf die Daten zugreifen.Oder Sie können beim Rendern Ihrer Seite statische Konfigurationsdaten als JavaScript-Objekte rendern und über diesen Mechanismus einlesen, anstatt einen AJAX-Aufruf ausführen zu müssen, um die Daten abzurufen.

Wenn Sie JAVA kennen und einen Ort haben, an dem Sie es hosten können (z. B. einen Tomcat- oder Glassfish-Container), würde ich das viel mehr empfehlen, als Ruby für das Backend zu verwenden.Der Hauptgrund besteht darin, dass Sie dann alle Ihre Objekte gemeinsam nutzen und den integrierten RPC-Mechanismus verwenden können.Ich habe dies bei ziemlich vielen unserer Projekte getan und es ist eine enorme Zeitersparnis, ganz zu schweigen davon, dass der Code weniger fehleranfällig ist, da Sie Ihre Java-Objekte nicht in irgendetwas konvertieren und dann wieder zurück.

Ich habe mein GWT bereits zuvor mit Rails verknüpft, indem ich die to_json-Funktion in Rails verwendet und dann den JSON in GWT gelesen habe.Es wird alles unterstützt, aber es ist weitaus ärgerlicher, als nur das Backend in JAVA zu erledigen.

Wenn Sie über ein günstiges Hosting verfügen, kommen Java-Container natürlich so gut wie nicht in Frage. In diesem Fall wäre Rails meiner Meinung nach die nächstbeste Lösung.

GWT ist von sehr hoher Qualität und hat eine tolle Community.Allerdings müssen Sie sich mit CSS auskennen, wenn Sie das Aussehen von Dingen anpassen möchten (das werden Sie tun) – CSS kann einen Großteil des Layouts übernehmen, genau wie normales Web, wenn Sie es möchten.Bibliotheken wie GWT-ext oder ExtGWT können ein wenig helfen, da sie ein atemberaubendes „Out-of-the-Box“-Erscheinungsbild bieten, allerdings zu einem Preis (zusätzliche Größe Ihrer App).

Mit GWT können Sie alles in Java programmieren und vorhandene Javascript-Bibliotheken von Drittanbietern damit integrieren.Es ist sehr gut.Allerdings habe ich RoR nie viel genutzt, daher kann ich dazu nichts sagen.

Wenn Sie Erfahrung mit Java haben, aber keine Erfahrung mit Javascript/CSS, dann wird GWT ein Lebensretter sein (es sei denn, Sie möchten es natürlich lernen).CSS hat so viele kleine knifflige Details.Es ist nicht ungewöhnlich, einen halben Tag damit zu verbringen, eine 2-Pixel-Fehlausrichtung zu beheben, die nur in IE6 auftritt.

Ich bin mir nicht sicher, wie einfach es wäre, ROR für das Backend zu verwenden ...Das ist möglich, da bin ich mir sicher, da die GWT-Ajax-Kommunikation nur aus Servlets besteht.Sie bieten jedoch einige wirklich nette Funktionen zum Hin- und Herleiten von Java-Objekten, die Sie nicht nutzen können, wenn Ihr Server nicht auch Java verwendet.

Ich habe über einige davon geschrieben die Nachteile von GWT kürzlich.Die Nachteile sind vor allem:langer Bereitstellungszyklus für Änderungen an einigen Teilen der Anwendung und eine ziemlich steile Lernkurve.Als erfahrener Java-Programmierer sollte das zweite Problem weniger problematisch sein und wenn Sie ein separates Backend verwenden, wird auch das erste gemildert (da eine vollständige Neubereitstellung in erster Linie erforderlich ist, wenn Sie den „Server“-Teil der Anwendung ändern).

GWT ist ein wunderbares Framework mit viel Potenzial.Bedenken Sie jedoch, dass es noch recht neu ist.Es gibt einige ungelöste Fehler, die Sie wirklich ärgern können, und normalerweise sind hässliche Problemumgehungen erforderlich, um sie zu beheben.Die Community ist großartig, aber wahrscheinlich werden Sie früher oder später auf ein paar Probleme stoßen, die Google noch nicht beantworten kann.

Aber hey, ich sage: Mach mit.Das Potenzial von GWT ist großartig und ich wette, die Zukunft wird rosig sein.

Sie sollten GWT auf jeden Fall für ein neues Projekt verwenden (es ist auch ziemlich einfach in einem alten Projekt zu verwenden).

Ich habe die Erfahrung gemacht, dass es sehr schnell zu erlernen und anzuwenden ist.Der kompilierte Javascript-Code ist viel besser als alles, was Sie jemals von Hand schreiben könnten, und er funktioniert auch schnell.

Ein weiterer Vorteil ist die Möglichkeit, Ihren Code zu debuggen (was mit Javascript allein die Hölle ist).

Dieser Blog enthält Beiträge von vielen erfahrenen GWT-Benutzern und bietet einige großartige Diskussionspunkte.Ich persönlich habe große Erfahrung mit verschiedenen UI-Frameworks.Ich werde meine zwei Cent hinzufügen.Schauen wir uns an grundlegend Vor- und Nachteile von GWT

Grundlegender Vorteil

GWT überträgt die Web-Layer-Programmierung auf JAVA.Damit kommen die offensichtlichen Vorteile von Java zum Tragen.Es bietet objektorientierte Programmierung.Es bietet außerdem hervorragende Debugging- und Kompilierzeitprüfungen.Da es HTML und Javascript generiert, kann es auch einen Teil der Komplexität in seinem Generator verbergen.

Grundlegender Nachteil

Der Nachteil beginnt mit derselben Aussage.GWT überträgt die Web-Layer-Programmierung auf JAVA.Wenn Sie JAVA beherrschen, werden Sie wahrscheinlich nie nach einer alternativen Sprache zum Schreiben Ihrer Geschäftslogik Ausschau halten.Es ist autark und großartig.Aber wenn es darum geht, Konfigurationen für eine JAVA-Anwendung zu schreiben.Wir verwenden Eigenschaftsdateien, Datenbanken, XML usw.Wir speichern Konfigurationen niemals in einer JAVA-Klassendatei.Überlegen Sie genau, warum ist das so?

Dies liegt daran, dass es sich bei der Konfiguration um statische Daten handelt.Es erfordert oft Hierarchie.Es soll lesbar sein.Es ist niemals eine Kompilierung erforderlich.Es sind keine Kenntnisse der Programmiersprache JAVA erforderlich.Kurz gesagt, es ist ein anderes Ballspiel.Die Frage ist nun, in welchem ​​Zusammenhang steht das mit unserer Diskussion?

Denken wir nun über eine Webseite nach.Denken Sie, wenn wir eine Webseite schreiben, schreiben wir eine Geschäftslogik?Absolut nicht.Die Webseite ist nur eine Konfiguration.Es handelt sich um eine Konfiguration hierarchischer Container und Felder.Wir müssen Geschäftslogik für die Daten schreiben, die von der Webseite erfasst und auf dieser angezeigt werden, und nicht die Webseite selbst erstellen.

Der vorherige Absatz macht eine sehr, sehr starke Aussage.Dies erklärt, warum HTML- und XML-basierte Webseiten immer noch die beliebtesten sind.XML eignet sich in der Wirtschaft am besten zum Schreiben von Konfigurationen.Ein Framework muss eine klare Trennung der Webseite von der Geschäftslogik ermöglichen (das Ziel des MVC-Frameworks).Auf diese Weise kann ein Webdesigner seine Visualisierungs- und Kunstfertigkeiten anwenden, um brillant aussehende Webseiten zu erstellen, indem er einfach XMLs konfiguriert und sich nicht um die Feinheiten einer Programmiersprache kümmern muss.Entwickler können ihr bestes Business-JAVA zum Schreiben von Geschäftslogik verwenden.

Lassen Sie uns abschließend über die direkten Auswirkungen sprechen.GWT bricht dieses Prinzip, sodass es zwangsläufig scheitern wird.Die Kosten für die Entwicklung einer GWT-Anwendung werden sehr hoch sein, da Sie zum Schreiben von Webseiten Programmierer mit mehreren Fähigkeiten benötigen.Das erforderliche Erscheinungsbild wird sehr schwer zu erreichen sein.Die Bearbeitungszeit für die Änderung der Webseite wird aufgrund unnötiger Kompilierung sehr hoch sein.Und schließlich: Da Sie Webseiten in JAVA schreiben, ist es sehr leicht, sie durch Geschäftslogik zu beschädigen.Unwissentlich führen Sie zu Komplexitäten, die vermieden werden müssen.

Sie könnten auch darüber nachdenken Gral („Groovy on Rails“), das Ihnen die Vorteile eines Rails-Frameworks und die Nutzung der Java VM bietet.

Unser Team hat kürzlich die gleiche Frage gestellt und wir haben uns für GWT entschieden, insbesondere weil das Designer-Plugin die Arbeit mit GWT auch für Nicht-Java-Experten im Team zugänglicher gemacht hat.Wer auch immer diese Wahl trifft, seien Sie vorsichtig: Verwenden Sie NICHT das GWT Designer-Plugin!!Es wurde (anscheinend seit mindestens einem Jahr) nicht aktualisiert, um eine GWT-Anwendung zu erstellen, die mit IE8 kompatibel ist.

Unser Team hatte unsere Anwendungslayouts fast fertiggestellt, die in Chrome, FF und Safari perfekt funktionierten.Dann explodierten sie im IE.IE 7 würde Teilseiten laden (aber keine zusammengesetzten Includes), und IE8 war nicht einmal in der Lage, die Anwendung zu laden.Es hing einfach.

Das Designer-Plugin verfügt über Schaltflächen, mit denen der Benutzer CellTable-Widgets hinzufügen kann, die nicht IE-kompatibel sind (unter anderem CellTable, DeckPanel, Horizontal Panel, Vertical Panel).Diese verursachen große Probleme, wenn die Layouts ohne die Hilfe des Designers in Java neu erstellt werden müssen.

Erfahrene GWT-Benutzer lieben es, aber das Designer-Plugin wird Sie umbringen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top