Today Microsoft announced the Microsoft Dataverse and Microsoft Dataverse for Teams.
Check out the announcement here:
Goodbye Common Data Service, Hello Dataverse.
What is Microsoft Dataverse? Simply put, it’s the new name for the Common Data Service.
The term “Dataverse” is part of a series of nomenclature changes as Microsoft pushes the Power Platform in the Microsoft Teams (aka Project Oakdale). In a previous blog, I outlined how entities, fields, and option sets have been renamed to tables, columns, and choices. These changes were further extended by called records “rows” and boolean fields “Yes/No” fields.
The reason for these name changes was to make the platform more understandable and reach a broader audience. Whether you like it or not, these changes are here to stay, and we’ll all eventually get used to it.
(And maybe there is hope that Microsoft will update licensing to be more understandable and reach a broader audience, but I digress)
It was only a matter of time (and a few legal skirmishes) that the Common Data Service would be renamed (again). Microsoft Dataverse might not describe the Common Data Service any better, but the name is a bit catchy and aligns with naming conventions like Cosmos DB.
If you are a newcomer to the Power Platform or wonder what Microsoft Dataverse or the Common Data Service is, read on. If you have been working with Dynamics CRM or the Common Data Service for a while, then a lot of this might be a review, but there may be some nugget of trivia valuable for a pub quiz.
More than just another Database
Microsoft Dataverse from a quick glance could appear to be just another database technology, like SQL or Access. Like a database, it has tables, columns, rows and relationships, but it’s much, much more than that.
Microsoft Dataverse as technology is close to 18 years old. It began as the core engine for Microsoft CRM in 2003 and evolved to be one of the central pillars of the modern Power Platform.
The Big Bang (how it all started)
Microsoft Business Solutions Customer Relationship Management v1.0 was released in 2003. While it lacked many features of a CRM system, it was one of the first applications where the end-user would access the system via browser instead of installed desktop software.
One of the powerful aspects was the business application layer on top of SQL server that provided many additional features that could be easily modified by non-developers. There was already a series of provided entities (Tables) that represented business objects like Accounts, Contacts and Activities, etc. This “template” of business entities would eventually become the Common Data Model.
Over time, more features were added and eventually, this “CRM” engine became an integral part of the Power Platform.
See What is the Power Platform for my interpretation of the story.
Microsoft Dataverse – What’s in the box
Dataverse, at its core, is simply an API (Application Programming Interface). Many of the Power Platform features such as Power Automate, Power Apps, Power BI, Power Virtual Agents, AI Builder can interact with Dataverse directly or through built-in connectors.
Going beyond the Power Platform, applications written in other languages and tools can interact with Dataverse via the WebAPI.
Model-Driven Power Apps
Model-Driven Power Apps are applications that present the end-user with a standard set of forms, views, dashboards and processes. Model-driven apps are directly built-in to Dataverse to provide a friendly, easy to use, business application interface for Dataverse. This technology provides the foundation for both custom applications and many of the Dynamics 365 first-party applications available from Microsoft.
Connectors are a vital part of the Power Platform. When creating Canvas Power Apps, Power Automate flows or other applications using connectors, there are currently (and likely to change) three connectors that can access Dataverse. The Dynamics 365 Connector (deprecated), the Common Data Service connector and the Common Data Service (current environment) connector. I suspect we will soon see a Dataverse connector. Please refer to my friend Sara Lagerquist’s blog post: CDS vs CDS: What Connector should I use in Power Automate? to understand the differences.
Dataverse has security built-in at the platform level (as opposed to the application level), meaning that once you define security roles and field-level security profiles for a particular user or team, these will apply to that authenticated user no matter what application or service they are accessing Dataverse from.
The security is used in the context of business usage versus discrete data access, making it more straightforward to configure a robust security profile for applications.
Within Dataverse, there are a series of configurable logic engines that can are used to build applications. There are calculated and rollup columns that can display calculations or aggregates of related data. There is a fully configurable workflow engine (aka “Classic workflows”) that can perform a series of steps both asynchronously and synchronously. (It is recommended that asynchronous workflows be done using Power Automate). Other features can enhance the user experience, such as business rules and business process flows. Finally, advanced logic can be implemented with a full-featured SDK and custom plug-ins written in .NET.
While Dataverse has several features, it also can be used to store data! The structure of Dataverse is based on related tables, a table representing a real-world object (a company, a person, a transaction, etc.) and made up of attributes called columns (first name, last name, date of birth, etc.). These items have been recently renamed from entities and fields to accommodate a broader audience and make Dataverse objects more relatable to something like an Excel spreadsheet.
A maker can create their own custom tables, but the Common Data Model provides ready to use tables that have been designed and developed following industry standards. A maker can extend these tables with their own custom columns.
Unstructured data such as file attachments can also be stored within Dataverse. These attachments are generally related to a table or identified in file-type columns.
The data itself is stored in a combination of Azure SQL and Azure Blob storage. Generally, a maker or end-user doesn’t need to worry about where and how the data is stored. Access to the data for creation, updates and deletes must happen via the API. However, the data can be read directly using a SQL endpoint.
Data can be viewed or integrated with Dataverse using concepts such as virtual entities or integrated using connectors.
One feature from the Dynamics CRM legacy is that Dataverse has out of the box features to populate Microsoft Word templates, integrate with Microsoft Excel, and send and receive communication with Microsoft Exchange. Users can also associated emails, contacts, appointments and tasks from Outlook with rows in Dataverse.
Dataverse for Teams
As part of a Microsoft Teams’ license, makers can now build Power Apps; Power Automate flows, Power Virtual Agent chatbots directly within the context of Microsoft Teams.
These Power Platform features can access a scaled-down version of Dataverse to store data for these solutions. I recently collaborated with fellow MVP and 365.Training team member David Yack in creating an free introductory online course for building apps on Dataverse for Teams. Check it out here: Introducing Microsoft Dataverse for Teams
I hope you can see the value of using Dataverse to build your solutions in the Power Platform and understand that Dataverse is more than just a simple cloud-based database. This platform has many years of development and evolution and is not a new idea that will disappear in a week (although it might be renamed).
Nick Doelman is a Microsoft Most Valuable Professional (MVP) as well as a Microsoft Certified Trainer (MCT). Follow Nick on Twitter @ReadyXRM for various updates on the Power Platform and the weekly “Community Confessions” poll. Looking to ramp up on various Power Platform topics? Check out a growing catalogue of courses on https://365.Training