Wann soll RCP verwendet werden?

9

Ich schreibe gerne kleine GUI-Anwendungen mit Java und Swing, so etwas wie ein Client für die soziale Website Tumblr

Sollte ich Eclipse RCP oder die Netbeans-Plattform verwenden?

Und welche Vorteile habe ich, wenn ich eine von beiden gegenüber der Verwendung von Plain Swing / SWT verwende?

Benötigen RCP-Anwendungen mehr Abhängigkeiten als solche, die mit Swing oder SWT entwickelt wurden?

Mahmoud Hossam
quelle

Antworten:

6

Deckard hatte eine ziemlich gute Antwort. Ich möchte hinzufügen, dass es sich lohnt zu überlegen, wie dieses Projekt später aufrechterhalten wird. Überlegen Sie, wie viele Ihrer Mitarbeiter (oder Entwickler im Allgemeinen) mit Swing et al. Vertraut sind und wie viele mit RCP vertraut sind. Meine Organisation hatte einige Kopfschmerzen, als wir eine alte RCP-Anwendung abstauben wollten. Es stellt sich heraus, dass die meisten Personen, die an der Gestaltung des Projekts beteiligt waren, entweder das Unternehmen verlassen oder eine nicht entwicklungsbezogene Rolle übernommen haben. Unser internes Know-how lag mehr im Bereich Swing, was die Dinge schwieriger machte, als sie sein mussten. Wir hatten auch den Wunsch, Teile davon in eine separate, Swing-basierte Anwendung zu integrieren, und die Tatsache, dass die alte App eine RCP-Anwendung war, machte die Sache schwierig.

Ich sage nicht, dass Sie keine RCP-App erstellen sollten, aber dies sind einige Dinge, die Sie zuerst berücksichtigen sollten.

Michael McGowan
quelle
7

Wenn Sie Swing verwenden, müssen Sie im Wesentlichen alles manuell einrichten: Sie definieren das Fenster, jeden Bereich und jedes Steuerelement, in dem Sie erneut jedes Steuerelement definieren. Für jedes Steuerelement und jeden Bereich definieren Sie Handler, um Änderungen und Benutzeraktionen usw. zu verarbeiten. Sie müssen dies tun, da nichts funktioniert, wenn Sie es nicht explizit definieren und implementieren.

Das RCP erlaubt dies ebenfalls, enthält jedoch eine Reihe übergeordneter Komponenten, die viele der üblichen Aufgaben erledigen. Zum Beispiel sind es nur ein paar Konfigurationsschritte, um eine MDI (Multiple Document Interface) zu definieren oder Symbolleisten mit Symbolen hinzuzufügen, die externe Plug-Ins starten, wenn Sie darauf klicken.

Da Eclipse durch RCP unterstützt wird, konzentrieren sich die Basisblöcke in der Regel auf Anwendungen, die ähnliche Anforderungen wie eine Entwicklungsumgebung haben: umfangreiche Textbearbeitung in allen Arten von Fenstern unter Verwendung aller Arten von kontextsensitiven Menüs / Symbolleisten / Operationen / etc.

Wenn Sie also eine kleine benutzerdefinierte Anwendung mit vielen nicht standardmäßigen Inhalten erstellen möchten (z. B. einen auffälligen Twitter-Client mit allen Arten von benutzerdefinierten oder skinnbaren Steuerelementen), macht die Verwendung von RCP keinen wirklichen Sinn. Tatsächlich werden 5 + MB Plug-Ins ohne wirklichen Nutzen in Ihre Anwendung gezogen.

Wenn Sie eine Anwendung erstellen möchten, die Webseiten anzeigt, ein umfangreiches Hilfesystem benötigt, eine automatische Aktualisierung über das Internet und diese Art von umfangreichen Desktopanwendungsfunktionen durchführen muss, ist RCP eine hervorragende Lösung.

Deckard
quelle
0

Ich bin ein professioneller Java-Softwareentwickler mit großem Fachwissen in Bezug auf Eclipse RCP und Netbeans Platform.

"Soll ich Eclipse RCP oder die Netbeans-Plattform verwenden?"

Antwort: Dies hängt von folgenden Faktoren ab:

  • Ihre Expertise in Java.
  • Der Aufwand, um etwas in beiden RCPs zu implementieren.
  • Die Klarheit der Dokumentation jedes RCP.
  • Das bevorzugte Look & Feel, das Sie Ihren Endbenutzern bieten möchten.

Hier sind die Vor- und Nachteile für jeden dieser RCPs gemäß den oben genannten Faktoren:

Die Netbeans-Plattform:

Vorteile:

  • Die Klarheit und Organisation der Dokumentation ist ausgezeichnet! Die aktive Community ist jedoch klein im Vergleich zu der der Eclipse RCP-Entwickler.

Nachteile:

  • Erfordert große Kenntnisse in der Java-Sprache.
  • Im Vergleich zum Eclipse RCP muss viel mehr Code geschrieben werden, um dasselbe zu tun.
  • Das Look & Feel ist nicht einheimisch. Die Netbeans-Plattform basiert auf Swing, sodass Sie auf allen Zielplattformen das gleiche Java Swing-Look & Feel erhalten!

Das Eclipse RCP:

Vorteile:

  • Benötigt nur gute Java-Kenntnisse und gute Kenntnisse in Dependency Injection (mit anderen Worten, es sind keine Kung-Fu-Dinge erforderlich: P)!
  • Das resultierende Look & Feel ist weitaus nativer als das von Netbean. Dies liegt daran, dass der Eclipse RCP auf SWT basiert. (Das ist ein Nachteil für mich - nur weil ich persönlich keinen Spaß an SWT habe)

Nachteile:

  • Die Klarheit und Organisation der Dokumentation ist nicht so gut! Nachteile

Meine persönliche Präferenz ist die Netbeans-Plattform, nur weil ich die vollständige Kontrolle darüber haben möchte, was ich mit meinem Code mache, und weil ich denke, dass die Swing-basierte Benutzeroberfläche viel stabiler ist als die SWT (wie ich es früher getan habe) Einige UI-Abstürze in meiner Eclipse-IDE, während ich codiere: P)!

"Benötigen RCP-Anwendungen mehr Abhängigkeiten als solche, die mit Swing oder SWT entwickelt wurden?"

Antwort: Die Abhängigkeiten bringen diese beiden Babys zum Rollen. Andernfalls müssten sie nicht als RCPs bezeichnet werden. RCP steht für Rich Client Platform, dh es handelt sich um ein Ökosystem (eine große Anzahl von APIs), das beim Erstellen von "Rich" -Anwendungen hilft, indem es die entsprechenden Mittel bereitstellt (über APIs). ;-). Die Antwort hier lautet also "JA, WEITERE ABHÄNGIGKEITEN"!

Javase
quelle