Model Driven App vs Canvas App

Let’s look at the differences between Model Driven Apps vs Canvas Apps!

After the announcement of the new Microsoft Power Platform, one of the components of this platform, PowerApps, has generated a lot of enthusiasm!
This is rather understandable because it does not just change the way we work, but brings a lot of new opportunities!
The PowerApps component is designed to create applications. It can be divided into two distinct types: model-driven application and model application.
The purpose of this article will be to highlight the advantages and the differences of these two types of application.

Canvas App

Canvas applications are apps for phones and tablets. Their goals are to provide a wonderful user experience and create a role-based application using data from more than 200 sources (not just CDS!). Here is a simple example:

Canvas App Expenses Management
Canvas App Expenses Management

You can build them using a WYSIWYG designer, so consider them as low-code applications. With this designer, you can drag and drop controls such as buttons, a list of records from a data source, text, or other items such as a camera or voice recorder control.

Canvas App Media Control
Canvas App Media Controls

All the logic in this app will be implemented using expressions/formulas as in an Excel worksheet. By definition, they are supposed to be simple applications offering a new way of working with your data.

Canvas App Expression
Canvas App Expression

These apps can also be used in two other context:

  • Embedded in a Power BI Dashboard : you can see on the bottom left a canvas application that changes depending on the Power Bi context! This will allow you to take action directly in Power Bi!
CanvasApp in Power BI
CanvasApp in Power BI
Canvas App in Form
Canvas App in Form

To summarize, using the canvas application has some advantages:

  • Use multiple data sources into one application.
    • From CDS, SharePoint, SQL Server or even a simple excel file!
  • Providing a user-friendly cross-platform application
  • Easy to implement using standard control and expressions
  • Ability to use them to enhance the user experience and extend functionality in Power BI and in Model Driven form

Be aware that some limitations still exist, such as using more than 30 data sources in an application. You can find a preview here: Performance Tips

Model Driven App

Model Driven App are designed to implement complex business applications. You can create your own data model based on the CDS (entity, relationships…) or modify the one provided by a First Party Application such as Dynamics 365 CE.

Based on this data model, it will automatically generate a responsive (using unified interface) and immersive application where you can specify what you want your users to see and implement complex business rules (using workflow, plugin, business rules…). All model-driven applications follow a predefined style that you will not be able to edit as in a canvas app, this layout is determined for you and designated depending on the components that you add to the application. So, when you create entities and data structure for your apps you are building them!

These kinds of applications are used to resolve some real business issues using a process point of view. The best model driven app example, as I am an CRM Consultant, is the famous Dynamics 365 CE. If you already work with this product you have also been working with a model-driven app! As Dynamics has been integrated into the CDS, that means Dynamics 365 and CDS are the same.

Model Driven App
Model Driven App with the First Party Application Dynamics 365 Sales

To summarize, using the model-driven applications has some advantages:

  • Create data model from scratch or use an existing one (e.g Dynamics for Sales).
    • Entities, fields…
  • Implement simple to complex business logic.
    • Plugins, Workflow, Business rules…
  • You can create separate model driven apps for each business use cases, but also create one that groups all use cases in one app.
  • Use a predefined responsive layout (unified client interface) which will look the same on phone, tablet or desktop.

Keep reading

More >