Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Definition

Die Builder definieren das Modell (-> Domänen Metadaten-Modell). Es gibt unterschiedliche Builder, je nach Zweck, der in das Modell integriert werden soll.

In dieser Hierarchie ist das Modell und damit auch die Builder aufgebaut:

  • Modell

    • Application-Layouts (Menü, Dashboard)

    • Class

      • Parameter

      • Pfade = Relationen

      • Class-Layouts (Liste, Detail, Titel, Graph, Wizard …)

Der Ursprung ist das MetaModel das auch selbst einen Builder bestitzt, den MetaModelBuilder.

...

Der grundsätzliche MetaModelBuilder wird vom Quino Framework zur Verfügung gestellt. Ein Applikations-Entwickler erstellt dann eigene Builder auf der ersten Ebene darunter. Typischer weise für Klassen und Layouts je einen Builder.

Aufbau Builder

...

Abfolge

Das Modell wird in einer bestimmten Abfolge zu einer Applikation erstellt. Diese Abfolge ist hier in den Methoden zu sehen:

  1. Add Classes

  2. Add Paths

  3. Add Properties

...

  1. AddLayouts - wo dies benötigt wird

Kontext/Elements

Die Builder verwenden einen Kontext, der alle bisher definierten Elemente des Modells enthält. Es ist eine Hilfestellung um auf bereits definiertes zuzugreifen. Das hilft in der Abfolge der Erstellung und auch bei Klassen-Übergreifenden Definitionen, wie z.B. Relationen.

...

Um in der Applikations-Logik oder in den Buildern selbst mit dem Modell arbeiten zu können, erstellt der Generator konkrete C# Klassen. Alle Klassen des Modells sind dann auch als C# äquivalente verfügbar.

Die Idee ist in der Applikationsentwicklung ausschliesslich diese generierten Objekte zu verwenden. (Generell möglich ist auch ein Zugriff ohne die generierten Klassen, aber eben weit weniger komfortabel)

Sehen sie das zweite Projekt im Template TODO

Wenn es ausgeführt wird, werden C# Klassen aus der Modell-Definition generiertSiehe: Modell Generieren

Checkliste

Die Checkliste Modellierung hilft dabei einen einheitlichen Aufbau einzuhalten und wichtige Elemente nicht zu vergessen.

Details siehe

Page Tree
root@self
startDepth1

...