• Like
  • Save
RCP-Vergleich, ein Artikel im Java Magazin 08/2011
Upcoming SlideShare
Loading in...5
×
 

RCP-Vergleich, ein Artikel im Java Magazin 08/2011

on

  • 4,014 views

n ihrem Artikel „Reiche Formulare“ vergleichen unsere Mitarbeiter Herr Holger Grosse-Plankermann und Herr Jörg Meister die drei am weitest verbreiteten RCP-Technologien Eclipse RCP, Riena und ...

n ihrem Artikel „Reiche Formulare“ vergleichen unsere Mitarbeiter Herr Holger Grosse-Plankermann und Herr Jörg Meister die drei am weitest verbreiteten RCP-Technologien Eclipse RCP, Riena und NetBeans miteinander und nennen projektspezifische Vor- und Nachteile der einzelnen Plattformen.

Statistics

Views

Total Views
4,014
Views on SlideShare
3,928
Embed Views
86

Actions

Likes
0
Downloads
13
Comments
0

1 Embed 86

http://www.iks-gmbh.com 86

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    RCP-Vergleich, ein Artikel im Java Magazin 08/2011 RCP-Vergleich, ein Artikel im Java Magazin 08/2011 Document Transcript

    • inkl.JAVA Mag CD User Stories in agilen Projekten Deutschland € 8,50 » 108 Österreich € 9,80 Schweiz sFr 16,80 8.2011 magazin Java • Architekturen • Web • Agile www.javamagazin.de Griffon OSGiCD-INHALT Neuer Schwung Architektur in » für Swing 25 OSGi umgesetzt » 98 Brandneues Programm » 51 Tools IPHONE 4 JAVA DEVELOPERS Video von der W-JAX 2010 HIGHLIGHT Eclipse Riena 3.0 Hector 0.7 Apache Cassandra JIRA & Co. erfolgreich einsetzen » S. 52, 58 WEITERE INHALTE • Jackson 1.8.1 Sond erdruck • Griffon 0.9.3 Beta 1 • Cassandra GUI 0.7.1 RESTful JSF Alle CD-Infos ab Seite 3 Ein Widerspruch? » 92 Java Web Services SOAP mit JAX-WS » 69 Cassandra und Hector Griechische NoSQL-Mythologie » 47
    • Sonderdruck Das passende Rich-Client-Framework für Ihr Projekt Reiche Formulare Die „Brot und Butter“-Anwendungen eines Softwareentwicklers sind nach wie vor formularbasierte Verwaltungsapplikationen: sei es ein CRM-System, ein System zur Kreditbearbeitung oder die Verwal- tung von Versicherungsverträgen. Soll die Anwendung eine Webapplikation sein, hat der Architekt eine große Auswahl an passenden Frameworks. Entscheidet man sich für eine Rich-Client-Architektur, tappt man häufig im Dunkeln. Dieser Artikel bietet Ihnen Entscheidungshilfen an, um das für Ihr Projekt pas- sende Rich-Client-Framework auszuwählen. von Holger Grosse-Plankermann und Jörg Meister Recht schnell ist klar, dass eine Applikation auf Ba- sis einer Rich-Client-Plattform (RCP) der beste Ansatz Ein Kunde aus dem Bereich der Versicherungswirtschaft für diese Anwendung ist (Kasten: „Eigenschaften von wünscht sich eine neue Software zur Verwaltung von Rich-Client-Frameworks“). Es bleiben für uns im We- Versicherungsverträgen: Es soll eine Desktopapplikati- sentlichen drei Plattformen übrig, die wir nun einem in- on sein, die In-House auf den Rechnern der Sachbearbei- tensiveren Vergleich unterziehen: ter installiert wird. Die Verwaltung der Verträge besteht aus mehreren Schritten, bei denen der Benutzer unter- • Die Eclipse Rich Client Platform (Version 3.6) [1] stützt und geleitet wird. So ist es notwendig, abhängig • Eclipse Riena (Version 2.0), das auf Eclipse RCP von den eingegebenen Daten, einzelne Programmteile basiert [2] oder Eingabefelder anzuzeigen, zu verstecken oder mit • Die NetBeans Rich Client Platform (Version 6.9) [3] anderen Werten zu belegen. Außerdem soll der Benutzer bereits bei der Eingabe der Daten auf mögliche Fehler Die betrachteten Frameworks hingewiesen oder am Verlassen eines Prozessschritts Sowohl Eclipse RCP als auch NetBeans RCP haben ih- gehindert werden. Selbstverständlich wünscht der Kun- ren Ursprung in den entsprechenden IDEs. Bereits im de sich zudem eine komfortable, schnell reagierende Jahr 2001 wurde die NetBeans IDE so umgebaut und Applikation, die dem Benutzer auch ein komfortables modularisiert, dass NetBeans zu einer Plattform für Hilfesystem bietet. Zusammen mit dem Kunden haben Desktopapplikationen wurde. Auch Eclipse wurde ur- wir ein grundlegendes Bild der Applikation entwickelt sprünglich als reine IDE und Toolplattform entwickelt. (Abb. 1). Man erkannte jedoch, dass es sich auch zum Bau von Aus der Tatsache, dass die Benutzer verschiedenen Rich Clients eignet. Die vorhandenen Technologien Aufgabenbereichen zugeordnet sind, ergeben sich wei- wurden neu strukturiert, sodass aus der ehemaligen IDE tere Anforderungen: Es sollen nur relevante Applikati- eine offene und erweiterbare Plattform zur Entwicklung onsteile angezeigt werden, und neue Funktionalität für von Desktopapplikationen entstand. Mit der Version weitere Aufgabenbereiche soll rasch und einfach hin- 6.0 hat Sun das Thema Plattform wiederaufgegriffen zugefügt werden können (Modulkonzept). Die IT des und weitere APIs hinzugefügt, um gegenüber Eclipse Kunden ist Java-zentriert, somit wurden Lösungen aus RCP konkurrenzfähig zu sein. Aber Eclipse RCP ist so dem Java-Umfeld bevorzugt. Im nächsten Schritt suchen weit verbreitet, dass man es als De-facto-Standard an- wir nun eine technologische Basis, die diese Anforderun- sehen kann. gen abdeckt. Da diese Architekturentscheidung ähnlich Eclipse Riena nimmt hier eine Sonderrolle ein: Riena grundlegenden Charakter hat, wie die Auswahl des Per- basiert auf Eclipse RCP. Ziel von Eclipse Riena ist es, sistenzframeworks, muss diese Entscheidung sehr früh, die Erstellung von „üblichen“ Businessanwendungen zu aber nichtsdestoweniger mit sehr viel Weitblick getrof- vereinfachen. Auch versucht es, die Nutzerführung für fen werden. Anwender mit nicht technischem Background zu verein-2 javamagazin 8 | 2011 © Software & Support Verlag GmbH www.JAXenter.de
    • Sonderdruck lent. Formulare lassen sich damit sehr schnell erstellen. Allerdings sollte sich der Entwickler schon mit den Ei- genheiten der Layout Mana- ger auskennen. Eclipse RCP gibt keinerlei Vorgaben, wie ein Layout auszusehen hat, sodass das Wireframe nahezu 1:1 umsetzbar ist. Einschränkungen gibt es (zumindest in unserem An- satz) bei der Abbildung der Prozessschritte. Doch dazu später mehr. Eine Demo- applikation mit Eclipse RCP sehen Sie in Abbildung 2. Einer Eclipse-RCP-An-Abb. 1: Wireframe der Versicherungsapplikation wendung sieht man meistens an, dass Eclipse der Unter-fachen. Diese haben häufig Probleme mit der Vielzahl bau ist. Über das eher unhandliche Presentation API istder Möglichkeiten, die eine Eclipse-Applikation enthält. viel vom Look and Feel anpassbar. In Eclipse RCP 4.0Riena bietet u. a. ein eigenes Interaktionskonzept, eigene wird es möglich sein, eine Anwendung mittels CSS zuGUI-Elemente und ein eigenes Look and Feel. Zudem verschönern.kann Riena die Einbindung in eine JEE-Umgebung ver- Allerdings gibt es hier einige Einschränkungen, dieeinfachen. Zur Kommunikation mit dem Backend wer- durch SWT ins Spiel kommen. In einigen Fällen über-den Remote OSGi Services angeboten, die proprietäre nimmt SWT schlichtweg den Standard des Betriebssys-JEE Jars im Client überflüssig machen. tems, ohne dass das änderbar wäre. Ein Beispiel hierfür ist die Vordergrundfarbe eines nicht aktiven Felds.Vergleich der Frameworks Wie erwähnt, ist Riena ein Aufsatz auf Eclipse RCPNach der allgemeinen Vorstellung wollen wir nun die und benutzt als GUI-Technologie ebenfalls SWT. AlsFrameworks genauer vergleichen. Wir konzentrieren Tool-Support bietet sich somit ebenfalls der Googleuns dabei auf die Teile der RC-Plattformen, die bei einer Window Builder an. Riena bringt allerdings noch einenformularbasierten Anwendung anders sind als bei den praxiserprobten Satz an GUI-Komponenten mit. Es gehtüblichen RCP-Demoapplikationen. Wir gehen somit auf auch in puncto GUI-Entwicklung einen eigenen Weg: Esdie Fragen „Wie kann das gewünschte Layout des Wi- forciert den Model-View-Controller-Ansatz und trenntreframes umgesetzt werden?“ und „Wie bildet der Ent- mithilfe der Ridgets [4] die Darstellung des Controlswickler den eingangs umrissenen Prozess ab?“ ein. von seinem Verhalten. Resultat sind eine besser struk- turierte Anwendung und eine bessere Testbarkeit derLayouting in den Plattformen GUI. Dieser MVC-Ansatz ist in Eclipse RCP selber nurIn diesem Abschnitt interessiert uns, welche Techno- umständlich einzupflegen. Das Ridget-Konzept machtlogie verwendet wird, um Layouts mit dem gewählten den Einstieg etwas schwieriger. Verwendet man Cont-Framework zu erstellen, inwiefern der Kunde Einfluss rols, die nicht von Riena mitgeliefert werden, so mussauf das Aussehen (Farben, Schriften etc.) der Anwen- man eigenhändig Ridgets hierfür erzeugen. Aufgrunddung nehmen kann und die verfügbaren Tools. Auch der guten Beispiel-Snippets [5] ist das allerdings keinbeachten wir die Besonderheiten des formularbasierten größeres Problem.Ansatzes hinsichtlich des gezeigten Wireframe der An- Die hierarchische Struktur der Anwendung, sichtbarwendung. in der Navigationsleiste, wird deklarativ definiert. Hier Eclipse RCP verwendet das systemnahe SWT. Vorteil findet die Zuordnung von Views und Controllern zuist das betriebssystemnahe Aussehen der Anwendung. einem Menüpunkt oder einem Prozessschritt statt undNachteile sind die schwierigere Anpassbarkeit und bildet den Kern einer Riena-Applikation.der sehr kleine Markt an Zusatzkomponenten. Kom- Das vorgestellte Wireframe lässt sich mit Riena al-plexere Controls sind oft nur über das Nebula-Projekt lerdings nicht 1:1 umsetzen, da das Framework einverfügbar. Allerdings haben diese oft noch keine Pro- eigenes GUI-Konzept verfolgt. Die vorgestellte An-duktionsreife. Der Tool-Support ist mit dem neuerdings wendungsstruktur findet sich aber wieder: Wir erläu-kostenlos verfügbaren Google Window Builder exzel- tern das genauer im Kasten „Riena-UI-Konzept“. Daswww.JAXenter.de © Software & Support Verlag GmbH javamagazin 8 | 2011 3
    • Sonderdruck Vorhandene ergänzen. So findet man in den SwingLabs von Sun beispielsweise Kalenderkomponenten oder den später erwähnten JXLayer zur besseren Dar- stellung von Fehlern bei der Datenein- gabe. Durch die Möglichkeit, das Look and Feel einer Swing-Applikation aus- tauschen zu können, kann das Aussehen des Programms eigenen Wünschen ange- passt werden. Mittels des Nodes und des Explorer API ist es einfach, strukturierte Daten in Komponenten wie Tabellen, Bäume oder Property-Editoren darzustellen, sie in der Darstellung zu manipulieren und Aktionen oder Kontextmenüs damit zu verknüpfen. Swing stellte uns u. a. mit dem GroupLayout alles Notwendige zur Verfügung, um das Wireframe in Abb. 2: Demoapplikation mit Eclipse RCP (die NetBeans-RCP-Applikation sieht ähnlich aus) unserer Applikation umzusetzen. Das GroupLayout ist ein Layoutmanager, der Aussehen (Farben, Fonts, Bilder etc.) einer Riena-An- seit Java 6 im JDK vorhanden und für die Darstellung wendung kann relativ einfach angepasst werden. Auch unserer formularbasierten GUI bestens geeignet ist. ist es möglich, für einige Teile der Navigation eigene Renderer einzusetzen. Eine Demoapplikation mit Rie- GUI-Steuerung der Plattformen na ist in Abbildung 3 zu sehen. In diesem Abschnitt wollen wir uns mit den Kernpunk- Mit Swing als Grundlage von NetBeans RCP ist ten der oben umrissenen Versicherungsanwendung be- es für jeden JSE-Entwickler einfach, die geforderten fassen. Wie können die Frameworks den Entwickler bei GUIs umzusetzen. Der GUI Builder Matisse ist Teil der der Umsetzung und Visualisierung der Geschäftsprozes- NetBeans IDE und intuitiv bedienbar. Für Swing gibt se unterstützen? es einen breiten Markt an kommerziellen und nicht Zum einen beschäftigt uns hier, wie man bestimm- kommerziellen GUI-Komponenten und Tools, die das te Elemente eines Formulars (Knöpfe, Eingabefelder Eigenschaften von Rich-Client-Frameworks Ein RCP-Framework besteht aus einer Vielzahl von Komponen- Das kann programmatisch oder durch den Benutzer getriggert ten, die zum Teil in unserer Versicherungsapplikation verwendet werden. Bei NetBeans RCP wird es über das Auto Update Ser- wurden. Diese lassen sich wie folgt klassifizieren. vice API und bei Eclipse RCP bzw. Riena über P2 durchgeführt. User Interface Management Data Binding Die Frameworks bieten komfortable Möglichkeiten wie Fenster, Das Data Binding dient zur Synchronisierung von Datenmodel Editoren, Menüs, Werkzeugleisten, Statusbars etc., um sowohl und GUI. Es sorgt dafür, dass die Werte eines Modells in den einfache als auch aufwendige GUIs zu programmieren. verknüpften GUI-Elementen angezeigt und Änderungen aus den Modulsystem GUI-Elementen in das Modell transferiert werden. Dabei können die Daten konvertiert und validiert werden. Alle drei Plattformen benutzen OSGi als Modulsystem (NetBeans bietet zusätzlich noch ein einfacheres, eigenes System an). Mithilfe Hilfesystem des Modulsystems ist es für die Versicherung möglich, Teilapplika- Das Hilfesystem bietet dem Benutzer die Möglichkeit, kontext- tionen je nach Bedarf an die entsprechenden Mitarbeiter auszulie- sensitive Hilfeseiten aufzurufen. fern. So bekommt die Haftpflichtabteilung das Modul für die Scha- Internationalisierung densregulierung, aber nicht das Modul für die Krankenversicherung. Die Frameworks bieten Methoden zum automatischen Einbin- Updatemanager den von sprachabhängigen Ressourcen in der GUI und dem Ein Updatemanager erlaubt der Applikation, sich mit einem Hilfesystem. Updateserver zu verbinden und Programmteile auszutauschen.4 javamagazin 8 | 2011 © Software & Support Verlag GmbH www.JAXenter.de
    • Sonderdrucketc.) aufgrund von Regeln (beispielsweisefachliche oder technische Validierungen)markiert, ein- oder ausblendet. Zum an-deren wird hier thematisiert, wie man dengeforderten Prozess visualisiert und wieman zwischen einzelnen Prozessschrittenwechselt oder Prozessschritte ein- oderausblendet. Um einen Geschäftsprozess für unsereArt der Anwendung abzubilden, liefert Ec-lipse RCP von Hause aus keine Vorgaben.Eine Möglichkeit, die von uns bereits inProjekten eingesetzt wurde, ist der FormE-ditor, der in der Eclipse IDE für die Proper-ty-Editoren verwendet wird. Hier könneneinzelne Prozessschritte als Tabs unterhalbdes Eingabebereichs dargestellt werden.Da diese Lösung allerdings die Basis in deneher statisch angelegten Property-Editorenhat, ist das Verstecken und nachträglicheHinzufügen eines Tabs nicht trivial. Hatman allerdings lediglich die Anforderung, Abb. 3: Demoapplikation mit Rienadass die Tab-Leiste statisch sein soll, stelltder FormEditor eine perfekte Lösung dar. unsere Anforderungen mit etwas Handarbeit in die- Alle offenen Geschäftsvorfälle zeigt Eclipse RCP als sem Bereich umsetzbar sind. Die Herkunft von EclipseReiter oberhalb des Eingabebereichs an. Der Benutzer RCP als IDE-Framework merkt man allerdings rechtkann so schnell zwischen ihnen wechseln. deutlich. Eclipse RCP bietet ebenso wie die beiden anderen Alle in der Einleitung genannten Punkte sind in RienaRCP-Frameworks ein Data Binding. Dieses sorgt nicht umsetzbar. Wie bereits im vorherigen Kapitel erläutert,nur für ein komfortables Verknüpfen von Modell und geht Riena hier aber eigene Wege [4]. Im Kasten „DasFormularelementen. Mit einer eigenen kleinen Erweite- Riena-UI-Konzept“ gehen wir auch schon auf einigerung wurde diese Funktionalität auch für das Steuern Punkte der Prozesssteuerung ein.der GUI-Interaktion verwendet. Bei Zustandsänderun- Das Ein- und Ausblenden bzw. Deaktivieren einesgen in unserem Modell, beispielsweise dem Setzen eines Prozessschritts wird in Riena weitgehend deklarativbestimmten Werts, wurden je nach fachlicher Anforde- über UIFilter erledigt. Dies kann für Neulinge fehler-rung GUI Controls ein- oder ausgeschaltet. anfällig sein. Es besteht aber auch der programmatische Knöpfe und Menüpunkte werden über das so ge- Weg, der etwas umständlicher wirkt. Für den Einstieg,nannte Command API angebunden. Das Command um einen Überblick über die Konzepte zu bekommen,API sieht im Kern eine deklarative Herangehensweise ist dieser Weg allerdings empfehlenswert. Die mitgelie-für die Verwaltung des Status (sichtbar, anklickbar etc.) ferten Beispielanwendungen bieten hier umfangreichevor. Im Kontext der Eclipse IDE ist es sicherlich der und gute Vorlagen.richtige Weg, um eine Nutzerinteraktion in verschiede- Fehlerzustände können ebenfalls deklarativ oder abernen Kontexten (z. B. Java Perspective, Debugging Per- direkt am Ridget über Data Binding definiert werden.spective) zu handhaben. In unserer Art der Anwendung Das Data Binding entspricht im Kern dem von Eclipsefanden wir diese Herangehensweise zu aufwändig, uns RCP, gebunden wird hier allerdings das Ridget. Die Dar-fehlt eine programmatische Alternative. Über das Com- stellung des Eingabebereichs selber ähnelt den NetBeans-mand API können auch deklarativ einzelnen Befehlen und Eclipse-RCP-Lösungen, die StandarddekorationenTastaturkürzel zugewiesen werden. Eclipse RCP bietet sehen allerdings etwas moderner aus. Fehlerzuständefür die so zugewiesenen Kürzel direkt eine Übersicht an. werden auch in der Navigationsleiste angedeutet.Falls man es zulässt, sind diese Zuordnungen auch vom Das Einbinden von Tastaturkommandos folgt demBenutzer änderbar. Prinzip von Eclipse RCP. Riena bringt aber noch eigene Für die Navigation zwischen einzelnen Reitern und Commands zur Steuerung der Navigation mit.Tabs liefert Eclipse ebenso Commands mit. Verwendet Abschließend sei noch gesagt, dass es dem Entwicklerman diese, sind die aus der Eclipse IDE bekannten GUI natürlich immer freisteht, neben den Riena APIs auch dieWidgets zum Navigieren zwischen Reitern und Tabs Eclipse RCP APIs zu benutzen, es handelt sich schließ-direkt benutzbar. Unterm Strich kann man sagen, dass lich um eine Eclipse-RCP-Anwendung. Das Ändern derwww.JAXenter.de © Software & Support Verlag GmbH javamagazin 8 | 2011 5
    • Sonderdruck Gegensatz zu Eclipse RCP war das Handling der MultiViews leider in internen NetBeans-Klassen gekap- selt, sodass es keinen Weg gab, das Ein- und Ausblenden von einzelnen Views nachträglich hinzuzufügen. Somit mussten wir die einzelnen Pro- zessschritte mit Swing-Mitteln abbil- den. Jeder Prozessschritt entsprach einem Tab in einer JTabbedPane. Das führte zu Mehraufwand, da das Handling selbst programmiert wer- den musste. Das Data Binding musste ebenfalls, wie im Eclipse-Abschnitt beschrieben, Abb. 4: Riena-UI-Konzept mit der Möglichkeit ergänzt werden, bei Zustandsänderungen im modell- beschriebenen Struktur kann aber größeren Aufwand eigenen Programmcode, wie das Aktivieren oder Deakti- nach sich ziehen (Abb. 4). vieren von Formularelementen, auszuführen. Ansonsten Ähnlich wie bei Eclipse RCP gibt es bei NetBeans reicht die angebotene Funktionalität des Bindings aus. RCP keinen durchgängigen Weg, um unsere Anforde- Bei der visuellen Manipulation von Formularelementen rungen zu erreichen. Bei NetBeans RCP benutzt man hat man alle Freiheiten von Swing. Um Validierungser- für die Applikationen eine TopComponent aus dem gebnisse an Formularelementen zu bekommen, mussten Windows-System-API. Dieses erlaubt ein komfortables wir auf den JXLayer aus den SwingLabs-Projekten [6] Fenster-Handling, das für unsere Ansprüche ausrei- zurückgreifen. Dadurch war es uns möglich, Fehlermar- chend war. Mit den TopComponents ist es möglich, ker direkt an einem Formularelement anzuzeigen. Bei mehrere Geschäftsvorfälle in der Applikation gleichzei- NetBeans RCP war deutlich mehr Handarbeit notwen- tig und unabhängig voneinander zu bearbeiten. Um in- dig als bei Eclipse RCP. nerhalb einer TopComponent einzelne Prozessschritte Tastaturkommandos, das Klicken in Toolbars, Pop- abbilden zu können, kann man die MultiViews benut- up-Menüs, Knöpfen oder Menüpunkten werden in der zen. Leider war es bei diesen Views aber nicht möglich, NetBeans RCP mit Actions aus dem Action API behan- einzelne Views programmatisch (je nach fachlichen delt. Das Action API erweitert das bekannte Swing-Ac- Anforderungen) ein- bzw. auszublenden. Wird das tion-Framework und verknüpft deklarativ pro Modul nicht verlangt, sind MultiViews die richtige Wahl. Im die Interaktion mit ausführbarem Code. Es sorgt dafür, dass beispielsweise Menüpunkte in einem Menü er- scheinen, wenn das entsprechende Modul gestartet ist. Riena-UI-Konzept Wie bei vielen Dingen in der NetBeans IDE, wird der Programmierer gut durch Wizards bei der Deklaration Um dem Benutzer das sonst eher technische Verhalten einer unterstützt. RCP-Anwendung zu ersparen, verfolgt Riena beim UI-Konzept einen eigenen Weg, der den Aufbau der Applikation fest- Fazit schreibt. Der aktuelle Programmteil (Application) wird immer Eclipse RCP ist der bekannteste und verbreitetste Ver- als Reiter oberhalb des Formulars dargestellt. Darunter treter unseres Vergleichsartikels. Das Framework befindet sich die Menüleiste. Am linken Rand ist die nicht ermöglicht große Freiheiten bei der Gestaltung der ge- versteckbare Navigationsleiste positioniert. Der Eingabebe- wünschten Applikation. Viele, oft auch kommerzielle reich befindet sich rechts. Die Prozessstruktur wird ähnlich Produkte nutzen Eclipse RCP als Basis. Das zeigt nicht wie ein Wizard dargestellt, Riena zeigt immer nur einen nur, dass ein breites Vertrauen in die Fähigkeiten der aktiven Eingabebereich an. Der Wechsel zu einem anderen Plattform existiert, sondern auch, dass Eclipse RCP pra- Prozessschritt erfolgt entweder programmatisch über das xiserprobt und sehr stabil ist. Auch ist für Eclipse RCP Navigations-API oder manuell über die Navigationsleiste. Die im Vergleich mit den anderen beiden Frameworks deut- aus Eclipse und NetBeans bekannte Möglichkeit, mehrere lich mehr Dokumentation verfügbar, sei es im Web [7], Editoren gleichzeitig darzustellen, fehlt bewusst. Auf Tabs in Newsgroups oder in Form von Büchern. und Reiter verzichtet Riena. Die Navigationsleiste bildet den Das Vertrauen in die Plattform ist unserer Meinung Kern der Applikation und zeigt sowohl die Geschäftsvorfälle nach völlig gerechtfertigt, allerdings erkauft man sich als auch die einzelnen Schritte eines Geschäftsvorfalls an. mit der Flexibilität speziell im Hinblick auf die „nor- male“ Businessanwendung auch einige Nachteile. Der6 javamagazin 8 | 2011 © Software & Support Verlag GmbH www.JAXenter.de
    • SonderdruckEinstieg in Eclipse RCP ist recht mühsam und einige deutlich weniger Dokumentation als beim Hauptkon-Konzepte wollen nicht so recht in die von uns beschrie- kurrenten, aber genügend, um sich in die APIs einzuar-bene Anwendungsklasse hineinpassen. Auch die The- beiten. Es gibt Produkte auf Basis von NetBeans RCP,men Testen und Continuous Integration sind nach wie allerdings sind uns nur wenige bekannt. Die Communityvor nur unhandlich zu lösen. Maven Tycho verspricht ist vergleichsweise klein, die NetBeans-Kernentwicklerhier Besserung. Alles in allem stellt Eclipse RCP aber das sind aber sehr auskunftsfreudig. Einen großen VorteilReferenzframework im Bereich Rich Clients dar und ist sehen wir in der Verwendung von Swing als Widgetden Anforderungen an eine moderne formularbasierte Toolkit in der NetBeans-Plattform. Swing ist besser er-Anwendung gewachsen. weiterbar als SWT, es gibt mehr kommerzielle und nicht kommerzielle GUI-Komponenten und man bekommt mehr Hilfe im Netz, weil es mehr Entwickler gibt, die sich mit Swing auskennen. Googelt man „Rich Client Eclipse RCP ermöglicht Platform”, bekommt man auf den ersten Ergebnisseiten (fast) ausschließlich Links auf Eclipse RCP. Unverständ- große Freiheiten bei lich, warum Oracle Eclipse das Feld mehr oder weniger kampflos überlässt. der Gestaltung der Alle drei vorgestellten Frameworks haben ihre indi- viduellen Stärken und Schwächen, sie sind aber alle- gewünschten Applikation. samt für den Einsatz im Businessumfeld geeignet und können von uns empfohlen werden. Das wichtigste Entscheidungskriterium bei der Wahl sind allerdings Die oben beschriebenen Schwachpunkte von Eclipse die Projektrahmenbedingungen. Wir hoffen, dassRCP greift nun Eclipse Riena auf. Es geht speziell bei der unsere Erfahrungen eine Entscheidungshilfe für IhrBenutzerführung einen recht eigenen Weg, der aber lei- Projekt bietet, das passende Rich Client Frameworkder nicht für jedes Projekt passen wird. Dieses Konzept auszuwählen.wurde laut Aussagen aus dem Riena-Team für eine In-House-Applikation eines Finanzdienstleisters entwickeltund ist somit auch praxiserprobt. Mit dem Ridget-Konzept und des Navigations-APIbietet Riena richtig gute Lösungen für formularbasierteApplikationen. In den beiden anderen Frameworks istman gezwungen, einiges hiervon selber zu entwickeln, Holger Grosse-Plankermann (h.grosse-plankermann@iks-gmbh. com), Diplominformatiker, ist als IT-Berater bei der iks Gesellschaftwenn man vergleichbaren Komfort und Leistungsfä- für Informations- und Kommunikationssysteme mbH tätig. Er be-higkeit erhalten möchte. Die GUI weitestgehend über schäftigt sich seit vielen Jahren mit verteilten JEE-Systemen, Web-Controller-Tests zu testen und auf GUI-Testtools wie 2.0-Technologien sowie Rich-Client-Architekturen.SWTBot zu verzichten, ist speziell im Headless Build ein Jörg Meister (jm@joergmeister.de) arbeitet seit vielen Jahren alsriesiger Vorteil. Zudem sieht eine Riena-Applikation freiberuflicher Softwareentwickler und Berater. Seine Schwerpunk-out of the Box schon sehr schick aus. te sind Rich-Client-Architekturen und JEE-Systeme. Die Dokumentation ist weniger umfangreich als beiEclipse RCP [4], [8], aber die bereitgestellten Snippets[5] geben die Fähigkeiten des Frameworks sehr gut wie- Links & Literaturder. Allerdings sollte man bereits grundlegende Eclipse-RCP-Kenntnisse haben, um mit Eclipse Riena zu starten. [1] Eclipse RCP: http://www.eclipse.org/home/categories/rcp.phpFalls Riena nicht zum Projekt passen sollte und Eclipse [2] Eclipse Riena: http://www.eclipse.org/riena/RCP erste Wahl ist, kann man immer noch Teile von Ri- [3] NetBeans RCP: http://netbeans.org/features/platform/ena verwenden. Unsere Empfehlung ist, sich speziell das [4] Eclipse Riena Getting Started: http://wiki.eclipse.org/Riena_Getting_Ridget-Konzept anzuschauen, um Themen wie Control- startedler-Tests und das MVC Pattern elegant umzusetzen. [5] Eclipse Riena Snippets: http://wiki.eclipse.org/Riena_Snippets Ebenso wie bei der Eclipse-RC-Plattform ist die Einar-beitung in NetBeans RCP aufwändig. Auch passen man- [6] SwingLabs: http://swinglabs.org/index.jspche Konzepte der Plattform nicht zu den Anforderungen [7] Eclipse RCP Tutorial: http://www.vogella.de/articles/EclipseRCP/article.unserer Versicherungsapplikation. Das NetBeans RCP htmlFramework ist eine konkurrenzfähige RC-Plattform und [8] Eclipse Riena Tutorial: http://www.ralfebert.de/blog/eclipsercp/riena_bietet, wie die beiden Konkurrenten, alles, was das Herz tutorial/eines RC-Entwicklers erfreut. Die ausgefeilten Konzepte [9] NetBeans Platform Learning Trail: http://netbeans.org/features/von Riena kennt es allerdings nicht. Im Netz findet man platform/all-docs.htmlwww.JAXenter.de © Software & Support Verlag GmbH javamagazin 8 | 2011 7
    • Sonderdruck Notizen: Individuelle IT-Konzepte und Softwarelösungen Softwareentwicklung IT-Beratung IT-Konzepte Business Intelligence iks Gesellschaft für Informations- und Kommunikationssysteme mbH Siemensstraße 27 40721 Hilden Telefon 0 21 03 - 58 72 -0 Telefax 0 21 03 - 58 72 -58 info@iks-gmbh.com www.iks-gmbh.com s ik Gesellschaft für Informations- und Kommunikationssysteme mbH8 javamagazin 8 | 2011 © Software & Support Verlag GmbH