Das "Mendix Domain Model" ist eine visuelle Darstellung der Datenstruktur der Anwendung.
Das Mendix-Projekt besteht aus "Modulen". Ein Modul ist eine Einheit, die die Funktionalität Ihres Projekts in einzelne Teile unterteilt. Standardmäßig finden Sie in Studio ein Modul namens "MyFirstModule".
Jedes Modul hat seine eigene Domäne(Daten), Modell. Es ist das Herzstück der Architektur Ihrer Anwendung.
Das Domänenmodell beschreibt die Informationen in Ihrer Anwendungsdomäne auf abstrakte Weise. Alle Module innerhalb eines Anwendungsprojekts können Daten aus allen Domänenmodellen innerhalb der Anwendung verwenden.
Das Mendix-Domänenmodell besteht aus Entitäten und deren Beziehungen zu anderen Entitäten, die durch Assoziationen dargestellt werden. Das Hinzufügen von Anmerkungen zu Ihrem Domänenmodell hilft Ihnen zu erklären, wie es verwendet werden soll.
Das Mendix-Domänenmodell basiert auf dem Klassendiagramm der UML. Es ermöglicht die Spezifikation der Entitäten (und ihrer Attribute) und Assoziationen. Das Konzept der 'Generalisierung' in Mendix ist genau dasselbe wie in UML. Die Notation zur Darstellung der Generalisierung ist jedoch anders (blaues Etikett über der Entität). Alle Abhängigkeiten zwischen den 2 Objekten müssen mit Hilfe von Ereignis-Mikroflüssen oder Löschverhalten/Verhinderung angegeben werden.
Das Mendix-Domänenmodell in Studio besteht aus:
- Entitäten
Entitäten stellen eine Klasse von Objekten der realen Welt dar. Beachten Sie, dass Entitätsnamen immer in der Einzahl stehen sollten, da die Entität der Bauplan des Objekts ist und nicht eine Liste von Objekten.
Entitäten haben Attribute, um sie zu beschreiben.
- Attribute
Attribute sind Merkmale, die die Entität beschreiben.
Eine Produkt-Entität beispielsweise hat in der Regel Attribute: Produktname, Menge und andere Informationen. Wenn wir eine Parallele zu Datenbanken ziehen, ist das Attribut eine Spalte.
- Vereinigungen
Eine Assoziation beschreibt eine Beziehung zwischen Entitäten. Im Domänenmodell wird eine Assoziation durch eine Linie zwischen zwei Entitäten dargestellt. Wenn wir eine Parallele zu Datenbanken ziehen, ist die Assoziation ein Fremdschlüssel.
Mögliche Assoziationen sind:
- Eins-zu-viele-Assoziation (1-*)
- Eins-zu-Eins-Assoziation (1-1)
- Referenz-Set (*-*)
- Anmerkung
Mit Hilfe von Annotationen können wir einem Domänenmodell Kommentare hinzufügen.
Diese finden Sie alle zusammen auf dem Bild unten:


Manchmal möchten Sie vielleicht Informationen zu einer Entität hinzufügen, die in einem anderen Modul verwendet wird, wie oben gezeigt (Entität "Konto" aus dem Modul "Verwaltung"), oder vielleicht ein Modul, das aus dem Mendix App Store importiert wird. Sie möchten die Entität nicht anpassen, da Sie sonst keine aktualisierten Versionen dieses Moduls erhalten. Es kann vorkommen, dass Sie zusätzliche Informationen zu einigen Objekten einer Entität hinzufügen möchten, zu anderen jedoch nicht.
In solchen Fällen gibt es zwei Methoden, die Sie verwenden können: Generalisierung (oder Vererbung ) oder assoziierte Entitäten.
Ja, es ist eine wichtige Entscheidung, täglich zu entscheiden, ob Sie eine Erbschaft oder eine Assoziation nutzen möchten.
Wie möchten Sie Ihre Benutzer einrichten?
- Werden Sie weiterhin die verfügbare Entität 'Konto' im Verwaltungsmodul verwenden?
- Werden Sie mit separaten Entitäten arbeiten, die eins-zu-eins mit dem Benutzerkonto verknüpft sind?
- Werden Sie (mehrere) Entitäten hinzufügen, die von System.User erben?
Es wäre eine schlechte Praxis, zusätzliche Informationen direkt in die Entität System. User Entität hinzuzufügen (Ja, Mendix hindert Sie daran, dies zu tun).
Sie sollten beide Optionen Nr. 1 und Nr. 2 in Betracht ziehen, da jede von ihnen große Auswirkungen auf die Leistung der Anwendung oder die Geschwindigkeit der Entwicklung haben kann.
Es gibt zwar keine explizite Antwort auf diese Frage, aber es gibt einige Situationen, in denen die folgenden Vorschläge hilfreich sind
Verwenden Sie Vererbung (Generalisierung) für Entitäten:
die immer die Informationen aus den verknüpften Objekten benötigen, und die Benutzer suchen und sortieren intensiv nach den verknüpften Attributen (wenn Sie mehr Einfügungen als Aktualisierungen vornehmen, könnte es sich lohnen, Vererbung zu verwenden).
Durch Vererbung sind Ihre Mikroabläufe leichter zu pflegen und Sie können Funktionen wiederverwenden. Allerdings verlieren Sie dabei an Flexibilität. Wenn viele neue oder geänderte Objekte über Excel, Webservices oder eine andere Integration geladen werden, kann die Vererbung den Prozess erheblich verlangsamen.
Verwenden Sie Eins-zu-Eins-Verknüpfungen für Entitäten mit:
eine hohe Anzahl von Transaktionen auf den verschiedenen Untereinheiten (mehrere Änderungen/Erstellungen pro Sekunde sind hoch)
nur eine Handvoll gemeinsamer Eigenschaften.
Wenn Sie der Meinung sind, dass es sich nicht lohnt, verknüpfte Objekte für die Info zu erstellen, lohnt es sich auch nicht, sie zu vererben.
Wenn es möglich ist, alle Daten in einer separaten Entität zu speichern, und diese Informationen von der Anwendung nur an einer begrenzten Anzahl von Stellen verwendet werden, ist es schneller, sie in einer Eins-zu-Eins-Entität zu speichern.
Wie Sie eine Entität, Attribute und Verknüpfungen erstellen:
Projekt-Explorer -> Ihr Modul -> Domänenmodell -> Klicken Sie auf Entität und legen Sie sie auf dem Canvas ab
Doppelklicken Sie darauf, um die Eigenschaften zu öffnen, in denen Sie die Attribute, Assoziationen und Validierungsregeln usw. konfigurieren können. Sie können auf die Option Webservice / XML-Datei importieren klicken, um ein Domänenmodell zu generieren, interessant, oder?

Ok, genug davon!!! Nun, Sie werden sich vielleicht wundern, dass ich Low-Code gesagt habe und Ihnen alles über RDBMS, UML usw. erklärt habe.
Da das Datenmodell das Rückgrat einer jeden Anwendung ist, ist es immer hilfreich, die Interna zu verstehen (Sie haben die Wahl).
Beginnen wir mit einer Excel-Datei, konvertieren diese in ein Domänenmodell und erstellen eine Bulletin Board-App, klingt das interessant?
Öffnen Sie den Mendix Modeler und klicken Sie auf das Projekt-Dashboard und dann auf "App erstellen".



Wählen Sie "App aus einer Tabellenkalkulation" (Diese Tabellenkalkulationsoption ist nur in Studio vorhanden, lassen Sie uns dort erstellen und mit Studio Pro synchronisieren)


Erstellen Sie eine Excel-Datei wie abgebildet (weitere Regeln zur Verwendung von Excel unter https://docs.mendix.com/studio/start-with-data)
Arbeitsblattnamen sind Entitätsnamen. Attribute sind Spalten unter jedem Arbeitsblatt (Entität)


Beziehungen verwalten und markieren Sie 'Seiten für meine Daten generieren', Daten importieren
Diese Aktion erstellt eine App und führt Sie zur Landing Page (klicken Sie auf die Vorschau, um Ihre App zu sehen)


Hurra!!! Wir haben jetzt eine App mit CRUD-Operationen und Suchmasken mit Paginierung.
Schließen Sie die Vorschau und kehren Sie zur Landing Page zurück. Klicken Sie auf (i) -> In studio pro bearbeiten. Dadurch wird unsere App in Studio Pro geöffnet (dies dient dazu, das Szenario der bidirektionalen Synchronisierung von Studio und Studio Pro zu zeigen).

Da das Tool die oben genannten Seiten automatisch generiert hat, was ist, wenn wir sie anpassen oder neue Seiten erstellen müssen?
Sie müssen über "Seiten" Bescheid wissen.
Seiten definieren die Endbenutzeroberfläche einer Mendix-Anwendung. Sie werden verwendet, um dem Endbenutzer Informationen anzuzeigen, ihm die Möglichkeit zu geben, Informationen zu erstellen und zu bearbeiten, und ihm die Möglichkeit zu geben, zusätzliche automatische Prozesse auszulösen.
Jede Seite basiert auf einem Layout und einer Vorlage.
- Layout - ist ein Rahmen, in den Sie Ihre Seite stellen. Jede Seite basiert auf einem Layout.
Atlas_Default / PopupLayout sind zum Beispiel Typen von Layouts, die Sie bei der Erstellung einer Seite auswählen können.
Layouts definieren die Position, das Aussehen und die Handhabung von UI-Elementen wie Seitenkopf und Menüleisten.
- Vorlage - ist ein Ausgangspunkt für eine neue Seite. Jedes Mal, wenn wir eine neue Seite erstellen, wählen Sie eine Vorlage aus, die von den Daten abhängt, die Sie auf Ihrer Seite anzeigen möchten, und von der Art und Weise, wie Sie sie anzeigen möchten: eine Liste, ein Dashboard oder ein Formular.
Je nach Ihrer Wahl kann eine Seitenvorlage mehrere vordefinierte Elemente enthalten (z. B. Listen mit Bildern, Formulare). Dashboard-Aktionskacheln, Liste Standard, Master-Detail sind zum Beispiel Arten von Vorlagen.
Aussehen und Struktur einer Seite werden durch die folgenden Elemente bestimmt:
- Widgets - einzelne Elemente der Benutzeroberfläche. Widgets sind in verschiedene Kategorien eingeteilt, z. B. Daten, Container, Datei, Eingabe, Bericht, Diagramm und Authentifizierung. Wir können auch Widgets aus dem AppStore herunterladen, um unsere eigenen Widgets zu erstellen.
- Bausteine - sind ein vorkonfigurierter Satz von Widgets, die den Aufbau Ihrer Seite und deren Gestaltung beschleunigen.
Sobald wir die App im Mendix Modeler (Studio Pro) öffnen, fügen wir eine Seite hinzu


Doppelklicken Sie, um die Quelle für das Widget auszuwählen (Wählen Sie Entity - Post, für unsere App)

Nachdem Sie die Entität verknüpft haben, müssen Sie als nächstes die Attribute den Elementen Titel, Detailtext usw. zuordnen,
Doppelklicken Sie auf die Eigenschaft und legen Sie die Attribute fest, die angezeigt werden sollen (Bearbeiten Sie die Beschriftung und legen Sie die Details wie gezeigt fest). Gehen Sie bei anderen Elementen genauso vor.

Sie können auch die Sortierreihenfolge und Suche einschalten:

Jetzt, wo die benutzerdefinierte Seite fertig ist, erstellen Sie eine Aktionsschaltfläche auf Home_Web und legen die Eigenschaften fest, klicken Sie auf -> Seite anzeigen und wählen Sie Ihre benutzerdefinierte Seite aus.


Alles bereit!! Klicken Sie auf 'Lokal ausführen' (oberstes Element im Studio Pro Modeler), und wenn Sie fertig sind, klicken Sie auf Ansicht.
Klicken Sie auf der angezeigten Startseite auf die Schaltfläche "Schwarzes Brett", Hiya!!!

Wir können unsere benutzerdefinierte Seite auch als Standard-Startseite festlegen, indem wir unter Projekt -> Navigation die Standard-Startseite auswählen (so dass beim nächsten Mal, wenn Sie nach der lokalen Ausführung auf Ansicht klicken, direkt unsere benutzerdefinierte Seite angezeigt wird)

Da wir nun benutzerdefinierte Seiten entwickeln können, ist das nächste wichtige Thema, das wir besprechen werden, "Microflows", bleiben Sie dran!
Verfasst von
Ganesh
Engineering Manager at coMakeIT
Unsere Ideen
Weitere Blogs

KI-Agenten mit MCP: Praktische Erkenntnisse aus n8n und GitHub Copilot
Wichtige Erkenntnisse für Entwickler ✅ Erfolgreiche Annäherungen: Zerlegung von Aufgaben in konzentrierte, einzelne Vorgänge Behalten Sie die...
Ruben Oostinga
Contact


