With the Dynamics 365 Spring 2018 release there are now two different types of PowerApps; Canvas and Model Driven. What is the difference and how do you decide which one to use to build your business application?
Canvas apps are business applications built without code for PCs, phones and tablets. They are configured via a PowerPoint type user interface and use Excel type formulas. Canvas apps can connect to many Microsoft and non-Microsoft data sources.
Model-driven apps are essentially an app built using the Dynamics 365 framework. They look like Dynamics 365 and have a lot of the features of Dynamics 365 as explained in my previous blog Build Feature Rich, Codeless, Business Applications using Microsoft PowerApps. They use the Common Data Service as their data source.
The following table gives a high-level summary of a comparison I conducted over a few categories.
User Experience (UX)
With Canvas Apps you have a lot of control over the user experience of the app. The look and feel can be configured and there is a range of different controls that can be used. You can configure the app to behave exactly like you users want it to.
Use Canvas Apps when you have users that are not tech savvy and provide them with a clean, simple and intuitive UX.
The user experience is the same as the Dynamics 365 Unified Interface UX. In my experience as a Dynamics CRM \ 365 consultant, a number of end users have not particularly enjoyed the Dynamics UX over the years. However, with Dynamics 365 version 9.0 and above the new Unified Interface has been accepted more readily as a good UX design by end users. Love it or hate it the Model-driven UX is the Dynamics 365 UX.
Canvas apps are best suited to simple applications that have a very specific use e.g. submitting a leave request or carrying out a site inspection. Complex apps can be configured but the effort to do so becomes significant.
Model-driven apps are more suited to complex applications that have multiple layers and functions.
App Feature Set
Canvas apps can be generated from a data source where the PowerApps platform builds a simple app based on the data structure. Straight away, the app is ready to use with search, read, write and delete functionality but not a lot else. Richer functionality can be added but it needs to be configured which can be time consuming.
As explained in Build Feature Rich, Codeless, Business Applications using Microsoft PowerApps, Model-driven apps have inherited a lot of the Dynamics 365 framework including things like auditing, role based security, business process flow, Exchange integration, Timeline control etc. These features would be very time consuming (and even impossible in some instances) to build using Canvas apps.
Data validation is carried out via Dynamics 365’s Business Rules functionality that the Common Data Service has inherited, which is available to both Canvas and Model-Driven apps.
However, Canvas apps can connect to other data sources which will need their own way of performing data validation. Canvas apps do not necessarily have to use the Common Data Service as a data source.
As well as the Common Data Service, Canvas apps can connect to a bunch of online and on-premise data sources such as Twitter, Office 365, SharePoint, DropBox, SQL Server etc. See a full list of data sources here.
The Common Data Service is the only data source for Model-driven apps. However, you can integrate data from other data sources using PowerApps Data Integration Projects. For example, this is how Dynamics 365 Finance and Operations adds data to the Common Data Service.
Ease of Configuration
It is really easy to configure a simple Canvas App from a data source and have search, read and write functions automatically built for you but the app will be ugly and most likely not well adopted by your users. To gain a better user experience the configuration tools for Canvas apps are really powerful and you can end up with a really slick app. I have found that there is a significant learning curve to be able to configure Canvas apps and you need to be able to understand Excel type formulas. Do not underestimate the training time and the configuration time required to make a slick app, especially if it is complicated.
The Power Apps configuration tool can also be slow at times, especially as the app gets bigger and more complicated but I understand that Microsoft is working on fixing this.
If you are a Dynamics 365 configurator you will take to configuring Model Driven apps like a duck to water, it is all the same. You can take advantage of your investment in Dynamics 365 skills to extend your business apps portfolio.
The more complicated your apps get the longer it takes to configure a Canvas app vs Model-driven app.
The Common Data Service has inherited the Dynamics 365 Customer Engagement web services. Since the Canvas and Model-driven apps use the Common Data Service as a data source these web services can be used to interact with the Common Data Service in order to enhance your app.
Plugins and workflow extensions (from Dynamics 365 Customer Engagement) can also be developed for the Common Data Service to apply business logic that cannot be configured.