© DrHitch/Shutterstock.com
Xtend beyond Java

4 Xtext und Xtend als Basis von mobaDSL


In den ersten zwei Kapiteln habe ich gezeigt, wie der Einsatz einer DSL zur Beschreibung von DTOs die Programmentwicklung beschleunigt. Jetzt gehen wir einen Schritt weiter mit einer neuen DSL: mobaDSL (Mobile Business Application DSL).

Während der letzten EclipseCon Europe habe ich mit Florian Pirchner, dem Entwickler der bisher genutzten DTO-DSL, ausdiskutiert, wie denn eine DSL für mobile Business-Apps idealerweise auszusehen hätte. Das Resultat gibt es jetzt als neues Open-Source-Projekt: mobaDSL.

mobaDSL geht weit über das bisherige hinaus und wird es ermöglichen, mehr Code zu generieren als bisher. Ein mobaDSL-Projekt besteht aus Applications, wobei eine Application entweder eine UI Application oder eine Background Application sein kann. Background Applications sind beispielsweise Android-Services oder BlackBerry-10-Headless-Apps. Background Applications werden üblicherweise durch ein Ereignis getriggert: Geofencing, Push-Service, Device-gestartet, APP-gestartet, SMS oder einer eingetroffenen E-Mail.

Je nach Kundenanforderungen oder Use Cases greift eine mobile App auf Sensoren zu, nutzt Bluetooth oder NFC. Was macht man meist? Aus ähnlichen Apps, die man schon entwickelt hat, werden entsprechende Controllerklassen kopiert oder Codefragmente eingebaut. Einer Application können daher ein oder mehrere Module zugeordnet werden, wie Bluetooth, NFC und Push. Diese Module können noch durch Parameter spezifiziert werden – beispielsweise Bluetooth LE oder SPP. Dann ist es für den Generator einfach, die entsprechenden Patterns umzusetzen und den zugehörigen Code zu generieren. Abbildung 4.1 gibt eine Übersicht über ein mobaDSL-Projekt.

gentz_mobadsl_1.jpg

Abbildung 4.1: mobaDSL-Projekte

Betrachten wir nun eine mobaDSL Application genauer. In einer Application können modelliert werden:

  • Entities – werden persistiert (gecached)
  • Settings als Spezialfall einer Entity
  • DTOs (Datentransfer Objekte) wie bisher
  • Offlinecache – JSON oder SQLite, verschiedene Cache Policies möglich
  • Server mit REST-Services sowohl klassisch für CRUD als auch Custom-Services
  • Services mit speziellen DTOs für Request, Response und Error
  • Workflow – die Zusammenfassung von mehreren Services, die in einer bestimmten Reihenfolge abgearbeitet werden müssen
  • Queue – die Warteschlangenverarbeitung aller Serveranfragen

Abbildung 4.2 zeigt dies im Überblick.

gentz_mobadsl_2.jpg

Abbildung 4.2: mobaDSL Applications

Wir sehen also, dass mobaDSL alle wichtigen Bereiche einer mobilen Business-App abdeckt. Aber bitte nicht vergessen: mobaDSL...

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