The Truth about Building PowerApps on the Power Platform - CDS vs SharePoint
PowerApps developers are only telling half the story when it comes to building PowerApps on the Platform Platform.
An old friend in the community emailed me the other day regarding PowerApps, and highlighted the following.
“There is an enormous world of SharePoint developers that are trying to get to grips with the Power Platform, and in particular PowerApps. The problem is that their world largely revolves around SharePoint – which somewhat (for most) means SharePoint lists. In the past recent months, I have seen numerous examples of ex-SharePoint people working to up skill to become PowerApps developers – but sadly in most cases they are limiting their focus to Canvas Apps (with their underlying data all based on SharePoint lists). When I ask ‘why lists’ and not model the data using a structured relational database (AKA ‘CDS’) and build their solution as a Model Driven App instead, they look at me as if I am from another planet.
The fundamental key challenge, in my view, is that many have never worked with or implemented a relational database, and they do not even know where to start. So when you talk to them about ‘relational data’ and ‘entity modelling’ – their eyes gloss over or they retort with “well anything you can do in CDS, I can do in SharePoint”. I feel I am having the same conversations I had 10 years ago with SharePoint developers and discussing the merits of xRM and using (back then) Dynamics CRM as an Application Platform.”
I recently attended a user group in London. In one session an individual demonstrated PowerApps built using the Canvas App part of PowerApps, this was followed by another session on building PowerApps that included both Canvas and Model Driven. The second presenter joked about the former presentation, as only telling half the PowerApps story – “Bless” I think was this presenter's remarks.
Back when I was building my first business in Dynamics, we used a term called xRM, or “anything” Relationship Management and often times we would engage with SharePoint people that had a strong belief that they could build anything that we could build in Dynamics.
Here started the Them and Usstory of SharePoint vs. Dynamics. Microsoft came out with this diagram to explain the difference between the two systems as follows – highlighting that fundamentally, SharePoint is for ‘Unstructured’ data and Dynamics 365 is for ‘Structured/Relational’ data:
Most of the items above still apply, however Dynamics 365 is also just a collection of Apps operating on the Power Platform. The Power Platform is underpinned by Common Data Models (CDM) sitting on the Microsoft Common Data Services (CDS) that is hosted in Azure Data LakesV2. It is no longer a single database but a collection of data storage that include Azure SQL, CosmosDB and Blob Storage as well as an immense collection of services, built with trust and security as its core.
CDS is a relational database designed for enterprise scale and has the ability to house both structured and unstructured data, execute advanced business logic, as well as maintain interoperability with any third-party systems via applications programming interfaces (APIs). Designed with a built in security structure to keep data safe as well as allowing for individual ownership of records.
SharePoint, while powerful and proven, does not have a security model allowing for individual ownership of list items – so its security model is not as robust as CDS. It does not have the granular levels of security that is available with CDS.
Microsoft is bringing the best of model driven PowerApps and Canvas PowerApps together and, in the end, the two will evolve into the best of both – PowerApps.
SharePoint is a powerful tool that Canvas PowerApps can be built on. But for advanced line-of-business app development there is a need for developers to add to SharePoint skills CDM, CDS, model-driven, Flow, and Power BI skills take maximum advantage of the Power Platform. Note I did not say you need Dynamics 365 skills, however Dynamics 365 apps demonstrates what can be build with PowerApps on the Power Platform.
Please do check out my other posts regarding PowerApps and Power Platform.
Power Platform and PowerApps with Reuben Krippner
Changes in Dynamics 365 Implications for PowerApps & Microsoft Flow with Purvin Patel
I am keen to hear your thoughts about the pros and cons of using SharePoint over CDS for PowerApp development in the comments below.