java-forum.org
JBoss Seam
Alter Preis: 39,95 €
Jetzt: 0,00 €

zzgl. Versandkosten

Zurück   java-forum.org > Java - Programmierung > Plattformprogrammierung

Plattformprogrammierung Eclipse RCP und Co.

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 09.02.2010, 01:18   #1 (permalink)
Stammbenutzer
Kilobyte
 
Registriert seit: 21.12.2006
Beiträge: 348
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
Standard RCP-Anwendung aus EMF erzeugen und vor allem danach modifizieren

Hallo,

wenn man mittels eines EMF-Modells eine komplexe RCP-Anwendung auf Basis von Eclipse erstellen will, wie geht man dann vor? Ich hab zwar ein Buch über EMF, aber da wird nix über RCP gesagt, und ein Buch über RCP, aber da wird nix über EMF gesagt.

Meine naive Vorstellung ist:

Man kann von EMF ja auch einen Editor für das Datenmodell erzeugen lasssen. Damit kann man das Modell grundsätzlich bearbeiten, aber diese Editor-Applikation entspricht ja bei weitem noch nicht der angepeilten, fertigen Anwendung. Dennoch ist das automatisierte Erzeugen von Editor für Baumstrukturen, Properties usw. natürlich enorm praktisch.

Man lässt sich also den Editor-Code erzeugen, hat damit ein Grundgerüst für die Anwendung, und bearbeitet diesen dann per Hand nach.

Oder wie?

Gruß+Danke
Jan
JanHH ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 09.02.2010, 20:19   #2 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Wildcard
 
Registriert seit: 10.11.2004
Beiträge: 18.752
Abgegebene Danke: 0
Erhielt 49 Danke für 48 Beiträge
Der EMF Editor ist sehr erweiterbar. Du kannst auch deinen eigenen Implementieren, wenn er dir nicht zusagt und trotzdem von EMF profitieren, da dir im generierten Edit Code schon ContentProvider, LabelProvider, Commands,... erstellt wurden. Damit ist es dann sehr einfach einen eigenen Editor umzusetzen.
Zusätzlich gibt es auch noch GMF um grafische Editoren zu generieren und XText für textuelle.
Eine schickere Properties View kann man sich mit wenigen Klicks mit EFF erzeugen.
Allen Ansätzen gemein ist, dass ausdrücklich erwünscht ist generierten Code mit händischem zu mischen. Versteh es allerdings nicht als initialen Generator und danach händisches weiterarbeiten.
Der Workflow ist üblicherweise:
-generieren
-customizen
-generieren
-weiter customizen...

Händische Änderungen bleiben dabei dank JMerge erhalten sofern man sich an die Doku hält. @generated NOT usw.
Wenn du nun daraus einen RCP haben möchtest, dann erstellst du mit Eclipse eine Product Definition, wählst die PlugIns/Features aus die enthalten sein soll, definierst Icon und Splashscreen und schon kannst du den RCP auf Knopfdruck bauen.
__________________
Take back the Desktop
Wildcard ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.02.2010, 05:35   #3 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 21.12.2006
Beiträge: 348
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
Danke für die Antwort. Es hat sich aber mal wieder herausgestellt, wie es so oft mit leistungsfähigen Frameworks ist.. man muss sich da erstmal ziemlich intensiv einarbeiten, in diesem Fall sogar in mindetens zwei (EMF und Eclipse RCP), und das dauert dann alles in allem sehr viel länger, als wenn ich die Sachen einfach per Hand selber programmiere. Es bringt einem wenig, wenn man weiss das die tollsten Sachen möglich sind, aber bevor sie das dann auch ganz praktisch sind, liegt die Lektüre eines oder mehrer Bücher mit 500 Seiten Dicke vor einem, noch dazu auf Englisch.

Zumal das Datenmodell in meiner Anwendung relativ simpel ist. Kann man in einer Stunde selber programmieren, und XML mittels JaxB ist auch schnell obendraufgesetzt.

Hab mich jetzt endgültig dafür entschieden, das Datenmodell selber zu schreiben, XML-konvertieren mit JaxB zu integrieren, Persistenz mittels JPA und alles nicht als RCP-Anwendung, sondern als seam-basierte Webanwendung. Das ist die beste und produktivste Variante.
JanHH ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.02.2010, 20:53   #4 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Wildcard
 
Registriert seit: 10.11.2004
Beiträge: 18.752
Abgegebene Danke: 0
Erhielt 49 Danke für 48 Beiträge
Wie du meinst, ich würde allerdings unabhängig von dieser Anwendung die Einarbeitung in EMF in Erwähgung ziehen, als Investition in die Zukunft...
Eclipse on my mind: Lessons learned about modeling
__________________
Take back the Desktop
Wildcard ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 12.02.2010, 04:01   #5 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 21.12.2006
Beiträge: 348
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
Ich finde EMF ja auch grundsätzlich schon gut. Es hängt wirklich von der konkreten Anwendung ab. EMF hat schon viel Overhead, den man erstmal lernen muss. Wenn man z.B. gar keine RCP-Editoren gebrauchen kann (weil man eine Webanwendung schreibt), ist z.B. JaxB deutlich einfacher, wenn es "nur" darum geht, aus Objekten XML zu machen und umgekehrt. Einarbeitung samt Ausprobieren 10 Minuten, ein paar Annotationen, vier Zeilen java-Code, fertig. Und bereits mit JaxB hat man schon viel produktiven Gewinn. Da EMF ja sicherlich noch deutlich mehr kann, kann ich mir schon vorstellen, dass man damit sehr gut effizient Anwendungen entwickeln kann. Aber um ein Projekt innerhalb weniger Tage fertigzustellen, ist der Einarbeitungsaufwand erstmal zu groß.
JanHH ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 12.02.2010, 09:46   #6 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Wildcard
 
Registriert seit: 10.11.2004
Beiträge: 18.752
Abgegebene Danke: 0
Erhielt 49 Danke für 48 Beiträge
Das gleiche bekommt man mit EMF aber auch. Mehr als 10 Minuten dauert es nicht ein Modell inklusive XML Repräsentierung zu erzeugen. Wahlweise wie bei JaxB aus Annotationen, per Ecore Editor, Grammatik, oder XML Schema. Also dabei sehe ich keinen großen Unterschied ausser, dass das EMF Modell deutlich besser als das JaxB Modell ist.
__________________
Take back the Desktop
Wildcard ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 12.02.2010, 13:38   #7 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 21.12.2006
Beiträge: 348
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
Aber die Einarbeitungszeit ist deutlich grösser, selbst für die einfachen Dinge muss man bei EMF mindesens ein oder zwei Stunden ansetzen, bei JaxB 10 Minuten! Ausserdem ist JaxB Java-Standard und steht überall funktionsfähig zur Verfügung; wenn man EMF hingegen ausserhalb von Eclipse einsetzen will, wirds zusätzlich bastelig, sofern es überhaupt funktioniert.. hab mal spasseshalber versucht, EMF in einer NetBeans-RCP-Anwendung einzusetzen, und das hat nicht geklappt (aus mir nicht erklärlichen Ursachen). Ausserdem ist JaxB nur ein "obendrauf" auf bestehende Klassen, EMF ist ein wesentlich tieferer Eingriff (eigene Objekt-Klassen, dieser ganze Kram mit E davor), und so weiter, und so fort.. naja man kann die beide im Grunde kaum vergleichen. Für "schnell und einfach XML-Funktionalität" kann JaxB die bessere Wahl sein.

Ist wohl eine ganz allgemeine Feststellung, man muss immer den Produktivitätsgewinn durch ein Framework abwiegen gegen den Aufwand, sich da einzuarbeiten. Je nach Situatipn ist mal das eine, mal das andere besser.
JanHH ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 13.02.2010, 11:11   #8 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Wildcard
 
Registriert seit: 10.11.2004
Beiträge: 18.752
Abgegebene Danke: 0
Erhielt 49 Danke für 48 Beiträge
Ich weiß nicht wo du das mit den Stunden hernimmst.
-Neue Ecore Datei anlegen
-Klassen und Properties eintragen
-Genmodel aus der Ecore anlegen
-Auf generieren drücken
fertig. Dauert 2 Minuten und ist unbestreitbar schneller als Java Interfaces anzulegen und Annotationen einzutragen.

Wenn das Schema schon da ist geht es noch schneller, per Wizard genmodel und ecore aus der XSD anlegen lassen (4 Klicks), generieren, fertig. Das generierte Modell ist um Klassen besser als das JaxB Modell.
EMF ist von Anfang an auf Standalone Betrieb ausgelegt und mit basteln hat das nichts zu tun.
Du brauchst ein paar Runtime Jars (im Bereich einiger KB, nicht mehr), wie bei JaxB auch bevor es ins JDK aufgenommen wurde, also auch hier kein Unterschied.
EMF ist nicht nur sehr viel mächtiger als JaxB, sondern auch Performance und Heap Optimiert.
Wenn es dir auf minimalen Heap ankommt, wirst du es schwer haben händisch ein Modell zu erstellen das weniger Memory Footprint hat als ein EMF Modell mit der Ultra-Slim-Diet.
JaxB Modelle können sich nicht selbst konsistent halten und enthalten keine Business Logik. Du musst diese Teile also alle noch selbst coden und umständlich an dein Modell anflanschen, während all das Bereits Teil von EMF ist.
Ein gutes Modell braucht fast immer eine Observer Schnittstelle. Mit JaxB musst du sie selbst implementieren (was keine triviale Aufgabe ist, da es einige Pitfalls zu beachten gibt).
Mit EMF bekommst du es geschenkt.

Query Support, Indexing, Model Repository, DB Persistenz, Diff Model, Match Model, Versionierung, Validierung, OCL Support, ...
Alles optionale EMF Komponenten die du geschenkt bekommst. JaxB hingegen erzeugt lediglich stumpfe Datencontainer die nichts mit einem echten Datenmodell gemein haben und klopft sie anschließend in XML...
__________________
Take back the Desktop
Wildcard ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 14.02.2010, 03:42   #9 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 21.12.2006
Beiträge: 348
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
Irgendwie berücksichtigst Du bei Deinen Zeitangaben allerdings nie die Zeit, die es für jemanden, der von all diesen Dingen absolut keine oder nur teilweise Ahnung hat, braucht, um sich erstmal einzuarbeiten. Wenn man all die von Dir erwähnten Features nutzen will, können da, wenn mans nur nebenbei macht, einige Wochen ins Land ziehen.

Und zu dem "kein Gebastel".. das hab ich ja gemacht, die paar runtime-jars meinem Netbeans-Projekt hinzugefügt, es liess ich auch kompilieren, aber es lief nicht.. und nu? Wenn da gemeckrt wird, es würden Klassen nicht gefunden werden, die man aber dennoch problemlos im Quellcode importieren konnte?

Ich gebe Dir schon grundsätzlich Recht dass EMF eine gute Sache ist und einem vieles abnimmt, aber man muss sich da auch erst einarbeiten, und das Projekt muss von Anfang an auf EMF ausgerichtet sein (bzw. EMF ist ja quasi der Kern des ganzen dann). Obs Sinn macht oder nicht hängt dann natürlich auch ganz stark davon ab, ob man in der Zukunft auch weitere Projekte haben wird, wo sowas wie EMF von Nutzen ist, und bei mir ist das vorraussichtlich nicht so.

Geändert von JanHH (14.02.2010 um 03:44 Uhr)
JanHH ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 16.02.2010, 23:09   #10 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Wildcard
 
Registriert seit: 10.11.2004
Beiträge: 18.752
Abgegebene Danke: 0
Erhielt 49 Danke für 48 Beiträge
Zitat: JanHH
Beitrag anzeigen
Irgendwie berücksichtigst Du bei Deinen Zeitangaben allerdings nie die Zeit, die es für jemanden, der von all diesen Dingen absolut keine oder nur teilweise Ahnung hat, braucht, um sich erstmal einzuarbeiten. Wenn man all die von Dir erwähnten Features nutzen will, können da, wenn mans nur nebenbei macht, einige Wochen ins Land ziehen.
Für die advanced Features wird Einarbeitungszeit benötigt, aber doch nicht für das was man mit JaxB erreichen kann. Da braucht man IMO mehr Einarbeitungszeit in JaxB.

Zitat: JanHH
Beitrag anzeigen
Und zu dem "kein Gebastel".. das hab ich ja gemacht, die paar runtime-jars meinem Netbeans-Projekt hinzugefügt, es liess ich auch kompilieren, aber es lief nicht.. und nu? Wenn da gemeckrt wird, es würden Klassen nicht gefunden werden, die man aber dennoch problemlos im Quellcode importieren konnte?
Hast du in die Doku geschaut? Dort steht welche Jars du brauchts.
EMF/FAQ - Eclipsepedia

Zitat: JanHH
Beitrag anzeigen
Ich gebe Dir schon grundsätzlich Recht dass EMF eine gute Sache ist und einem vieles abnimmt, aber man muss sich da auch erst einarbeiten, und das Projekt muss von Anfang an auf EMF ausgerichtet sein (bzw. EMF ist ja quasi der Kern des ganzen dann). .
Wenn du ein XML Binding mit JaxB machst, programmierst du gegen Interfaces. Diese Interfaces können exakt so in EMF übernommen werden, ausser das die EMF Klassen eben mehr können.
Wenn deine Anwendung also sauber aufgebaut ist, kann ihr egal sein welche Technolgie zum Einsatz kommt. Wenn die Migration funktioniert hat, kann man den angeflanschten Zusatzcode löschen den man bisher brauchte um das JaxB Modell sinnvoll benutzen zu können.

Zitat: JanHH
Beitrag anzeigen
Obs Sinn macht oder nicht hängt dann natürlich auch ganz stark davon ab, ob man in der Zukunft auch weitere Projekte haben wird, wo sowas wie EMF von Nutzen ist, und bei mir ist das vorraussichtlich nicht so
Nun, ich bin der Meinung das EMF für jede Java Anwendung von Nutzen ist.
__________________
Take back the Desktop
Wildcard ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 18.02.2010, 07:15   #11 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 21.12.2006
Beiträge: 348
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
Naja, keine Sorge, das Thema EMF ist für mich ja auch noch lange nicht abgehakt.. finds ja schon für sich faszinierend genug, um sich damit mal zu beschäftigen.

Dass es bei Netbeans nicht lief, hat wohl eher was mit der doch etwas eigenwilligen Konfiguration von Netbeans-RCP-Anwendungen zu tun. Die richtigen Jars waren auf jeden Fall dabei. Aber ist nun auch egal, das Thema Netbeans ist auch mal wieder abgehakt.

Wie siehts bei EMF eigentlich mit JPA-Persistenz aus?
JanHH ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 18.02.2010, 21:14   #12 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Wildcard
 
Registriert seit: 10.11.2004
Beiträge: 18.752
Abgegebene Danke: 0
Erhielt 49 Danke für 48 Beiträge
Zitat: JanHH
Beitrag anzeigen
Wie siehts bei EMF eigentlich mit JPA-Persistenz aus?
Alles vorhanden.
EMF/Teneo/EclipseLink JPA - Eclipsepedia
CDO Hibernate Store Model Relational Mapping - Eclipsepedia
__________________
Take back the Desktop
Wildcard ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort    

Lesezeichen

Latex Maths & Physics Editor ...

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
RCP Anwendung nicht weiterladen bei Exception in Plugin SegFault Plattformprogrammierung 2 22.12.2009 11:10
RCP Anwendung Neustarten und Argumente mitgeben Koringar Plattformprogrammierung 1 01.12.2009 11:09
JPA und Eclipse RCP Anwendung mit Fragmenten Saxony Datenbankprogrammierung 3 20.10.2009 10:21
Inkompatibilität meiner RCP Anwendung zwischen JAVA 1.5 & JAVA6 SaSa83 Plattformprogrammierung 2 08.04.2009 20:16
eclipse rcp + emf Allgemeine Java-Themen 13 24.10.2007 16:46


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de