5 Biggest Reasons to Drop SharePoint for Dataverse

Mike Bodell
March 7, 2024

SharePoint or Dataverse? If you're a citizen developer trying to decide which one is best for a data repository for your business apps, we're going to unpack the 5 things to consider when deciding between the two in today's blog.


Are you a citizen developer or tech leader in your organization? Have you ever built apps or processes for your business that leveraged SharePoint lists and libraries? Sooner or later, you’re going to run up against the limitations of SharePoint as a data store. If you’re trying to determine if there are better options, or maybe you’ve looked at Dataverse and wonder if it is the right choice, I’m going to make it clear in this post.  

I’m going to walk you through the 5 key things to consider when deciding to use SharePoint or Dataverse as a data repository for your business apps. I’ll also frame these things with the context of my experience to help get you in the right mindset.

1. It's Hard to Leave the One You Love 💔

Maybe one of the most overlooked reasons is that you’ve never used Dataverse. Maybe it’s intimidating. Maybe you’re concerned about cost and licensing. Maybe you’re an Office Developer from “way back”.  

Back when I was a young whipper snapper, the only option we had for low code citizen developed apps was SharePoint.

Sure, there was Access, but that had all kinds of limitations, and didn’t work well in the cloud, so SharePoint was it.  

If you came from that world, you might have a bunch of SharePoint based apps already. It’s the world you know, and it seems to be good enough. That’s not very inspiring though.  

You should know there are alternatives now. Dataverse is a great one. In Dataverse, you get to build a real relational data model. If you’re designing data stores with SharePoint lists and libraries, you’re really shoehorning what was intended to be a content management solution into an application database. The paradigm is different, but if you’ve built apps on top of SharePoint, it’s only a sideways shift to build on Dataverse. Plus, you’ll get to take advantage of some benefits, which I’ll talk about later.

2. Data Complexity

Next, consider these questions when evaluating the complexity of your data:

  • Does your app utilize more than one list or library in SharePoint?
  • Are your lists related to each other? Do they have lookup columns?
  • Are you modeling many to many relationships between your lists?

Of all the reasons I discuss in this blog, none will improve development efficiency more than this one. The more complex your data model, the more efficiency you will pick up.

The reality for a citizen developer is that navigating SharePoint list relationships is an order of magnitude slower and less efficient than using a relational data model in Dataverse. Dealing with this may be a relatively small cost when dealing with only 2 or 3 related lists. But what if you have 5, 10, or maybe more? Once your data model graduates kindergarten, it might be time to move to Dataverse. The cost of Power Apps licenses will likely be offset by the total cost of ownership in building and maintaining an app based on SharePoint.

Free Course

Improve your workplace's internal communication

Start building a more connected team with our Internal Communication Crash Course.

3. Large Data Sets

If you’ve built any sort of app based on SharePoint data, you’ve probably had to deal with the limitations of the SharePoint API. For example, these limitations are identified in Canvas apps as delegation warnings. If you’ve built client-side JavaScript-based apps that use the SharePoint API, you know that you can only push so much logic to the SharePoint API and once your dataset has 5001 rows, you can’t rely on simple filters, you must bring all the data to work with it accurately.

In the world of Canvas apps, 2000 is the maximum number of rows you can bring back to your canvas app in one request. To get around that, you need to implement some hairy strategies. If you’ve got more than 2000 rows, it’s a sure sign it’s time to look to Dataverse for a better way. The short of it is there are more delegable functions and expressions available for Dataverse than for SharePoint. If you’re interested in those details, I’ve got some links for you below.

If you’re hitting this row limit, then the next thing would be to weigh the cost of Power Apps licenses against the cost of attempting to work around delegation limits of SharePoint and the potential risk of bad or incomplete data.

4. Is Your App Mission Critical?

If your application or process is mission critical then Application Lifecycle Management (ALM) matters.  

How do I know if my application is mission critical? Ask yourself how bad it would be for my team if the app was unavailable or unstable for part of the day? Would you lose revenue? Would people be sitting with nothing to do? Your answers to those questions will be a good indicator.  

If your app is mission critical, then you should do some things to manage updates and the timing of those updates. These things are going to take the form of peer reviewed changes, dedicated testing environment where features can be validated before given to the end user, and planned outages or deployments.

There are some ways to manage this in SharePoint, but they’re not always easy or straight forward. You could use Site Templates, Site Scripts, Content Types, but these aren’t always perfect.

On the Power Platform side, if you’re creating Canvas Apps you would add them to solutions and then create dedicated environments for DEV, TEST, and PROD. Fortunately, there are now pipelines that you can use to manage and schedule deployments in Power Platform environments. Real ALM principles can now be applied to office apps!

And by the way, once you adopt this strategy for deploying your Canvas apps, you’re probably going to use Environment Variables so your apps can function properly and connect to data based on environment. If that’s the case, guess what, you’re using Dataverse because that’s where Environment Variables live. So at least your dev team and any automation accounts are going to need a Power Apps license.

Also including some links here to some content to help you with ALM 😁

Stabilize Your Team's App Development Process With ALM - Microsoft 365 Insights by Bulb Digital

ALM within the Power Platform – A Compliance Love Story - Microsoft 365 Insights by Bulb Digital

Solutions in the Power Platform - Microsoft 365 Insights by Bulb Digital

5. Security

Last but certainly not least is the stark contrast in how security can be applied to your data and in your application.  

With SharePoint you’re generally going to work from a Visitors, Members, and Owner's role mindset. You’ll have Read Only, Contribute, Full Control as your basic permissions. You can of course create custom permissions if you want to. You can also configure item level permissions on any given list or library. I’ve used item level permissions extensively in my SharePoint apps to limit visibility to only those things that are “mine”, and this can be quite effective. But that’s about as far as it goes.

Once you move to Dataverse you’ll have an overwhelmingly complex matrix of permissions based on three levels of record ownership (Organization, Team, User) multiplied by granular permissions that can be set for every table including Create, Update, Read, Write, Delete, and Append. In addition to that, you can apply column level security, and even limit components of your application, like forms, based on the user’s security role.

SharePoint is a great content management solution. It makes total sense that documents and files would be stored there and are best stored there. On the Dataverse side, file data types are supported. However, this is limited due to the fact that it’s more structured. For example, data types are configured at the column level, so if you need to store multiple documents about a particular record, you’d have to define a limit for that table.

Rest assured there is a fantastic resolution for this problem. You get the best of both worlds, the dynamic flexibility of a content management solution combined with the structure and predictability of a relational data model. The solution for this problem is that Dataverse tables can be configured with SharePoint integration. This means that any row of data in Dataverse can have a related SharePoint document location that can contain as many pieces of content as needed.

Here’s a link to help you get started with SharePoint Integration... Get started with SharePoint integration (Developer Guide for Dynamics 365 Customer Engagement) | Microsoft Learn


If you made it this far, kudos to you I’d also like to offer a little bit of encouragement. Me and some of my teammates have been on the same journey as you. Over the last few years, we’ve worked with numerous organizations as they wrestle with the new reality of cloud computing. Some of us even lived through the time when SharePoint was THE option. I remember a time when Dataverse was a mystery to me and my frustration was bigger than the benefits. It took one or two hands on experiences to get past the frustration. Now, having implemented a number of Dataverse-based solutions, we’ve grown to love it. As Office Developers it has become a tool kit that makes our lives easier.

Whenever you're ready, there are 3 ways we can help you:
  1. Internal Communication Guidebook: Boost your leadership skills to communicate clearly, make informed decisions, and lead your organization through change.
  2. Join Our Membership Community: Join leaders and tech innovators on a journey to transform their workplace.
  3. Project-Based Services: Engage a dedicated team on a project basis to drive impactful outcomes and achieve your business goals.

Have Questions About This?

Leave a comment below!
Bring them to our next Online Office Hours
Upcoming Course
Your team's communication needs a reset.
Break down the silos and free your inbox with our upcoming course. Join the waitlist now.
Join the Waitlist