I have been working on the Power Platform course lately, and a lot of “going back to basics” has been happening along the way.
One of the topics which seem to be surprisingly difficult to cover is explaining what Microsoft Dataverse is.
Here is how Power Platform docs describe Dataverse:
“Dataverse lets you securely store and manage data that’s used by business applications. Data within Dataverse is stored within a set of tables. A table is a set of rows (formerly referred to as records) and columns (formerly referred to as fields/attributes). Each column in the table is designed to store a certain type of data, for example, name, age, salary, and so on. Dataverse includes a base set of standard tables that cover typical scenarios, but you can also create custom tables specific to your organization and populate them with data by using Power Query. App makers can then use Power Apps to build rich applications that use this data.”
In reality, this description does not seem to speak for what Dataverse is, since, if you replace Dataverse with “SQL Database” above, the whole paragraph is still going to sound just right.
There are some additional bullet points provided in the docs:
- Easy to manage – Both the metadata and data are stored in the cloud. You don’t need to worry about the details of how they’re stored.
- Easy to secure – Data is securely stored so that users can see it only if you grant them access. Role-based security allows you to control access to tables for different users within your organization.
- Access your Dynamics 365 Data – Data from your Dynamics 365 applications is also stored within Dataverse, allowing you to quickly build apps that use your Dynamics 365 data and extend your apps with Power Apps.
- Rich metadata – Data types and relationships are used directly within Power Apps.
- Logic and validation – Define calculated columns, business rules, workflows, and business process flows to ensure data quality and drive business processes.
- Productivity tools – Tables are available within the add-ins for Microsoft Excel to increase productivity and ensure data accessibility.
However, a lot of that can be said about other tools, too. For example, SQL server is relatively easy to manage, it offers security, there is metadata, there can be logic and validation, there are tools… so what makes Dataverse different?
I wonder if it would be a huge exaggeration to say that there are, actually, three concepts which make Dataverse unique in that sense:
- Model-driven applications
- Common data model
- First-party applications
Essentially, it’s like this: first party applications (Dynamics 365 etc) are driving adoption of Dataverse, since they do require Dataverse. Common data model, which comes with those apps, allows for other apps to be created that can benefit from that core data and processes (yet some elements come with just any Dataverse environment). The easiest way to build advanced custom applications on top of Dataverse is by using model-driven apps. And, while building those model-driven apps, we need to keep using Dataverse and to keep pushing the limits more and more.
So, in a way, Dataverse is what glues those 3 concepts above together. The more we use any of those, the more we need Dataverse. Not that it’s good or bad, it’s just how things are, and it might not be that obvious at all if we try comparing Dataverse with SQL database without taking into account model-driven apps, common data model, and / or first-party apps provided by Microsoft.