Model-driven apps Canvas Apps

Model-Driven App vs. Canvas App: Which one is right for you?

Table of Contents

Power Apps is the Power Platform tool for creating custom apps for different business needs, allowing internal users to interact with a process through a beautiful and friendly interface. With Power Apps you can digitize your business, transform data entry, document and spreadsheet management, and other outputs from your business without making high investments, since it leverages the low-code concept for faster development. 

When developing in Power Apps there are two options available: 

  1. Model-driven App 
  2. Canvas App 

Both types listed above offer amazing capabilities and allow the creation of very powerful and useful applications, but they differ in many aspects such as design, user experience, level of customization and the underlying data platform they are connected to. In this article, we’ll talk about the two types of Power Apps and the key features and differences between both of them to help you determine which is the best fit for the projects you have in mind.

Power Apps use cases

Any business process that requires a form or an interface for users to interact with can be benefited from using Power Apps, it’s ideal to replace physical forms, legacy solutions, or that typical Excel spreadsheet we share with other team members. 

Power Apps enables developers to create an application that allows users to Create, Read, Edit or Delete data related to either simple processes or more complex ones.  

Some examples of important but simpler processes are: 

  • Customer creation form 
  • Performance evaluation management 
  • Vacation request 
  • Overtime approval 
  • Manage IT support tickets 
  • Manage field visits of technicians 

But Power Apps can also be used to create in-house platforms that can help you manage end-to-end processes such as: 

  • CAPEX Management 
  • Customer Relationship Management platform 
  • Warehouse management system 
  • Supplier onboarding platform 

Both Model-driven apps and Canvas apps could be used to build any of the forms/processes/platforms listed above, the decision on which tool to use will depend on many factors such as: 

  • Development approach 
  • Usage type (transactional or user experience oriented) 
  • Level of customization required 
  • Data platform where data will be stored in 
  • Licensing requirements 

What is a Canvas App?

As the name suggests, a Canvas app starts with a “canvas” where developers drag and drop and configure buttons, controls and overall design. Working with Canvas Apps means using a “You get what you see” approach, this means that whatever is placed in the canvas and whatever is configured by the developers, this is what the end user will see. 

Above means that Canvas Apps allow creating custom solutions, with custom designs and they feel like a “real” app that could be downloaded from an app store. Development usually starts by creating the interface and then setting up buttons, text inputs, date pickers and galleries with code and logic. 

Canvas apps can connect to many different data sources, from the Microsoft ecosystem and outside it, such as: 

  • SharePoint lists 
  • Dataverse 
  • Microsoft Excel 
  • SQL Server (on premises, Azure) 
  • Oracle Databases 
  • MySQL Databases 
  • Salesforce 
  • Hubspot 
  • SAP 
  • Custom APIs 
  • And the list could go on 

Microsoft offers some templates to start from but they are not mandatory, so Canvas Apps usually do not have an out-of-the-box standard design (unless the development team builds one of their own)  or a standard framework, as there are best practices to follow but not all developers follow them, so bad design decisions when building the app will for sure affect the application in long term, both in performance and usability. When working with both Canvas or Model-driven apps it is always a good idea to have a planning stage to design the solution and the architecture. 

Tree View Column

When to Use a Canvas App?

One of the first decisions to make is where will the underlying data of the app be stored. If it’s decided that it will be a SharePoint list or SQL Server, then a Canvas app is the best choice as  they have out-of-the-box connectors to work with these data sources (Model-driven apps can only connect to Dataverse). 

The next key decision for the Canvas app vs Model-driven apps dilemma is how flexibility and customization will be required for the User Interface (UI). As stated above, with Canvas apps, you start with a “canvas” that you can customize every single detail for, so if we need full control of how the app will look, Canvas apps will also be a great option. 

From vision to execution

Whether you're just starting or scaling automation, we help turn your ideas into impactful solutions.

If the app needs to run on both desktop and mobile, Canvas apps adjust pretty well to both types of devices.  

And finally, if the app needs to have very specific functionality or features or requires some special type of interaction between the end user and the data, Canvas apps are a good fit, because each single button and control can be customized in both design and logic.

Licensing

Canvas apps licensing depends on which data platform we’re connecting to the app and on the type of controls we use. Data sources and controls classify into two categories: 

  • Standard: can be used as part of a Microsoft 365 subscription, without additional charge.  
      • Examples of Standard data sources: SharePoint lists, MS Excel 
      • Examples of Standard controls: buttons, PDF reader, datepickers, text controls 
  • Premium: require a Power Apps license, paid by month and by user (this means all users who consume the app will require a license). 
      • Examples of Premium data sources: SQL Server and Dataverse 
      • Examples of Premium controls: Map and Address input 

To learn more about licensing, make sure to check out our blog about Power Apps licenses: https://powergi.net/blog/power-apps-pricing-updated-2024/.

What is a Model-Driven App?

As the name suggests, a model-driven app is a business application that is driven and built on top of a data model. One of the main differences with Canvas App is that Canvas Apps focus on custom UI design, while Model-Driven Apps are driven by the data structure and the relationships between entities. 

To create a model-driven app we need to start by creating and configuring our data model in Dataverse (create tables, columns and establish relationships), and only when this is complete, we can proceed to create the actual application. When creating the application, Power Apps will automatically generate forms, tables, and views based on the data model we created. 

A key part of Model-driven apps is that they can only connect to Dataverse as a datasource, no other data platforms can be connected directly to a model-driven app (unless we create an integration through Dataflows or unless we use custom pages in the model driven app). So, Model-driven apps are ideal if our database is set up in Dataverse. 

Model-driven apps are especially suited for transactional applications where the main purpose is to create, read, update and delete records. 

Since these type of apps focus is the data model, the interface design side of the app is not so easily customizable as it is for Canvas apps, all model-driven apps have a standard look and feel and design (which is also responsive by default), and a very standard framework – all apps are built the same way: we start with creating the table, then setting up the forms and views and finally connecting these with the app.

Power Apps Column

SInce the application design is standard, customization is not so easily achievable. Custom JavaScript code can be written and imported into the table form to create and implement custom logic, but this usually requires more advanced programming knowledge. In the last couple of months and years, Microsoft has introduced quite a few features in model-driven apps to allow for more customization, such as Custom Pages (which is pretty much a Canvas app embedded in a model-driven app) and customizing the command bar to add our own buttons and options that have custom logic.

When to use a model-driven app

If our data will reside in Dataverse and if we want to leverage all Dataverse capabilities, model-driven apps are a great option, since they have out-of-the-box integration with Dataverse and will automatically recognize all data types and any relationship between tables we have going on in the data model. Model-driven apps are also amazing and optimized for transactional operations and spreadsheet-like behaviour.  

Business Central or Dynamics 365 both integrate beautifully with Dataverse, so if we’re using any of these as ERP systems, model-driven apps are an excellent option to explore. 

Finally, if we are not looking for a custom design or if we are looking for a standard clean design that doesn’t require too much effort, then model-driven apps are also a great option. These apps also bring to the table responsive design by default, so they are perfect if the app will be used in any type of device. 

Licensing

Model-Driven apps are connected to Dataverse, which is a premium connector across all Microsoft Power Platform, so, as a premium connector, it will always require additional licensing to be purchased for every single user that will consume the app, paid by month and by user. 

To learn more about licensing, make sure to check out our blog about Power Apps licenses: https://powergi.net/blog/power-apps-pricing-updated-2024/

Key Differences Between Model-Driven and Canvas Apps

 

Canvas apps 

Model-driven apps 

Customization 

“You get what you see” approach.  

High level of customization and flexibility can be achieved with reasonable simple logic 

Limited customization and flexibility. For advanced customization, programming knowledge is required 

User interface 

Developers define the design and look and feel. 

Colors, layout, app structure if fully customizable. 

Standard design and look and feel 

Best for 

Simple or more complex forms and high level of customization for user experience 

Spreadsheet-like and data-dense applications  

Security 

Depends on the underlying data security and developers logic to show/hide data 

Automatically integrates Dataverse security model 

Data Source 

SharePoint lists 

Dataverse 

SQL Server 

Microsoft Excel and more 

Dataverse 

Starting point 

User interface (although it’s recommended to also start by defining a data model and an application mockup) 

Data model 

Responsive design 

Yes, but developers need to include logic for it 

Yes, by default 

Licensing 

Depends on the datasource. 

Requires a license for all users who will consume the app (paid by month and by user) 

Development approach 

There are best practices and guidelines but framework depends on the developer (although it’s recommended to follow a standard framework) 

Standard development framework 

Hybrid Approach – Combining Model-Driven and Canvas Apps

Canvas apps and Model-driven apps have key differences and each have their own development approach, but they can be combined in the same solution either in the same component or as separate components: 

Is your business ready for automation?

Automate processes with Microsoft Power Platform.

  • Model-driven apps have a feature called “Custom pages” that allow embedding a Canvas app inside a model-driven app, this gives the impression that they are both part of the same component and lets users interact with two different “apps” but from the same interface. 
  • Some solutions might require two separate applications, for example: 
      • Use a canvas app to book a company car 
      • Use a model-driven app to see a full list of all requests and manage approval 

Best Practices for Power Apps Development

Create and design a data model

Regardless of if we are using a model-driven app or a canvas app, it’s always a good idea to start by thinking which tables we need to create, the attributes for each table and the relationship between them. It’s recommended to create an “entity-relationship diagram” (aka ERD), which is a visual representation of all these tables, columns and relationships. 

This will give a starting point for development and will provide the foundations for all the solution architecture. 

Create a mockup or approximation of the final app

When working with a Canvas app, it’s good to plan how the application will look or to have an approximation of the screens, layouts, forms and controls the application will require. It’s also important to define the general look and feel and the design guidelines such as logos, colors and font. This can be done by creating a mockup in platforms such as Figma or Lucidchart, if we don’t have any of these tools available, PowerPoint slides can be used instead. Regardless of the tool we use, what matters most is having an initial plan for the application’s screens and layout. 

Do not forget about data security

Don’t leave the security conversion for the last stage of development, it’s key to understand how data will be stored and secured. Before starting any work on the application, it’s key to have a clear understanding of the security roles and the different security guidelines for the app – who should see which records and who should see which options. 

Both Canvas apps and Model-driven apps follow a low-code approach and allow developers to create simple or complex applications without having to write code from scratch – deciding whether to use the other depends on the requirements and it requires process analysis to determine the best tool for each business need. 

Contact us if you would like to have a conversation on how our Power Platform Consulting services can support your Power Apps Journey! 

Author
Power Platform Consultant | Business Process Automation Expert
Microsoft Certified Power Platform Consultant and Solution Architect with 4+ years of experience leveraging Power Platform, Microsoft 365, and Azure to continuously discover automation opportunities and re-imagine processes.