© DrHitch/Shutterstock.com
Xtend beyond Java

5 Das Konzept der mobaDSL


In Zusammenarbeit mit Ekkehard Gentz haben wir, Klemens Edler und Florian Pirchner, eine DSL für Mobile-Business-Applikationen entwickelt, mit der sich Generatoren erstellen lassen: die mobaDSL. Einige der grundlegenden Konzepte werden in diesem Kapitel beschrieben.

Begonnen hat das gemeinsame Projekt von Ekkehard Gentz, Klemens Edler und mir damit, dass Ekke eine großartige Idee in Bezug auf seine Offline-Mobile-Apps hatte. Er wollte auf Basis der DTO-DSL (DataTransferObject) einen Generator für seine Applikationen bauen. Einige Wochen später hatte sich dieser Ansatz in Ekkes Kundenprojekten bewährt, und wir starteten gemeinsam damit, eine eigene DSL als Ersatz der DTO-DSL zu entwickeln. Ekke brachte den fachlichen Input ein und wir beide entwickelten eine DSL. Folgende Anforderungen stellten wir an uns selbst:

  • Die Grammar muss intuitiv sein.
  • Die DSL muss einfach zu bedienen sein.
  • Die DSL muss „extendable“ sein.
  • Die DSL muss später im Web laufen können.
  • Die Generatoren müssen sich erweitern lassen.
  • Mit der DSL muss sich ein OSGi Server mit REST-Services generieren lassen.
  • Auch Nicht-Eclipse-Experten müssen neue Generatoren schreiben können.
  • Templates können automatisch aus dem Internet geladen werden.
  • Wir verwenden erst einmal kein Xbase, da Qt-Code erzeugt wird.

Mit diesen Ideen starteten wir. Das Ergebnis sehen Sie in Abbildung 5.1.

pirchner_mobadsl_1.jpg

Abbildung 5.1: Die Bundles der mobaDSL

Die Grammar und das semantische Modell

Wie bereits erwähnt, verwendet die Grammar derzeit kein Xbase, um Java-Code zu erzeugen. Zu einem späteren Zeitpunkt, wenn der OSGi-REST-Server generiert werden soll, wird Xbase-Support möglicherweise hinzugefügt. Die moba Grammar liegt im Bundle org.mobaDSL.grammar. Um die Konzepte der Grammar zu verstehen, reicht Basis-Xtext-Wissen aus. Denn auf komplexe Operationen wurde verzichtet, und das Scoping ist so einfach wie möglich umgesetzt. Dafür fügten wir Hilfsmethoden im semantischen EMF-Modell ein, um das Schreiben von Generatoren so einfach wie möglich zu gestalten. Außerdem verwendet die DSL keine Namespaces und keine Import Declarations, wie wir sie aus Xbase kennen. Stattdessen setzen wir auf ein Konzept der Templates.

Die Grundidee der Grammar ist, dass einem moba-Projekt eine UI- und eine Background-Applikation hinzugefügt werden kann. Die detaillierten Informationen befinden sich allerdings in den Applications selbst. Denn ein Problem bei Individualkundenprojekten ist, dass häufig Code kopiert wird. Um dieses zu verhindern, setzt die...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang