# Getting started



## manuche (6. Apr 2009)

Hallo,

ich wollte mich in das Thema RCP einarbeiten und bräuchte dringend Literatur zum nachlesen.
Kennt jemand von euch ein gutes Buch, das RCP (am besten mit eclipse) gut erklärt?
Dachte bis jetzt an "Einstieg in Eclipse 3.4" von Galileo Computing, da deren Bücher eigentlich immer Recht gut sind...
Ich bin natürlich offen für Vorschläge von erfahreneren RCP Programmierern 

Gruß manuche


----------



## Wildcard (6. Apr 2009)

Eclipse: Building Commercial-Quality Plug-ins (Eclipse (Addison-Wesley)): Eric Clayberg, Dan Rubel: Amazon.de: Englische Bücher
Eclipse erweitern: Eric Gamma, Kent Beck: Amazon.de: Bücher
Eigentlich genügt aber die riesige Eclipse Hilfe und das Netz.


----------



## manuche (6. Apr 2009)

Hey Danke! Den ersten Link kann ich aber leider nicht öffnen...
Wenn ich RCP richtig verstehe ist es doch eigentlich nur ein in Plug-in unterteiltes Programm welches beliebig weiterentwickelt werder kann oder?
Ich bin komplett neu auf dem Gebiet, deswegen bräuchte ich etwas, dass komplett bei Null anfängt... Im Netz findet man leider nur Sachen, die ein Gewisses Grundwissen schon vorraussetzen! Bis jetzt kommt mir RCP auf jeden Fall recht Komplex vor!
Mal so am Rande: Ich will mit RCP nicht etwas für eclipse entwicklen, sondern andere RCP-Anwendunge MIT eclipse programmieren... Falls das überhaupt einen Unterschied macht


----------



## Ebenius (7. Apr 2009)

manuche hat gesagt.:


> Den ersten Link kann ich aber leider nicht öffnen...


Sollte jetzt gehen. War ein "http://" zu viel.

Ebenius


----------



## Wildcard (7. Apr 2009)

Eine ganz klare Begriffabgrenzung zu treffen ist nicht möglich. Unter einem klassischen RCP versteht man equinox als OSGi Container + essentielle Teile der Workench (SWT, JFace, Extension Mechanismus, Eclipse Core, eben alles was im Eclipse RCP Feature enthalten ist) + deine Software und alles was du sonst noch gerne von Eclipse verwenden möchtest.
Allerdings musst du nicht das vordefinierte RCP Feature verwenden, sondern kannst belieb abspecken, bis du letztlich bei einer reinen OSGi basierten Anwendung bist, dann ist es wohl kein RCP mehr.



> Bis jetzt kommt mir RCP auf jeden Fall recht Komplex vor!


Das täuscht. Fang klein an, zB mit dem Hello World, oder Mail RCP und mach dich mit der Sache vertraut. Irgendwann musst du dich dann entscheiden welche Teile von Eclipse du verwenden möchtest und was du lieber auf andere Art lösen möchtest.


----------



## manuche (7. Apr 2009)

Wildcard hat gesagt.:


> Irgendwann musst du dich dann entscheiden welche Teile von Eclipse du verwenden möchtest und was du lieber auf andere Art lösen möchtest.


Na dann kann ich mich da ja ruhigen Gewissens ran wagen... In meinem Fall wird es darauf hinaus laufen, dass ich Anpassung für  Programme schreiben, welche schon eclipse RCP erweitern! Leider sind diese oft nur schlecht bzw nicht ausreichend dokumentiert, wie ich feststellen musste...


----------



## Wildcard (7. Apr 2009)

Man erweitert Eclipse RCP nicht wirklich.
Du musst dir das so vorstellen:
Die Basis bildet OSGi (Equinox). OSGi lädt Bundles (im Prinzip jars mit einer bestimmten Funktionalität). Jedes Eclipse PlugIn ist ein solches Bundle. Bundle brauchen andere Bundles um zu funktionieren (Dependencies).
All das hat erstmal noch nichts mit Eclipse zu tun, das ist nur das eigentliche Framework.

Die Entwicklungsumgebung mit der du arbeitest (also die Eclipse IDE) ist ein sog. Eclipse Product. Darunter versteht man das OSGi Framework + eine Eclipse Executable (der launcher) + eine von dir zusammengestellte Menge von Bundles die im OSGi Framework installiert werden.

Grob zur Begriffsabsteckung:
OSGi Bundle
 Ein Jar mit einem erweiterten Manifest, das in einem OSGi Framework läuft

Eclipse PlugIn
 Ein OSGi Bundle das zusätlich eine plugin.xml besitzt um Extension Points zu nutzen

Eclipse Feature
 Eine logische Gruppierung verschiedener PlugIns

Eclipse RCP
 ein von den Eclipse Entwicklern zurechtgeschnürtes Paket an PlugIns die üblicherweise in einer RCP Anwendung benötigt werden.

Eclipse Product
 Ein fertig gebautes Produkt anhand einer Product Definition. Die verschiedenen Pakete die du bei Eclipse runterladen kannst (Classic, J2EE,...) sind zB Eclipse Products.

Versteh es also nicht so, das man entweder ein Eclipse PlugIn schreibt, oder Eclipse RCP. Du schreibst in beiden Fällen PlugIns/Bundles. Nur die Art der Auslieferung macht den Unterschied.
Entweder du packst selbst zusammen was du für den Kunden als die richtige Konfiguration empfindest, oder du bietest deine Pakete (Plugins/Features) zum Download an um sie in irgendeinem Eclipse Product zu installieren (oder beides, natürlich).


----------



## manuche (8. Apr 2009)

Ok besten Dank für die Begriffsdefinitionen! Das war mir so im Detail jetzt nicht ganz klar...
In meinem Fall werde ich etwas für Xmind programmieren! So wie ich das mitbekommen hab setzt Xmind wohl mit eigenen EclipseFeatures auf Eclipse RCP auf... Also werde ich ein eclipse PlugIn schreiben, welches allerdings in voller Funktionsweise nur in Zusammenhang mit Xmind funktioniert!
Zumindest hab ich die sperliche Information aus dem Xmind Entwicklerforum, dass ich eine Extension für den ExtensionPoint org.eclipse.ui.exportWizards (oder so ähnlich) implementieren muss! Is das jetzt richtig so?  
Leider gibt es halt für die eclipseFeatures von Xmind kaum Dokumentation...


----------



## Wildcard (8. Apr 2009)

> Zumindest hab ich die sperliche Information aus dem Xmind Entwicklerforum, dass ich eine Extension für den ExtensionPoint org.eclipse.ui.exportWizards (oder so ähnlich) implementieren muss! Is das jetzt richtig so


Wenn du einen neuen Export Wizard willst, ja


> Leider gibt es halt für die eclipseFeatures von Xmind kaum Dokumentation...


Da kann ich dir nicht helfen


----------



## vogella (3. Mai 2009)

Online kannst Du Dir das folgende Eclipse RCP Tutorial anschauen: 

Eclipse RCP - Tutorial with Eclipse 3.4


----------



## dzim (4. Mai 2009)

Ich hab das erste von den Wildcard genannten Büchern auch hier - allerdings noch in der 2nd Editon.
Das ist für dein Einstieg anhand eines Beispiels, was über das gesamte Buch hin weiterentwickelt wird, recht versändlich durchgezogen worden.
Allerdings finde ich, das es in den späteren Kapiteln schon etwas zu sehr ausartet - aber lass dich davon nicht stören! Es hilft auf jeden Fall! (Vielleicht schaust du es dir in deinem Bücherladen des Vertrauens erst mal an, bevor du es kaufst)

Ansonsten hat mir in den Anfangszeiten auch sehr die Tutorial-Sammlung von Lars Vogel (siehe vorheriger Poster) geholfen. Auf jeden Fall anschauen.

Ich bin kein Fan von händischer GUI-gefrickelei, daher verwende ich für die GUI-Erstellung immer den SWT-/RCP-Designer von Instantiations. Allerdings war mein erster Versuch mit Version 7 nicht so erfolgreich, deswegen verwende ich noch die 6.9 - Wie dem auch sei: Es macht die Arbeit mit der GUI-Entwicklung etwas komfortabler, wenn man sich nicht darum kümmern muss, eine Liste o.ä. Pixelweise auf der Oberfläche hin und her zu schieben.


----------

