Definition
Builder definieren das Modell (-> Modell). Es gib eine menge unterschiedliche Builder, je nach Typ der in das Modell integriert werden soll.
In dieser Hierarchie ist das Modell und damit auch die Builder aufgebaut:
Modell
Layouts (Menü, Dashboard)
Class
Parameter
Pfade = Relationen
Layouts (Liste, Detail, Titel, Graph, …)
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
TODO Insert Code ClassBuilder
Abfolge
Das Modell wird in einer bestimmten Abfolge zu einer Applikation erstellt. Diese Abfolge ist hier in den Methoden zu sehen:
Add Classes
Add Properties
Add Paths
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. In der Abfolge der Erstellung und auch bei Klassen-Übergreifenden.
Code Pattern
Der Code ist als fluent API aufgebaut. Startend beim MetaModelBuilder
der vom Framework zur Verfügung gestellt wird. 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.
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 generiert.
Details siehe
Quino Standard Developer Docu zu Builder (Nur für Entwickler erreichbar)
(Alte API)
Wichtig?
Diese Dokumentation bezieht sich auf die Quino Versionen > 10. Um die Definition älterer Version wiederzuverwenden kann mit
.Configure()
auf die alte API zugegriffen werden.