Versions Compared

Key

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

Definition

Die Builder definieren das Modell (-> 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.

Unterhalb dieser Hierarchie gibt es noch weitere detaillierte Builder. Das Pattern setzt sich fort.

Granularität

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

  4. 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.

Code Pattern

Der Code ist als Fluent-API aufgebaut. Allgemein kann man sagen:

  • Alle Methoden direkt auf dem Builder reichern das Modell auf der Hierarchiestufe des aktuellen Typ an.

  • .Add() fügt eine Hierarchiestufe detaillierter hinzu und gib den detaillierten Builder zurück.

Einbinden

Im Bootstrapping der Applikation werden die Builder hinzugefügt mit

.UseBuilder<>

Hier wird dann die Referenz zum MetaModelBuilder gesetzt.

Generieren

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.

Siehe: 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