Dataverse: The Key to Unlocking the Power Platform

James Wood
Switched On: The Bowdark Blog
10 min readMar 13, 2024

--

Of all the services included with the Power Platform, I’ve always felt like Dataverse is least understood. Depending on who you’re talking to, the misconceptions about what Dataverse is (and isn’t) are all over the road. Some common statements I hear on a daily basis include:

  • “Dataverse is a really expensive cloud database that you don’t need — just use SharePoint.”
  • “Oh, yeah, Dataverse is part of Dynamics 365 and has nothing to do with Power Platform…”
  • “Dataverse is a pro-code thingy, you don’t need it to build Power Apps.”
  • “Dataverse is not industrial strength, so you need to find a different database…”

I find these misconceptions troubling because they’re holding people back from tapping into something that could really make their lives a LOT easier. With that in mind, in this post I will attempt to debunk some of the prevailing myths that are swirling out there about Dataverse. If you’re one of those people that have overlooked Dataverse in the past, I hope I can compel you to take a closer look. I truly think it will be well worth your time.

Figure 1: Dataverse — Our Misunderstood Friend

A Marketing Afterthought

One of the reasons why Dataverse tends to get overlooked is because it’s generally positioned as optional in most of Microsoft’s Power Platform marketing materials (see Figure 2 below). While this is technically true, a lot of these materials tend to gloss over the effort/cost associated with NOT using Dataverse.

Figure 2: Power Platform Overview Graphic

For example, it’s not uncommon to hear experienced Power Platform architects talk about how it’s just as easy to use one of the 1,100 available data connectors to plug your Power App into some other database (e.g., SQL Server or Oracle). While this approach works, it adds a not-so-trivial amount of complexity into the mix:

  • Most of these connectors are technically complex and require careful setup.
  • Consuming data from these other data sources can be tricky for business analysts and citizen maker types that might not know their way around SQL, JSON bindings, and so forth.
  • It puts much more burden on the developer(s) to manage technical concerns such as security management, performance tuning, and integration.

While Dataverse is not a silver bullet, it does solve many of these common issues with ease. Plus, as we’ll see in the next section, it can also do way more than the average maker realizes.

More Than a Database: Dataverse is a Platform

To fully appreciate the value of Dataverse, it’s important to realize that it’s way more than just a cloud database: it’s a full-blown cloud data platform. Underneath the hood, there is an Azure SQL database (among other Azure-related services) managing the data but, as you can see in Figure 3, there’s way more going on behind the scenes.

Figure 3: Overview of Dataverse Platform Capabilities

In the upcoming sections, we’ll peel back the various layers of the Dataverse platform to show you all of the powerful features it brings to the table.

Storage

As noted earlier, Dataverse environments are backed by an Azure SQL database. So, naturally, you can build tables and all your other typical relational database goodies in Dataverse. Microsoft even provides you with some easy-to-use graphical tools to streamline the maintenance process (see Figure 4).

Figure 4: Building Tables in Dataverse

Behind the scenes, Microsoft manages these SQL databases on your behalf — performing routine backups, rotating encryption keys, and so forth. However, from a storage perspective, Dataverse manages way more than just a basic relational database. Some other data sources that can be managed within Dataverse include:

  • Files and blobs (e.g., attachments)
  • Data from external databases such as SQL Server (virtual tables)
  • Semi-structured data from Azure Cosmos DB (elastic tables)
  • Log file management
  • Data lake integration (e.g., Azure Synapse/ADLS and Fabric/OneLake)

Dataverse also natively integrates with SharePoint Online as a built-in content management system (CMS).

As we’ll see shortly, managing both physical and virtual data sources together in Dataverse offers some significant benefits. For example, Dataverse has built-in support for defining advanced search indexes. This feature can be used to provide a Google-like search experience across all your data sources from within Dataverse.

Data

As we observed in the previous section, Dataverse’s graphical tools make it easy to model data and relationships across disparate data sources. Besides bringing structure to the development process, these models unlock many powerful capabilities including:

  • Rapid app development with Power Apps Model-Driven Apps
  • Data Cataloging & discovery (e.g., using Microsoft Purview, etc.)
  • Abstract data types with advanced validations (e.g., email or phone data types that can only accept valid input values)
  • Integrated reporting with Power BI
  • Support for offline mobile apps
  • Internationalization with different languages, currencies, etc.

Figure 5 shows an example of a model-driven Power App. These apps are built using a drag-and-drop, “what-you-see-is-what-you-get” (WYSIWYG) editor tool that uses the Dataverse data model to do most of the heavy lifting for screen development. At runtime, these apps work equally well on desktop, tablet, or smart phone devices — even in an offline capacity. They also come pre-equipped with many powerful features such as advanced search, personalization and customization, and Office integration.

Figure 5: Building Model-Driven Power Apps

Logic

Once we have our data models built, Dataverse also provides excellent support for defining custom business logic. This “pushdown” technique empowers makers to encapsulate their business logic right alongside of the data model, ensuring that consumers of all types — whether they be Power Apps, Power Automate cloud flows, or 3rd-party web apps — are all subject to the exact same business rules.

Figure 6 shows an example of the graphical business rule editor tool that’s provided for Dataverse tables. These rules can be used to plug in default values into fields, conditionally show/hide fields in UI forms, toggle fields between optional and mandatory states, and so forth.

Figure 6: Defining Custom Business Rules Using Graphical Tools

Dataverse also supports makers in the development of calculated and/or rollup fields using basic expressions and PowerFx (Microsoft’s Excel-like formula language for low-code development).

For more advanced or complex business logic, Dataverse also supports of the development of workflows (either native or built using Power Automate), system jobs, and plugins that use C# to respond to lifecycle events such as the creation or update of a record in Dataverse, etc.

Security

The data model defined within Dataverse is managed by a robust and granular role-based security concept. Although Dataverse security is a topic unto itself, here’s some of the notable highlights:

  • Dataverse access is controlled by Microsoft Entra ID (formerly known as Azure AD). Entra ID supports modern security protocols including SAML 2.0 and Open ID Connect for authentication, OAuth 2.0 for authorization, and so forth. Entra ID also supports advanced federation concepts to support single sign-on (SSO).
  • Dataverse supports both row and field-level security.
  • Instead of building/checking security authorizations by hand, Dataverse handles these checks for you automagically.
  • Dataverse also has a built-in auditing engine that can capture detailed audit logs for every single update made to tables/fields that have this feature turned on.

Integration

Integration is a real strong suit of Dataverse. As you model data in Dataverse, the updated tables (entities) are automatically incorporated into a RESTful API that’s build on the OData v4 specification. This means that Dataverse can be accessed by any consumer that can consume REST APIs. As you can see in Figure 3 above, this includes — but is by no means limited to — the following:

  • Power Platform services such as Power Apps, Power Automate, Power Pages, AI Builder, and even the new Microsoft Copilot.
  • Microsoft web and mobile frameworks such as Blazor, ASP.NET, or .NET MAUI.
  • Custom web and mobile apps built on Python, Node.js, etc.

Going the other direction (e.g., from Dataverse to someplace else), Dataverse is also quite flexible from an integration standpoint. Some integration options here include the following:

  • Webhooks that enable tools like Power Automate or Azure Logic Apps to “listen” for changes to Dataverse records and respond in near real-time.
  • Dataverse supports several change data capture (CDC)-style replication frameworks that can be used to replicate data to Azure Data Lake, OneLake, and even SQL Server in near real-time. With Fabric, there’s not even any ETL required — it’s a direct “shortcut” to Dataverse. As you might expect, this is very handy for report development with Power BI.
  • Dataverse also has event handling frameworks that support event replication to Azure Service Bus and the Azure Event Hub.

The Dataverse Value Proposition

Although the previous section highlighted some of the more notable features supported by the Dataverse platform, in some ways we barely scratched the surface on what Dataverse really brings to the table.

A Brief History Lesson

Before Power Platform was introduced in 2018, Microsoft kinda/sorta marketed Dynamics CRM (this is even before Dynamics 365 became a thing) as a low-code development platform. In those days, the offering was colloquially known as “XRM”.

In a nutshell, XRM (where the “X” stands as a placeholder for any kind of relationship management), provided customers with a barebones Dynamics CRM platform. This is to say that you got a full-fledged instance of the same platform Microsoft used to build its CRM platform — just minus the first-class CRM apps (e.g., sales, customer service, or field service).

Fast forward to today, and you can think of Dataverse as XRM on steroids. With Dataverse, you get access to the same enterprise-grade platform that Microsoft uses to run its suite of Dynamics 365 Customer Engagement apps: the same tooling, the same security, and most importantly, the same infrastructure used to run some of the world’s largest and most mission critical CRM workloads.

If you take nothing else away from this blog, then let me impress this one thing upon you: if you have designs on using the Power Platform to build enterprise grade solutions, Dataverse is the smartest decision you can make to ensure that your solution can scale with the business. Period. End of story.

The Elephant in the Room: Pricing

If there is a downside to Dataverse, it’s that it does require premium licensing. For customers that may have been drawn offsides with the promise of free Power Apps based on existing Microsoft 365 E3 or E5 licenses, this revelation can be pretty off-putting.

Whether you go with the Power Apps per app license at $5 per user/month or the Power Apps Premium license at $20 per user/month (see https://powerapps.microsoft.com/en-us/pricing/ for details), there is a cost to using Dataverse. And, depending on your specific use case, maybe that cost is overkill.

However, I would implore you to think carefully before dismissing Dataverse completely. For example, while building an app on SharePoint may be free, remember that both Microsoft and technical architects alike will tell you that SharePoint is NOT a database. That’s not to say that you can’t build simple Power Apps on top of a SharePoint list, but if you need to scale your app, SharePoint is not the platform you want to build on.

Building on Azure SQL or some other database platform is an option, but any time we use a premium connector, we’re back to premium licensing so why not just use Dataverse at that point?

Building for the Future

As you weigh your decision on whether or not to use Dataverse in your organization, it’s worth noting that Microsoft is investing heavily in Dataverse all the time. For example, the video below demonstrates some new AI functions that were added to make it easy to inject AI into Power Platform solutions. As you’ll see in the video, we’re literally talking about one line of code to perform some complex customer sentiment analysis, text summarization, and so forth.

Closing Thoughts

As you can no doubt tell from this impassioned post, I believe very strongly that Dataverse key to unlocking the full capabilities of the Power Platform. With Dataverse serving as a foundation, makers and pro-code developers alike have all the tools they need to build enterprise-grade Power Platform solutions:

  • Need data integration? We have a flexible REST API, Power Query, and a host of other frameworks to integrate with any system imaginable.
  • Need to rapidly build web or mobile apps? We can build reusable forms, views, and business rules to streamline the development of apps using Power Apps and Power Pages.
  • Need to build complex workflows and automations? We can seamlessly integrate Power Automate cloud flows (or even Azure Logic Apps) with Dataverse to orchestrate interactions with hundreds of systems.
  • Need to deeply analyze your data? We can seamlessly integrate Dataverse data with Microsoft Fabric or Azure Data Lake to facilitate consumption from Power BI, Azure Machine Learning, Azure Databricks, and so forth.

Could you accomplish all this just using Power Platform services like Power Apps and Power Automate? Sure, but it would cost you — both in terms of time and compute resources. Dataverse might not be free, but if you use it right, you’ll quickly discover ROI that you weren’t even thinking about.

If you have questions about Dataverse and how it might fit within your organization, please feel free to contact us. We’d be happy to explore the art of the possible and show you how Dataverse can level up your Power Platform experience.

--

--