Power Apps: Should your organisation use a Canvas or Model Driven app?
A breakdown into the two types of Power Apps and the best approach for a Power Platform solution depending on business requirements
Organisations that choose to utilise Microsoft Power Platform in their IT operations will have two different types of applications (Power Apps) they can build: a Canvas App and/or a Model Driven App. Both of these Power App types have their own pros and cons as well as different suitabilities as an IT solution based on different business requirements. Understanding the differences between Canvas Apps and Model Driven Apps as well as which one is appropriate for different situations is integral to creating an effective Power Platform solution that solves organisation problems in a scalable and cost effective manner.
Canvas Apps
A Canvas App is an application built in a low-code studio with a drag and drop interface (i.e if you need a button on a screen, you drag and drop it where you want it) that uses a simplified spreadsheet formula language (called PowerFx) instead of traditional programming languages (such as JavaScript or C#). The studio looks as follows to the developer;
The Benefits: Canvas apps have great potential to build small, medium, or large business applications that can do complex functionality with simpler and easier development than a traditional full stack web application. Data is super easier to integrate, the integration of automation flows (from Power Automate) and visual dashboards (from Power BI) is extremely straight forward; security and app sharing is taken care of within Power Platform and this all can be done with less developers and less time than a traditional full stack web project.
Compared to model driven apps, canvas apps can do far more and allow for much more functionality. Business requirements that are more complex or unique are more easily addressed with a canvas app rather than a model driven app. They also can be used with almost any data source (such as Dataverse, Excel, SharePoint, SQL Server, Azure SQL etc.) and integrated with external APIs and connectors (i.e SAP ERP, Xero etc.) with less code than traditional web frameworks.
The Drawbacks: Due to the “low-code” nature of power apps, it will either be difficult or tedious to achieve really niche complex requirements (that a traditional web framework like React or Django could develop) and large canvas apps do tend to have huge amounts of spaghetti and overly-distributed code. This can make maintainability and documentation of a large canvas app a bit difficult, although skilled power platform consultants will have frameworks and abilities to manage this.
Compared to model driven apps, canvas apps take a far longer time to develop and can be harder to maintain. This is an important factor to consider for power platform governance.
Model Driven Apps
A model driven app is an application built as an extension of a Dataverse table that utilises that data model as the base along with subsequent views, forms, visuals, automations and security built on top. If there is a Dataverse table “Projects” with all projects within an organisation, a model driven app can be built on top of that table to allow users to see different views of that table (i.e “Active Projects”, "Inactive Projects”, “Projects in Australia” etc), allow user interactions with that table with customisable forms, data visuals of that table, and more. A typical model driven app looks like as follows;
As a model driven app is built on top of a Dataverse table, it requires the use of Dataverse as the data source. A model driven app cannot be built on top of an Excel Spreadsheet, SQL server, or any other data source. Whilst these sources can be converted into Dataverse tables easily, it requires the permanent data migration to Dataverse and maintaining synchronisation can be difficult and risky.
I have already written about considerations an organisation can take for using Dataverse here.
The Benefits: A model driven app is super easy and quick to set up once a Dataverse table is made and doesn’t require any code. This makes the development of data dense applications that require security based user interaction very easy and ideal as well as super simple to maintain over time. Stakeholders who want to see data in a table format with easy configurable filters and views, to interact with it via forms, and see that data in useful visuals will love model driven apps. Compared to canvas apps, the model driven app provides out of the box built functionality for many common use cases of data applications and is a dream for an organisation’s IT governance.
The Drawbacks: There are two core drawbacks to a model driven app.
It can only be built on Dataverse, so any other data source it is not usable for. This is not the case for a canvas app, which can utilise all conventional and common data sources as well as Dataverse.
The no-code nature of a model driven app means that it will not be able to satisfy certain complex and niche business requirements that a canvas app (with the use of PowerFx code) would be able to. This means that business requirements for an application should be carefully reviewed to see if a model driven app is even appropriate.
So which one should be used and when?
From the above analysis, the general approach for when to use each type of power app can be deducted as follows;
When to use Canvas Apps
If business requirements demand complex and niche features (i.e. not typically out of the box and more specific requirements unique to the particular business), canvas apps are a better choice. This should consider the scalability of scope for a project and whether future business requirements will want a canvas app.
If the underlying data source won’t be Dataverse for whatever reason, canvas apps should be used (since model driven apps can only use Dataverse as of now).
When to use Model Driven Apps
If the business is willing to utilise Dataverse as the core data source (this should be either because there is no proper data storage solution already or the business is not satisfied with their current one and are willing to migrate to Dataverse), then model driven apps
If business requirements demand simple features that are commonly out of the box (i.e a user can read data, add to that data, edit that data, delete that data, export that data, view that data under different filters, and have security roles for all these functions etc.) then a model driven app is the ideal choice.
If you would like further support and / or a discussion in inplementing a Power App or Power Platform solution, please add and contact me on Linkedin and I would be happy for a chat!