ModuleStudio

Axel Guckelsberger edited this page Sep 20, 2018 · 30 revisions

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: 1.3.2 [VÖ 20.09.2018]
  • 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 von ModuleStudio

Support für Zikula 1.5 und 2.0

  • Symfony-basierte Modulstruktur
  • Verwendet neuere Core-Erweiterungen
  • Event-Listener
  • Hook-System
  • Thumbnail-Erstellung mit Imagine

Viele verschiedene Feldtypen

  • Boolean, Integer, Number (Decimal, Float)
  • String, Text, E-Mail, URL
  • User, Upload, Liste
  • Array, Objekt
  • Datetime (Date, Time)
  • BIC, Colour, Country, CreditCard, Currency, IBAN, ISBN, ISSN, Ip Address, Language, Locale, Password, Timezone, UUID, und viele mehr

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
  • Jede Menge Einstellungen in der Datenschicht

Extensions

  • Geographical mit HTML5 Geolocation und Leaflet
  • Loggable für Versionierung mit Historienansicht und Versionsvergleich
  • Sluggable für Permalinks inklusive korrekter Verarbeitung deutscher Umlaute
  • Sortable zum einfachen Sortieren per Drag n Drop
  • Translatable für übersetzbare bzw. mehrsprachige Inhalte
  • Tree für Baumstrukturen
  • Timestampable, Blameable und IpTraceable
  • Attribute, Kategorien, Standardfelder
  • Ajax-basiertes Umschalten von Schaltern (Boolean-Felder) per Mausklick
  • und und und

Verschiedene Ausgabeformate

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

Integration

  • Workflows, mit Mass Handling, Pending Content Listener, Moderationsblock plus -panel, Freigabefunktionen, E-Mail-Benachrichtigungen, automatischer Archivierung, usw.
  • Blöcke zur generischen Darstellung der Daten (Listenansicht, Detailansicht)
  • Content-Plugins zur Integration der Daten 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, Quill, Summernote und TinyMCE)
  • Support für das Tag-Modul und MultiHook-Needles
  • usw.

Links

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.