Frage

Ich bin an einem Projekt, wo wir versuchen, einen GUI Ersatz für eine alte Anwendung zu erstellen. Bevor wir implementieren, um die Funktionalität, die wir begonnen haben, Prototyping mit Eclipse RCP (Rich Client Platform) und GWT (Google-Widget Toolkit, ein Rich Internet Application) wirklich. Was ist Ihre Erfahrung mit RIA und RCP GUIs? Wann ist es sinnvoll, RIA zu verwenden und in welchen Situationen ein Rich-Client ist besser geeignet? Mit den heutigen Möglichkeiten der RIA wird es immer schwieriger, die Grenze zu ziehen .. Haben Sie Erfahrungen?


EDIT: Alle Ihre Antworten sind wirklich interessant. Ich möchte sie alle akzeptieren, wie sie auf die Antwort meines beitragen, das gibt es eine ganz offene Frage. Also meine Stimme für jeden von ihnen. Die Hoffnung wird die Prämie unter euch geteilt werden.

War es hilfreich?

Lösung

Es gibt kein Detail auf die Anforderungen Ihrer Anwendung, die auf die Beantwortung der Frage wirklich entscheidend ist.

Der große Sieg für GWT verwenden, ist die einfache Implementierung in Bezug auf so etwas wie RCP. Es gibt nichts, für den Benutzer einfacher als ihren Web-Browser zu einem URL verweist und nichts leichter für das Operations-Team als Code auf den Server schieben, Prellen es und es einen Tag aufgerufen wird.

Soweit Funktionalität, der große Bereich, in dem GWT kurz kommen werden würde reicher Datenvisualisierungen sein: Charting, Baum / Knoten, Netzwerkdiagramme usw. Dieses Material ist möglich, mit GWT und etwas Hilfe auf dem Server aber die Grenzen der DHTML beginnen sogar mit einem leistungsfähigen Toolkit wie GWT zu zeigen, durch. Auf der anderen Seite, gibt Ihnen RCP die volle Leistung des Java 2D alles, was Sie visualisieren möchten. Diese Art von Funktionen sind möglicherweise nicht notwendig für Sie, aber sie sind auch diejenigen, die Anwendungen wirklich interessant zu machen, mehr als nur ein Durcheinander von Reiter, Baum und Datenraster Kontrollen.

Ich habe seit mehreren Jahren mit Adobe Flex zu entwickeln und finde es wirklich mächtig zu sein, die gleichen Vorteile Einsatz als so etwas wie GWT mehr oder weniger, aber die gleiche Art von Macht als RCP bietet. Vielleicht haben Sie, dass aus überprüfen möchten.

Andere Tipps

Auch wenn GWT geht ein langer Weg, es ist nicht die gleiche Flexibilität und Zugänglichkeit als eine richtige Anwendung zu geben.

Auch thouhg eine GWT-Anwendung eine echte Anwendung kann fast alles tun kann, gibt eine Reihe von Faktoren, die RCP wäre das beste Werkzeug sein.

  • Sich wiederholende Arbeit
  • Viel Eingabe
  • Lange Sitzungen
  • Sich wiederholende Aufgaben
  • Benutzerdefinierte Widgets für die Bearbeitung oder Präsentation.
  • Mehrere Fenster mit unterschiedlichen Daten.
  • Schnelltasten für häufig verwendete Operationen
  • Schnelle Antworten.
  • Eine echte Menüleiste coolbars.
  • Ein richtiges Fenster, das es einfach in der Taskleiste zu finden.
  • Kontextmenüs für selten verwendete Operationen
  • Limited (oder bekannte Basis) Anzahl der Benutzer.
  • Umfangreiche oder komplexe Animationen oder Updates in Echtzeit.

Wenn Sie denken, dass Ihre Anwendung eine Werkbank benötigt, mit mehreren Ansichten und Editoren, dann wird die Wahl gegeben.

RCP und die Werkbank ist nicht so einfach zu handhaben, aber Sie kostenlos viel bekommen, wenn die Anwendung von dem mehr „frei“ und offenem Arbeitsmodell mit mehreren geöffneten Ansichten / Editoren usw.

profitieren würde

Wenn die Anwendung für mehr gelegentlichen Aufgaben, dann GWT ist wirklich gut.

GWT ist wirklich schön, , aber es ist immer noch eine Web-Anwendung, und das saugt manchmal. Ich möchte nicht alle meine Arbeit in einer Web-Anwendung zu tun, wo ich versehentlich eine Taste drücken und alle meine Arbeit und die Sitzung verlieren. (Meine Tastatur hat sogar einen Schlüssel neben den Pfeiltasten, die zu deaktivieren unmöglich zu sein scheint). Sein stark genug, um fast alles tun, tun Sie in RCP tun können, aber es ist immer noch innerhalb des Web-Browser ausgeführt wird, und dass irritierend sein kann.

Beachten Sie, dass Sie Java Web Start verwenden können RCP-Anwendungen zu implementieren.

Wir entwickeln ein (Pilotprojekt) Plug-in für Eclipse, die dann an einer eigenständige RCP-Anwendung sowohl umgewandelt wurden (wir wollen es nicht als Plug-in versenden, da wir nicht als Pre- Eklipse wollten req, so hatten wir es etwas komplizierter als nur eine einfache Bewegung in RCP) und in eine RIA-Anwendung mit jQuery.

einige Unterstützung Code hinzufügen machen

Trotz der besten Bemühungen des RCP Lager, nahm die RIA-Version etwa zur gleichen Zeit zu entwickeln (obwohl es von Grund auf neu war) und es sah glatter in der Ausführung.

Der Clou war, dass es nicht mit der Version RIA Installation erforderlich, da alle unsere Kunden haben bereits Anwendungsserver und Updates werden auf einem Server zentralisiert, nicht jeder Client.

Die RCP-Version wurde in der Funktionalität hinter längst verlassen. Was uns betrifft, ist Eclipse-Fein als Entwicklungsumgebung (für Java, haben wir keine Erfahrung mit den anderen Sprachen), aber die Mühe, die sie in Splitting die IDE von der GUI setzen auseinander (RCP möglich zu machen) nicht < em> ganz fertig.

Auf der anderen Seite scheint jQuery speziell für diese Art von Sachen gebaut (wahrscheinlich, weil es speziell für diese Art von Sachen gebaut wurde). Sowohl die Entwicklung und der Betrieb von Anwendungen sind sehr schön.

Rich-Internet-Anwendungen sind eine gute Möglichkeit, robuste Software zu machen, die wie herkömmliche Desktop-Software handeln. Ein häufiges Problem mit RIA ist, dass viele Entwickler neigen dazu, Business-Logik in dem Client-Seite Code zu platzieren. Business-Logik und Zustände in dem clientseitigen Code ist sehr unsicher, wie man den clientseitigen Code in der Laufzeit manipulieren kann. Darüber hinaus ist es ein Whitebox-System, der Hacker den Code zu untersuchen ermöglicht und findet Schwächen, wie die Eingabevalidierung nur in dem Client-Seite Code getan oder Manipulieren Staaten. Lass dich nicht von Verschleierungs täuschen, da es nur einen Hacker verlangsamt, ihn aber nicht stoppen. Billy Hoffman ein gutes Buch über AJAX Sicherheit geschrieben (genannt, ta-daa "Ajax Sicherheit") und ich empfehle es für jeden RIA-Entwickler.

Dies bedeutet nicht, dass RIA definitionsgemäß schlecht ist, können Sie sicher RIA schreiben, wenn Sie wissen, was Sie (keine Business-Logik in Client-Seite Code, keine Zustände, Eingabevalidierung [auch] auf Server-Seite getan usw.) tun . Es gibt ein paar Frameworks, die dieses securer Server implementieren angetrieben RIA wird ein IT Mühle Toolkit (basierend auf GWT) und ICEFaces sollte auch ein meines Wissens sein.

Nach meiner Erfahrung RIA GUIs ist in der Regel robust genug, um die meisten Informationen für die Nutzer zu kommunizieren. Es gibt einige wahrscheinlich einige Ausnahmen von dieser Regel, aber ich kann einen guten jetzt nicht denken. RIA hat den Vorteil, für jeden durch einen Web-Browser zugänglich ist, ohne eine dicke Client Installation (RCP). Es sei denn, Sie eine spezielle komplexe Anzeige haben, die nicht durch Web-Technologien getan werden kann, würde ich empfehlen, den RIA Weg zu gehen.

Eine Organisation, ich arbeitete für wählen RCP, weil ihre Benutzer mit der Anwendung zu arbeiten, benötigt sowohl online als auch offline (wenn sie auf der Straße sind, usw.). Ich weiß, das mit Google grears möglich ist, jetzt aber Getriebe ist nicht wirklich Mainstream genug für große organiazation es auf Flaggschiffprodukt zu stützen. Aber wenn die Benutzer nicht die Notwendigkeit, offline zu gehen, würden Sie wirklich den Aufwand für die Synchronisierung von Benutzerdaten / Produkt-Updates ect zwischen RCP App und Server speichern, würde RIA der Weg in diesem Fall zu gehen.

Es gibt auch die Möglichkeit, mit einigen der Vorteile eines RIA ein RCP der Bereitstellung. Eine Lösung für unsere Kunden untersucht (für die Verwendung ausschließlich von Mitarbeitern innerhalb ihrer Gesellschaft) ist die Verwendung einer Java-Anwendung über ein Java-Servlet gestartet.

Einige Vorteile identifiziert wurden, gehören:

  • Es ist einfach aufgerüstet, ähnlich wie ein RIA
  • (nur seine JAR-Datei erneut bereitstellen, wird es die nächste Mal zu jeder Zeit blättert mit dem Applet auf der Seite ausgewählt werden)
  • Es sieht aus, fühlt sich verhält und verhält sich wie eine native Anwendung, ähnlich wie ein RCP (dank SWT)

Einige Nachteile identifizierte sind:

  • Der Computer des Benutzers muss eine Java-Plugin installiert haben.
  • Die Anwendung muss in einer Version von Java kompatibel mit der Benutzer-Plugins entwickelt werden (obwohl der Kunde eine Mindestversion benötigen, kann auf Personal Computern installiert werden). Das Retroweaver Tool kann helfen, obwohl ich damit nicht sehr viel Erfahrung haben.
  • Der Benutzer muss den Web-Browser geöffnet, ansonsten wird die Anwendung beendet werden halten.

Was ist die Natur dieser Anwendung. Sollte es vollständig auf einem Client-Computer ausgeführt werden? Braucht es lokal gespeicherten Daten zugreifen? Sind replcaning Sie nur die GUI für eine bestehende App mit dem Motor des Legacy-Code immer noch zu sein?

Mein anderer wichtiger arbeitet an einer Software-Appliance, wo sie AJAX als Mittel zur Konfiguration des Geräts genutzt hat. Das Feature-Set für die Konfiguration ist reich und richtet sich sehr gut mit RIA. Ebenso Software lokal auf dem Web-Browser zu installieren ist sehr mutlos.

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