© DrHitch/Shutterstock.com
Xtend beyond Java

1 DSLs mit Xtext, Sirius und Vaadin


Modellbasierte Technologien und domänenspezifische Programmiersprachen können die Entwicklung von Software entscheidend vereinfachen. Dieses Kapitel zeigt, wie auf diese Art vollständige Businessanwendungen schnell und sauber geschrieben werden können.

Wer kennt sie nicht, die nervenaufreibende Tätigkeit: „Schreibe und teste JPA-Entities“? Üblicherweise beinhaltet dies das seitenweise händische Coden von Benutzerschnittstellen samt mühsamem Nachziehen von Änderungen über das gesamte System, von der Persistenzschicht bis hin zum UI. Ernst zu nehmende Businesssoftware erfordert oft beträchtlichen Aufwand in Planung und Umsetzung. Doch mit den richtigen Werkzeugen kann die Aufgabe erleichtert und die Qualität des Ergebnisses verbessert werden.

Dieses Kapitel richtet sich an Entwickler im Businessumfeld, die auf der Suche nach eleganten Lösungen sind. Wir zeigen einige Ansätze, wie mithilfe modellbasierter Technologien und eigener domänenspezifischer Sprachen (Domain Specific Languages, DSLs) die Entwicklung von Businesssoftware wesentlich vereinfacht werden kann. Dabei behandeln wir vor allem die Erstellung von JPA-Entities und Data Transfer Objects mittels einer eigenen DSL sowie ECView, unser Framework zur modellbasierten UI-Definition. Diese Technologien kommen im Herzen des OSBP-Projekts [1] zum Einsatz, stehen aber auch anderen zur Verfügung.

Persistenz leicht gemacht mit der Entity-DSL

Das JPA (Java Persistence API) ist aus Enterprise-Anwendungen kaum mehr wegzudenken. Viele Java-Entwickler sind mit JPA und seinen Implementierungen bestens vertraut. Dennoch stellt die Erstellung und Wartung von JPA-Entities einen nicht zu vernachlässigenden Aufwand dar. Um die zahlreichen JPA Annotations richtig im Code zu platzieren, bedarf es eines guten Maßes an Erfahrung sowie hoher Konzentration, um die zahlreichen Fehlerquellen zu vermeiden.

Um diese noch dazu recht langweilige Arbeit an JPA-Entities zu vereinfachen, bietet sich die Verwendung einer DSL für Entities an. Mit EMF, Xtext und Sirius stehen Frameworks bereit, die es erlauben, die JPA-Entities auf eine wesentlich einfachere und übersichtlichere Art und Weise beschreiben, erstellen und den eigentlichen Java-Code mit allen erforderlichen Annotationen automatisch generieren zu können.

Die von uns geschriebene Entity-DSL erlaubt die Generierung von JPA-Code inklusive verschiedener Optionen für das Datenbankschema, versionierte bzw. zeitabhängige Einträge, Indizes, frei definierbare Datentypen, verschiedene Vererbungsstrategien u. v. m. Ein Beispiel dafür, wie Entities in wenigen Codezeilen definiert werden können, und um wie viel einfacher die Erstellung und Pflege von Entities mit der Entity-DSL wird, findet sich in Abbildung 1.1.

pirchner_dslmodeling_1.jpg

Abbildung 1.1: Aus den vier Zeilen „entity Order ext...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang