Frage

Wir beginnen vor kurzem ein Java-Desktop-App zu entwickeln und das Management hat darum gebeten, dass wir den Einsatz von Rich Client Platform machen. Ich weiß von vier für Java nämlich:

  1. Eclipse RCP - www-Link ecipse rcp ,
  2. NetBean RCP - Netbeans RCP Website ,
  3. Frühling RCP - Frühjahr Rich-Client-
  4. Valkyrie RCP - Valkyrie Rich-Client-

Hat jemand Erfahrung in einer dieser Punkte bekam, und wenn ja, was sind die Stärke und weaknesess der einzelnen?

Dank

War es hilfreich?

Lösung

Ich empfehle Sie, einen Blick auf JSR 296 nehmen - es noch nicht von einer Strecke ist vollständig, aber ich denke, es ist der Sweetspot trifft für die Bereitstellung von bestimmten Kernfunktionalität, die Sie wirklich, wirklich in jeder Java-GUI-Anwendung benötigen, ohne dass Sie in einer zu komplizierten Rahmen zu leben.

Ich habe JSR verwendet 296 erfolgreich eine mittelgroße Anwendung zu erstellen. Für Fenster-Layout in dieser App, die wir verwenden MyDoggy (sehr empfehlenswert). Für Layout-Management verwenden wir MigLayout (Jenseits sehr zu empfehlen). Für die Datenbindung verwenden wir eine modifizierte Form von JSR 295 (wir etwas Ähnliches wie PresentationModel auf von JSR 295, die wir für unsere GUI-Bindung). Ich bin in dem Prozess Guice als DI-Mechanismus einzubauen, aber noch nicht, dass die Anstrengung beendet (so weit, ich denke, es wird ‚gut spielen‘ mit JSR 296 mit einem zwicken hier und da). Mal sehen ... Beharrlichkeit ist die große missing link hier - ich derzeit für XML-Persistenz rel="noreferrer">, aber bin läuft in Probleme mit bekommen es mit DI-Container wie Guice zu arbeiten. Ich habe Betwixt arbeiten, aber die Abhängigkeiten von Betwixt sind riesig, so suchen wir nach etwas straffere.

Meinungen auf anderen RCP Optionen für Java:

NetBeans: Ich habe einige grundlegende philosophische Einwände gegen den Ansatz von NetBeans (zu viele Design-anti-Muster für meinen Geschmack). Am Ende Sie die Rahmenkräfte schlechte Design-Entscheidungen zu machen - und es ist fast unmöglich, zu verwenden, wenn Sie NetBeans als IDE nicht verwenden (habe ich versucht, aber ich konnte einfach nicht wechseln von Eclipse NB). Es ist wahrscheinlich nur mich, aber es scheint, dass es möglich sein sollte, ohne große komplizierte Assistenten und Unmengen von automatisch generierten Code und XML-Dateien Code für einen RCP Framework zu schreiben. Ich habe so viele Stunden Fehlerbehebung alt Visual C ++ Code generiert von Visual Studio verbracht, die ich bin sehr misstrauisch jeden Rahmen, der von Hand können nicht codiert werden.

Frühling RCP: Die Leute im Frühling haben eine gute und solide Konstruktion, aber die Dokumentation ist wirklich, wirklich schwach. Es ist ziemlich schwierig zu Geschwindigkeit auf sie aufstehen (Aber wenn Sie das tun, können Sie die Dinge ziemlich schnell erledigt werden).

Eclipse RCP: Habe Eklipse nicht nur wegen des Einsatzes Overhead verwendet (abhängig von Ihrer Zielgruppe - für uns, ein zusätzlichen 50 MB Laufzeit bereitstellen funktionierte einfach nicht). Ohne Frage ist Equinox eine schöne Sache, wenn Ihre App erhebliche Plugin-Funktionalität benötigt (natürlich Sie Equinox mit JSR 296 als auch laufen konnten, oder Designmuster ähnlich die Whiteboard-Muster von OSGi gefördert verwenden).

Andere Tipps

INTRO - überspringen, wenn Sie nur interesterd in Folge sind;)
Ich war ein Editor für eine benutzerdefinierte Programmiersprache sehr simmilar zu JSP entwickeln. Zuerst habe ich den Editor als meine These mit NetBeans Plattform implementiert. Nach dem Abitur Ich habe einen Job, und sie wollte, dass mir die gleiche Sache in Eclipse RCP , implementieren, so dass ich jetzt diese beiden Plattformen zumindest in Sachen vergleichen kann ich bei diesem Projekt gegenüber.

RESULT - Wenn ich die Wahl zwischen Netbeans Plattform und Eclipse RCP hätte, würde ich definitelly eine NetBeans Plattform wählen . Warum?
Große Screencasts, gute Tutorials, sehr aktiv freundlich und hilfsbereit Gemeinschaft, recht gut dokumentiert und der Quellcode ist schön und mit guter Code Konventionen geschrieben. Auch hat einige interessante Gadgets (Cookies, Lookup). Es ist einfach zu mir passt.

Und warum Eclipse RCP mich nicht passen?
Die Dokumentation ist schwächer und Konventionen und API sind für mich sometimes..ehm..too seltsam :-) Es ist ziemlich ususal Methoden, um zu sehen, wie:

/**
* Returns a description of the cursor position.
*
* @return a description of the cursor position
* @since 2.0
*/
protected String getCursorPosition() {
..
}

Nun, ich dachte, sie müssen mich verarschen :-D Wie soll ich diese Methode verwenden? Oder wie folgt:

/**
* Returns the range of the current selection in coordinates of this viewer's document.
*
* @return a <code>Point</code> with x as the offset and y as the length of the current selection
*/
Point getSelectedRange();

Obwohl die Anzahl und Art der Attribute Fitts, ich habe nicht die Point-Objekt ideal Datenstruktur findet Bereich zu speichern; -)

Es gibt Zahlen ond so surpises in Eclipse RCP

Zu spät zu beantworten, aber einige Leute könnten diese Seite getroffen.

Ich würde für Netbeans RCP gehen, 1) Netbeans Plattform. seine recht ausgereift und hat sich weiterentwickelt ist ein ‚einfach zu bedienen‘ Plattform für die Entwicklung von Anwendungen.

2) Es ist sehr einfach, mit zu beginnen, während die Lernkurve von RCP Eclipse ziemlich steil ist. Nur gehe, http://netbeans.org/kb/trails/platform.html , dort finden Sie Tutorials, Videos (schauen die Top 10 Videos von api und Tutorials ausprobieren, bevor Sie Bücher lesen, da man so einen Dreh Dinge vorher erhalten wird).

3) Bücher auf Netbeans RCP (ich denke, es gibt 2 auf Netbeans RCP) ist uptodate (kleine Änderungen nur die Sie nicht haben viele Probleme mit). während des Hauptbuch auf RCP nicht für eine lange Zeit verfügbar war (kürzlich .dass Mai 2010, hat die neue Ausgabe freigegeben worden ist, so dass eine sehr gute Sache für Eclipse RCP Entwickler ist. Es war nicht da, als ich versuche, lernen es. ich frustriert mit Autoren, die neuen Ausgaben nicht veröffentlichen, fast neue Entwickler in Stich lassen. nicht jeder docs lesen mag. nicht aktualisiertem Bücher veröffentlichen fast beläuft sich die Technologie zu töten). Ich würde gerne ein Kochbuch Art Buch für beiden Plattformen sehen.

4) Netbeans hat voll integrierte GUI-Builder, die große Plus ist. Eclipse RCP, müssen Sie entweder Hand-Code oder einen Dritten GUI-Builder kaufen.

5) Netbeans Plattform hat diese ziemlich cool Lookup api für Zwischenmodulkommunikation. Ich denke, Eclipse Jungs Erweiterungspunkte für diesen Zweck verwenden. Aber Lookup api ist einfach, wenn Sie einen Dreh raus zu bekommen.

6) Wie auch immer, es ist eine große Design-Entscheidung, über die Plattform zu wählen. Netbeans Plattform funktioniert für mich. Es ist vielleicht nicht für Sie arbeiten. Beide Plattform erfordert Anstrengungen, die beide wunderbar bieten ‚out of the box‘ -Funktionen. Test beide fahren und dann entscheiden.

Ich habe Erfahrung mit dem RCP Eclipse und kann es empfehlen.

Vorteile:

  • Komponenten - Komponente / plu-in-Modell ermöglicht die Wiederverwendung.
  • Verwendet SWT und JFace, die für native UI suchen
  • erlaubt
  • Steckbare Ansichten, Editoren und Perspektiven machen Layouts einfach und konfigurierbar.
  • Eclipse-Erweiterungspunkte machen erstreckt und die Integration mit 3rd-Party-APIs und Tools einfach.

Nachteile:

  • Lernkurve

Wenn Sie Eclipse RCP wählen, trotzig dieses Buch, es invaluble ist, wenn nur mit dem Rahmen ausgehend: http://www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612

Ich bin derzeit einen Frühling RCP-Anwendung zu entwickeln. Die Dokumentation ist wirklich schwach, das ist sicher, aber die Blogs und Foren haben eine gute Menge an Informationen in Gang zu bringen. Sobald Sie Kreuzfahrt bekommt, tun Dinge ziemlich schnell bewegen und Sie wirklich nur grundlegende Frühling lernen müssen, wenn Sie mit dem Framework nicht vertraut sind. Die Integrationen mit Frühlings-Bibliotheken wie VLDocking ist auch ausgezeichnet.

Ich denke, Spring Rich ist groß, wenn Ihr Anwendungsfall ist eine eigenständige Java-Desktop-Anwendung zu entwickeln. Was ich damit meine ist, wenn Sie Module nicht verteilen müssen und tun Online-Updates dann sollte es die meisten Bedürfnisse erfüllen.

Während ich nicht ausdrücklich jede von ihnen verwendet, ich habe Teile des Eclipse RCP verwendet. Insbesondere habe ich die Eclipse-OSGi Runtime (Equinox) und einige gemeinsame Dienstprogramme verwendet, und ich habe sehr zufrieden. OSGi ist fantastisch, mit zu arbeiten. Ich habe mehrere Freunde auf Großaufträge, die Eclipse RCP verwenden (mehr als ich) und sie schwärmen davon.

Wenn mein Projekt nicht einen großen Berg von Legacy-Swing, Eclipse RCP wäre meine erste Wahl enthielt sein. OSGi ist einfach so viel Spaß! (Ich stelle mir Spring verwendet es zu haben, wenn auch nicht überprüft)

Natürlich ist es hängt alles von der Art von Anwendungen und Dienstleistungen, die Sie zur Verfügung stellen möchten, und die Zielumgebung. Aber ich kann auch OSGi als Entwicklungs- und Implementierungsplattform empfehlen. Die zugrunde liegende Architektur und Spezifikationen sind sehr gut entwickelt und erprobt.

Neben der Eclipse RCP sollten Sie einen Blick auf Apache Felix haben ( http://felix.apache.org ) und Knopflerfish ( http://www.knopflerfish.org ), die (kleinere) Open-Source OSGi-Framework-Implementierungen.

Von meiner Perspektive des Endbenutzers.

Ich habe mehrere Implementierungen in Eclipse zu sehen als in den beiden anderen. Eigentlich habe ich über Netbeans Implementierungen wissen aber nie eine in meinen Händen.

Von Frühling ist dies das erste Mal, dass ich davon gehört habe.

Während meine Antwort auf jeden Fall eine super 10.000 ft Ansicht ist, spiegelt es irgendwie die Präferenz die Industrie über die Verwendung der einen oder anderen gehabt hatte.

Außerdem ist die Differenz proportional zu der Zeit die Plattform verfügbar ist. Denken Sie daran, Eclipse-SWT erstellen, um die Probleme zu lösen Java Swing zurück in 1.3 hatte, wo war einfach ist prohibitely langsam.

Netbeans wurde durch die JVM Verbesserungen sehr veredelt und jetzt läuft sehr sehr schnell.

Frühling ist noch jung (im Vergleich mit den beiden anderen), aber wie immer, lernen die neuen Dinge aus der ehemaligen, stehen die Chancen, es ist einfacher zu benutzen.

Hier ist ein Artikel über diese beiden Plattform Eclipse RCP vs Netbeans RCP. kann hilfreich sein,

http://blogs.oracle.com/geertjan/entry/eclipse_platform_vs_netbeans_platform

Netbeans RCP ist ausgezeichnet. Sein einen langen Weg über die Jahre kommen. Es verwendet eine robustere Technologie ( ‚Swing‘), dass viele Menschen nutzen und verstehen. Eclipse RCP (genauer gesagt SWT) verwirrt mich.

Eclipse RCP bietet Plug-In-Mechanismus, so dass Sie neue Funktionen später auf dem Deployment hinzufügen können. Auch über den Update-Mechanismus können Sie das System ohne Störung Benutzer ändern. In der Entwicklungsphase stellt Eclipse RCP einen schnellen, robusten Boden mit Perspektiven, Ansichten, Editoren, Befehl und Wirkungsmechanismen. Wenn Ihr Projekt viele verschiedene Fenster mit unterschiedlichen Werkzeugleiste und Menüs (und auch benutzerdefinierte Kontextmenüs) erfordert Ich schlage vor, Sie Eclipse RCP zu verwenden. Ich überprüfe nur die Videos von Netbeans Platform und das Helloworld Projekt laufen, aber es scheint langsam und unbeholfen :) 40 Sekunden zu starten (Sie die Anwendung neu zu laden können, obwohl w / o Neustart.) Vogella.de eine gute Sammlung von Tutorials ist für eclipse RCP

Es gibt auch Reflection-basierte UI Generierung und Anpassung.

Statt einer IDE Anpassung an Ihre Bedürfnisse anzupassen, werden Sie eine GUI standardmäßig generiert anpassen. Es mag interessant sein, einen neuen Ansatz zu versuchen.

https://github.com/dotxyteam/ReflectionUI

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