Historie

Wie in diesem Artikel beschrieben, sind die Lösungen Sales, Customer Service, Marketing und Field-Service, Model-driven Power Apps, die von Microsoft entwickelt wurden. Da es beispielsweise Dynamics 365 Sales schon länger gibt als das offizielle Produkt der Model-driven Power Apps, sollte es keine Überraschung sein, dass die Model-driven Power Apps keine komplette Neuentwicklung von Microsoft war, sondern eine abgespeckte Variante der Dynamics 365 Customer-Engagement Applications ist.

Der "Datenspeicher" unter diesen Applikationen ist ein Konstrukt, welches uns heute als Microsoft Dataverse bekannt ist. Damit sollte nun auch klar sein, dass die Model-driven Power Apps direkt an Dataverse geknüpft sind oder mit anderen Worten, der Standard-"Datenspeicher" für eine Model-driven Power App ist Microsoft Dataverse.

Technischer Aufbau

Das Schichtenmodell von Microsoft Dataverse

Dass Microsoft Dataverse nicht einfach nur eine Datenbank ist. sondern einen komplexen und sehr ausgeklügelter Daten-Service darstellt, wird am besten anhand dieses Schichtenmodells klar.

  • API
    Microsoft verfolgt mit Dataverse den API-First Ansatz. Das bedeutet, dass alle Zugriffe auf Dataverse einzig und alleine über das Application-Programming-Interface (Schnittstelle) erfolgen. Die dazugehörige Web-API basiert auf dem REST Standard und implementiert OData. Damit lassen sich auch sehr komplexe Datenanbfragen bzw. Datenoperationen darstellen.
  • Security
    Die Authentifizierung erfolgt standardmäßig über das Microsoft Azure Active Directory (AAD). Es ist sowohl eine herkömmliche Benutzerauthentifizierung mit Benutzername und Passwort, als auch eine Application-Authorization per Client-Secret möglich.
    Die Autorisierung erfolgt über ein auf Enterprise-Niveau zur Verfügung stehendes Rollenkonzept.
  • Logic
    In der Logic-Schicht findet die Business-Logik statt. Dazu gehören z.B. das Errechnen von automatisch berechneten Feldinhalten, das Ausführen von bestimmten Jobs oder auch das Ausführen von Pro-Code in Form von Plugins zu bestimmten Ereignissen (Events).
  • Data
    Das Datenmodell bildet das Kernstück der Model-driven Apps. Die Modellierung, also das Erstellen der Tabellen mit ihren Spalten und Verknüpfungen zu anderen Tabellen, findet in dieser Schicht statt. Was mich persönlich etwas wundert ist, dass hier auch die Daten-Validierung aufgeführt ist. Diese hätte ich eigentlich in der Logic-Schicht erwartet.
  • Storage
    Der primäre Datenspeicher ist eine Microsoft SQL Datenbank und das in der Data-Schicht erstellte Datenmodell wird praktisch 1:1 in Form von relationalen Tabellen in dieser Datenbank abgebildet. Die Datenbank ist auch auf dem herkömmlichen Weg über einen Connection-String zugänglich. Aktuell kann allerdings nur lesend auf die Daten zugegriffen werden. Um preisintensiven Datenbankspeicher zu sparen, werden Dateien in Blobs gespeichert.
  • Integration
    Die Integration-Schicht erlaubt - wie der Name schon sagt - Integrationen in andere Systeme und ermöglicht darüber hinaus das Application-Lifecycle-Management (ALM) um bestimmte Entwicklungsstände (Versionen) automatisiert auf unterschiedlichen Umgebungen zu verteilen.

Wichtig:

Die Beschreibung stellt lediglich einen Abriss der Bestandteile der jeweiligen Schichten dar und ist keinesfalls vollständig. Mir geht es in diesem Artikel nicht um einen Deep-Dive sondern darum, einen Überblick und vor allem ein besseres Verständnis über Dataverse zu vermitteln.

Das Common Data Model

Da sich bestimmte Entitäten in fast jeder Geschäftsanwendung wiederfinden, hat Microsoft beschlossen, eine neue Dataverse Instanz nicht komplett leer, sondern immer mit einem schon bestehenden Satz an bestimmten Tabellen auszuliefern. Diese Tabellen und ihre Relationen zueinander, entspringen dem Common-Data-Model. Natürlich müssen diese Tabellen nicht verwendet werden, es bietet sich allerdings aus Gründen der Einheitlichkeit und nicht zuletzt der Arbeitserleichterung an.

Die Dynamics 365 CE - Apps bauen natürlich ebenfalls auf dem Common-Data-Model auf.

Fazit

Microsoft Dataverse ist weitaus mehr als eine cloudbasierte Datenbank. Es ist vielmehr ein permanent verfügbarer Daten-Dienst, der aktuell noch sehr eng an die Model-driven Power Apps bzw. Dynamics 365 CE gekoppelt ist.

Aus der Community werden allerdings die Rufe immer lauter, Dataverse auch als eigenständiges Produkt lizenzieren zu können.

Hey Microsoft...hört ihr uns? :) Und wenn ihr schon dabei seid, passt doch die Kapazitätspreise den aktuellen Speicherpreisen an. Unsere Kunden werden es euch danken ;)