# Zusammenhang zwischen RCP und EMF



## hasenbrot (25. Aug 2012)

Mich interessiert, inwiefern zwischen Eclipse RCP (insbesondere e4) und dem EMF ein Zusammenhang besteht und ob man beide zusammen verwenden kann. 

Die Frage würde ich auch gerne auf andere Frameworks ausdehnen, z.B. auf Spring. Macht es überhaupt Sinn, Spring in RCP e4 zu verwenden, obwohl letzteres schon Dependency Injection bereitstellt?


----------



## Deception (26. Aug 2012)

Hey,
ich habe eine zeitlang mit RCP und GEF gearbeitet. In EMF habe ich mal reingeschaut, aber nie wirklich mit gearbeitet.
Da ich keine wirkliche Ahnung von RCP mit EMF habe, nur kurz zu Spring:
Spring finde ich in E4 nicht so sinnvoll. Das Bekannte an Spring ist das MVC-Framework und Dependency Injection. Eclipse RCP ist sowieso nach MVC konzipiert. Da kann Spring nicht viel besser machen. Da E4 auch noch DI mitbringt, würde ich auf Spring verzichten.
Spring bietet noch Aspektorientierte Programmierung. Aber das kann man auch über schlankere Frameworks reinholen oder lediglich Spring AOP benutzen. 
Beste Grüße,
Jens


----------



## Gast2 (27. Aug 2012)

hasenbrot hat gesagt.:


> Mich interessiert, inwiefern zwischen Eclipse RCP (insbesondere e4) und dem EMF ein Zusammenhang besteht und ob man beide zusammen verwenden kann.



Das Application Model von e4 basiert auf EMF, aber um das zu verwenden brauchst du keine EMF Kenntnisse, weil es eine GUI dafür gibt.

Was meinst du mit EMF und RCP zusammen verwenden?
EMF generiert Source Code und einiges davon ist speziell für den RCP ausgelegt. z.B. EMF Databinding, Table/Tree Provider, Undo/Redo support, EMF genriert dir sogar aus deinem Model einen ganzen RCP.

Dann gibt es auch noch EEF, welches dir aus deinem Ecore Model PropertyViews und Editoren generiert.
Musst genauer beschreiben was du genau vor hast...

In e4 macht Spring eigentlich weniger Sinn, da eigentlich alles vorhanden ist was du brauchst. Oder für was genau willst du Spring einsetzen. Welchen Vorteil erhoffst du dir?



Deception hat gesagt.:


> Eclipse RCP ist sowieso nach MVC konzipiert.



Wie kommst du darauf oder besser gesagt was meinst du genau?


----------



## hasenbrot (28. Aug 2012)

Danke für die Antworten.

Kann man also sagen, dass e4 RCP eine Untermenge des EMF darstellt oder würde man das EMF dazu nutzen, um ein RCP-Projekt mit generierten Modell-Klassen und anderer EMF-Funktionalität zu ergänzen? Soweit ich es richtig verstanden habe, verwendet man das EMF in verschiedenen Arten von Anwendungen, z.B. JSF, RAP usw. 

Ich erzeuge also in EMF ein plattformunabhängiges Daten- und UI-Modell, das ich dann entsprechend anpasse, um am Ende daraus z.B. eine JSP- oder RCP-Anwendung zu erstellen. Habe ich das richtig verstanden?


----------



## Gast2 (28. Aug 2012)

hasenbrot hat gesagt.:


> Kann man also sagen, dass e4 RCP eine Untermenge des EMF darstellt



Nein e4 benutzt EMF für das Application Model mehr nicht...



hasenbrot hat gesagt.:


> oder würde man das EMF dazu nutzen, um ein RCP-Projekt mit generierten Modell-Klassen und anderer EMF-Funktionalität zu ergänzen?


Du verwendest EMF um deine Model zu modellieren. Und EMF bringt dir gewissen Funkionalitäten auf Modelebene mit z.B. Undo/Redo Support, Notfication Framework usw.

Für den RCP bietet EMF eben noch ein paar mehr Features


hasenbrot hat gesagt.:


> Soweit ich es richtig verstanden habe, verwendet man das EMF in verschiedenen Arten von Anwendungen, z.B. JSF, RAP usw.


Dein Model sollte nie abhängig von irgendeiner Technologie sein...
Außerdem gibt es von EMF schon einige SubProjekte die bestimmte Probleme lösen z.B. für JPA usw.



hasenbrot hat gesagt.:


> Ich erzeuge also in EMF ein plattformunabhängiges Daten- und UI-Modell, das ich dann entsprechend anpasse, um am Ende daraus z.B. eine JSP- oder RCP-Anwendung zu erstellen. Habe ich das richtig verstanden?



Du willst aus deinem Daten Model eine spezielle GUI generieren lassen???
Von Haus bringt EMF, dass nur bedingt für RCP mit, aber die GUI sieht jetzt nicht so dolle aus, so dass du da schon von Hand selber anlegen willst.

Genereische Editoren oder PropertyViews kannst du mit EEF erstellen lassen. Aber auch da musst du Customize Sachen immer selber machen. Einfache UI Sachen (Stammdaten oder Daten eingen) kann sicher generieren lassen, aber ich halte wenig davon.

Für andere UI Frameworks JSF,Swing,JavaFX,GWT gibt es sicherlich nichts, musst selber mal googeln.
Aber du kannst mit JET oder xPand, xText usw. eigene Templates schreiben die dir dann z.B. eine JSF Gui rausgenerieren, aber wie gesagt ob man sowas will ist eine andere Frage.


----------



## hasenbrot (1. Sep 2012)

Es macht also Sinn, das EMF bei nahezu allen Java-Anwendungen zu verwenden?

Für Java gibt es eine große Menge Frameworks, so dass sich für mich die Frage stellt, welche davon jeder Java-Entwickler, unabhängig von der verwendeten Plattform, lernen sollte. Ich denke, Hibernate und das EMF wären gute Kandidaten.


----------



## Gast2 (1. Sep 2012)

hasenbrot hat gesagt.:


> Es macht also Sinn, das EMF bei nahezu allen Java-Anwendungen zu verwenden?
> 
> Für Java gibt es eine große Menge Frameworks, so dass sich für mich die Frage stellt, welche davon jeder Java-Entwickler, unabhängig von der verwendeten Plattform, lernen sollte. Ich denke, Hibernate und das EMF wären gute Kandidaten.



Sowas kann mir nie ohne die Anwendungsgebiete sagen... Wenn dann lernt man JPA und nicht eine Implementierung davon, weil im OSGi Umfeld wäre EclipseLink die bessere Wahl.
Aber da du anscheinend gerade auf EMF stehst, lässt es dir generieren z.B.
Texo - Eclipsepedia
oder
Teneo - Eclipsepedia 


Es gibt viele nützliche Frameworks, Pattern usw. das kannst du nicht pauschalisieren.
OSGi, DI, JPA etc.


----------

