About Microsoft Dataverse
You may be asking yourself, “do I really need another database in my life?”. If your organization deploys solutions with the Power Platform, the answer to that question is a qualified “yes” (spoiler alert: that qualifier concerns licensing). Let’s take a look at Microsoft Dataverse…
Dataverse is one of Microsoft’s newer data storage and management platforms (an evolution from its original incarnation as “Common Data Service”) for business applications. In addition to providing a robust data storehouse, Dataverse is the Power Platform’s cornerstone business rules layer with tight interconnections with Power Apps, Power Automate, Power BI, etc.
Microsoft Dataverse follows the traditional data structure model of tables made up of rows of data arranged into columns, each with defined types. Unlike typical enterprise databases like SQL Server and Oracle, Dataverse comes preloaded with a base set of standard tables that cover typical scenarios like Contact, Address and Account – this shows its Common Data Service heritage (this aspect of Dataverse is now known as Common Data Model). Very much like enterprise databases, though, you can create custom tables alongside Common Data Model entities that are specific to your organization/business problem.
Why choose Microsoft Dataverse?
More than likely, you have used Microsoft Lists (some of you might still call them SharePoint Lists) and/or SQL Server as the data portion of your Power Platform solutions. Those options have likely worked quite well for you – so why bother with a different data layer solution?
If I had to go with one pithy answer it would be “because Dataverse provides the ease of use of Lists with the power of SQL Server”. If I had to go with an official Microsoft answer, my response would be “because it’s the de facto database for Power Platform and it would be wise to use it “. Of course, there are far more nuanced points to be made. Dataverse is…
…easier to build line of business apps with
Due to its Power-integrated origins, Dataverse is able to do a lot of application “bootstrapping” in Power Apps you’d have to work harder to do by hand in a Canvas App (more on this below)
…automagically able to see your Microsoft 365 data
The majority of modern Microsoft 365 solutions like Approvals and Tasks are stored within Dataverse (Common Data Model), allowing you to quickly build apps that use your Microsoft 365 tenant data and extend your apps with Power Apps
…easy to secure
Dataverse 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.
Rich metadata, data types and table relationships are used directly within Power Apps – this is the origin of much of the Power App jet packs Dataverse provides
…very logical and validated
Dataverse-defined calculated columns, business rules and business process flows are enforced across data table access, all derived applications and interfaces to ensure data quality and drive business processes – all based on easy business rule modeling
Ease of Use of Lists + the Power of SQL Server
With their origins in SharePoint Lists, Microsoft created Microsoft Lists as a full Microsoft 365 citizen with a primary target being a highly-approachable creation experience for business users. However, there are definite limits to the practical use of Lists for enterprise applications, capacity being one of the primary limitations. These limits have driven Power Platform developers towards the use of SQL Server, but SQL Server Management Studio is decidedly NOT a business user-friendly solution. Enter Dataverse.
Data modeling and management in Dataverse looks and feels VERY similar to Microsoft Lists. What makes things too good to be true, though, is that the underpinnings are in fact SQL Server, not the limited legacy SharePoint list storage mechanisms. That means with Dataverse you won’t run into the performance problems and limits that you may have experienced with Lists.
Declarative Business Rules
With Dataverse, you can basically “draw” the business rules and relationships between tables (including if..then…else logic) and then everything you build atop Dataverse inherits and imposes those rules (no hand-rolling custom validation in a Canvas Power App). The development reduction and increased consistency in business function from this architecture is immense. And business users can model their business rules without having to explain them to a developer!
Model-Driven Power Apps
Those familiar with Power Platform development will have worked in Power Apps creating Canvas Apps – connecting to data from Lists, SQL Server, etc. and calling Power Automate Flows. Dataverse has added another kind of Power App – the Model-driven App. Model-driven Apps generally require far less coding than Canvas Apps and stand upon the built-in Dataverse relationships and business rules that connect tables together and describe data-level rules that are also imposed in the model-driven interface.
Model-driven apps are especially well suited to process-driven apps that are data dense and make it easy for users to move between related records in a business process (such as onboarding a new employee).
While they’re technically called “model-driven apps“, a fuller name might be “data model-driven apps”; so long as you are willing and able to model your business process with strict data relationships, immense benefits will accrue to you. The downside of this tight data model coupling is that without a data model housed within Microsoft Dataverse, you can’t create a model-driven app in Power Apps. Also, unlike canvas app development where the designer has complete control over app layout, with model-driven apps much of the user interface is determined for you and is largely designated by the components you add to the app.
There are some notable advantages to this method of application development:
- Once the data model and relationships have been created, the build process is relatively rapid due to no-code components
- Apps have a similar user interface across various devices from desktop to mobile – model-driven apps are automatically accessible and responsive
- Deploying/migrating apps between development, test and production environments is straightforward using solutions
Free CRUD Ain’t so Cruddy
Given MercuryWorks’ extensive legacy as a full-code application development firm, we know that an extensive amount of developer time is often spent writing CRUD (Create, Read, Update and Delete) operations for supporting lookup tables in an application. While these lookup tables are referenced extensively within a typical business app, they are not the main attraction of the problem being solved. Think of management of office locations or part categories – they are important data entities and business users need to be able to add, edit and delete them within an enterprise system. This is typically unglamorous but required work.
The good news is that you virtually get CRUD operations/applications for free with Dataverse based on its built-in data model and relationships. The following is an example part management screen Dataverse autogenerated for us and includes enforcement of required inputs and lookup/relationship to a related part category table:
Auditing and Compliance FTW
Data auditing and compliance is traditionally an area of large IT budget spend and also a major time sink during the development of full-code solutions. Either third-party auditing systems are put in place or teams commit extensive development time creating auditing routines and reporting. Oftentimes the simple utterance of the acronym “SOX” will bring a tear to the typical company executive.
Again, I bring good news – so long as you flip the right switches, data auditing and compliance is built into your Power Platform solutions that utilize Dataverse. Here’s an example of the audit history of a single record within a Dataverse table:
Watch the Licensing
If you have read this post so far and thought to yourself “wow, Microsoft really raised the game on the Power Platform data and enterprise business solution development”, you would be right. If you also thought to yourself “that’s really cool that they added all of these powers to the Power Platform for the price I’m already paying”, you are going to be a little disappointed. Generally speaking, this new power (pun intended) comes with a cost.
“Dataverse for Teams” (think of it as Dataverse Lite) does come free with any of the range of business Microsoft 365 licenses. However, this comes with restrictions, the most significant being:
- Apps developed to depend on Dataverse data and/or model-driven Power App can only run inside a Teams (a channel tab, for instance)
- The Power Apps component framework isn’t supported
- 2GB storage limit
- Developed solutions will only be available to Team members for the app’s resident Team
- Field-level data auditing and security are not available
If your solution requires the full powers of the Dataverse, your users will essentially need a Power Apps license (either per-app or per-user) even if they can normally utilize Canvas Power Apps with their Microsoft 365 license. In essence, utilizing Dataverse is on licensing par with using premium connectors in Power Apps or Power Automate.
An interesting note, and exception to the above licensing requirement, is that if your users are licensed Dynamics 365 users, a Dataverse license comes with that seat. The reason for this allowance is that Dynamics 365 is essentially a large collection of Dataverse model-driven apps and brings the Dataverse license allowance with it.
My resulting advice on this topic is: don’t just go using Dataverse everywhere unless you know your user licensing already covers it, the Teams variety will suffice or that use of Dataverse provides a payback that justifies increased licensing.
This post only begins to scratch the surface of Dataverse’s capabilities and the constellation of features and technologies that surround it. Hopefully this post has called to attention the importance of Dataverse within the Power Platform and has lit up your interest in learning more.
Interested In Our Dataverse Services?
"*" indicates required fields