ModuleStudio

Axel Guckelsberger edited this page Feb 18, 2017 · 16 revisions
Clone this wiki locally

Das Modulestudio ist ein Tool zur modellgetriebenen Software Entwicklung (MDSD), mit dem spezifisch Erweiterungen für Zikula entwickelt werden können. Aus einem grafischen Modell wird dabei eine lauffähige Zikula-Anwendung generiert.

  • Aktuelle Version: 0.7.3 [VÖ 18.02.2017]
  • Plattformen: Windows, Linux, MacOS
  • Homepage: modulestudio.de

Modellgetriebene Software Entwicklung

Die Methode der modellgetriebenen Software Entwicklung will das Problem lösen, dass in verschiedenen Programmiersprachen immer wieder die gleichen Anwendungen geschrieben werden müssen. Stattdessen wird ein Modell der Anwendung erstellt - durch verschiedene Generatoren können aus dem Modell Anwendungen in verschiedenen Programmiersprachen erzeugt werden.

Zum anderen will die modellgetriebene Software Entwicklung durch domänenspezifische Sprachen leichter verständliche Modelle verwenden als zum Beispiel UML-Tools. Statt die universelle Modellierungssprache UML zu benutzen, wird der Wortschatz eines bestimmten Arbeitsfeldes ("Domäne") genutzt: in ModuleStudio ist das eine Sprache, die den Begrifflichkeiten in der Modul-Entwicklung entspricht: Da gibt es zum Beispiel Entitäten bzw. Datenbanktabellen, Felder oder Controller-Aktionen.

So bleiben die Modelle lange verständlich und aus einmal angefertigten Modellen lassen sich ohne Anpassung immer wieder funktionierende Module generieren, auch wenn sich zum Beispiel die Zikula-API ändert. Die Module bleiben leicht wart- und erweiterbar. Durch die Automatisierung lässt sich eine hohe Qualität des Codes gewährleisten.

Screenshot

Feature-Auszug der ModuleStudio Version 0.7.x

Support für Zikula 1.4

  • Objektorientierte Modulstruktur
  • Beinhaltet neuere Core-Erweiterungen
  • Core Event Listener
  • Neues Hook-System
  • Thumbnail-Erstellung mit Imagine

Viele verschiedene Feldtypen

  • Boolean, Integer, Decimal, Float
  • String, Text, Email, Url
  • User, Upload, List
  • Array, Object
  • BIC, Colour, Country, CreditCard, Currency, IBAN, ISBN, ISSN, Ip Address, Language, Locale, Password, Timezone, UUID, und viele mehr
  • Datetime, Date, Time

Support für Doctrine 2

  • Entitäten, Felder
  • Locking-Strategien, kombiniert mit dem PageLock-Modul
  • Unidirektionale und bidirektionale Assoziationen
  • Fetch Types und Kaskadierungsoptionen
  • Sortierte und indizierte Assoziationen
  • Aggregatsfelder, Composite Keys
  • Jede Menge neue Einstellungen in der Datenschicht

Extensions

  • Geographical mit HTML5 Geolocation und Mapstraction
  • Loggable, Sluggable, Sortable, Timestampable, SoftDeleteable
  • Translatable
  • Tree
  • Blameable und IpTraceable
  • Attribute, Kategorien, Standardfelder

Verschiedene Ausgabeformate

  • Normale Templates
  • Feeds (RSS und Atom)
  • CSV
  • XML
  • JSON
  • KML
  • ICS

Integration

  • Workflows, mit Mass Handling, Pending Content Listener, Moderationsblock plus -panel, usw.
  • Generischer Block zur Darstellung der Objekte
  • Content-Plugin zur Integration der Objekte in das CMS
  • Plugin für die Module Mailz und Newsletter (für Mailings)
  • Integration in Benutzerkonto und Suche
  • Scribite-Plugins (derzeit für CKEditor und TinyMCE)
  • Support für das Tag-Modul und MultiHook-Needles
  • usw.

Links