Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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:

  1. Add Classes

  2. Add Properties

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

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.

  • No labels