120 likes | 202 Views
Benjamin Meyer. EMF Texo Vorlesung – Modellgetriebene Softwareentwicklung Hochschule Karlsruhe – Technik und Wirtschaft. Agenda. Kurzer Ausblick auf nächste Woche: EMF Wann lohnt sich Texo? Einführung Texo Möglichkeiten mit Texo Vor- und Nachteile von Texo Live Präsentation Diskussion.
E N D
Benjamin Meyer EMF TexoVorlesung – ModellgetriebeneSoftwareentwicklungHochschule Karlsruhe – Technik und Wirtschaft
Agenda • Kurzer Ausblick auf nächste Woche: EMF • Wann lohnt sich Texo? • Einführung Texo • Möglichkeiten mit Texo • Vor- und Nachteile von Texo • Live Präsentation • Diskussion
Eclipse Modeling Framework (EMF) • Definition • Java-Framework zur automatisierten Generierung von Quelltext anhand von strukturierten Modellen • Vorgehensweise • EMF Modell kann aus XSD, annotierten Java-Interfaces oder aus UML Diagrammen (beste Lösung) generiert werden (Bsp.: MagicDraw) • Warum mit Modellen arbeiten? • Ein Modell ist eine Abstraktion, es bietet eine high-level Beschreibung von Objekten => Das Modell ist eine „lebendige“ und up to date Doku
EMF Metamodelle • Zwei Metamodelle • EMF basiert auf zwei Metamodelle: • das Ecore (Informationen über die def. Klassen) und • Genmodel Modell (zusätzliche Infos, Pfad usw.)
Wann lohnt sich Texo? • Zu aller erst braucht man ein Modell = xsd oder ecore • Wann lohnt sich Texo? Wenn man.. • Java Beans benötigt • ORM benötigt • Eine Web Rich Client UI integration mit • Einen XML/JSON Rest Web Service benötigt
Einführung Texo • Erfinder: Martin Taal (EMF Mitentwickler) • Lateinisch: errichten, bauen • MDD erweiterbare Technologie um verschiedene Artifakte durch Templates zu generieren • Templates für das Generieren der Artifakte • Xpand template engine für das Überschreiben oder Erweitern der generierten Artifakte • Texo selbst benutzt seit Oktober 2012 xtend2 aufgrund von performance Gründen
Möglichkeiten mit Texo • Code generieren • „True POJOs“ von Ecore Modell oder XSD • ORM/JPA generieren • JPA Annotationen im Sourcecode oder durch eine orm.xml • Generischen CRUD und Query Web Service Layer • JSON und XML • Laufzeitunterstützung • Auf Ecore Modelle wird zur Laufzeit zugegriffen • Automatisierung möglich mittels ANT, Java (makefile!)
Vor- und Nachteile von Texo • Vorteile: • POJO Java Beans • Keine Laufzeit/Kompilierungs- Abhängigkeiten von Texo • Keine spezifischen Annotationen • Keine Vererbung von Texo Klassen (im Gegensatz zur EMF Codegenerierung) • Code Formattierung und Code Zusammenführung (merge) • @generated und @generatedNOT • Überschreiben oder Erweitern der standart Templates • Einfache Einführung des Texo Frameworks • Gute Dokumentation, wenig Wissen nötig
Vor- und Nachteile von Texo • Nachteile: • Abhängigkeit von der Eclipse IDE bei der Generierung • Sprich für XML/JSON Rest Web Service: auf den Servern muss eine Eclipse Installation vorliegen • Wie so oft: Viel „Magie“ im Hintergrund • Kein richtiger Support (aber: Entwickler selbst ist sehr präsent im Forum)
Den POJOs ein Model-Gesicht „geben“ Output ist: