Do you know what the differences are between canvas and model-driven applications in PowerApps? Whether you’ve been using PowerApps or you’re new to it, you may be familiar with these types of applications, but not know how they are different; my focus here is to show you the differences and learn when you would build one versus the other.
- The most common type within PowerApps
- Geared at pixel perfect applications
- Comes in 2 flavors: You can build a wide tablet application or a phone application, and it works on the PC inside of SharePoint and other devices as well
- Key differentiator: If you want pixel perfect control of your application in a WYSIWYG environment, a canvas application will make sense.
- It gives you control to connect to multiple data sources
- You’ll start with data first, which lives in a common data services platform, which is essentially the same database the Dynamics 365 uses - the Dynamics 365 Customer Engagement model by default.
- So, we start with a data model and build out from there – ideal for visualizing complex business processes. Very similar to developing an APEX for Salesforce.com developers.
Now, let me explain more about Common Data Services (CDS). We can connect to CDS easily through canvas applications or a model-driven application, but in a model-driven application, it’s much easier to connect to a CDS model. CDS is a layer that connects to things like Dynamics on one side to things like PowerApps and Flow on the other side. If I made a data change and point to a record inside a product table for example, it would immediately change in all those pieces pointing to it.
If I was building a traditional canvas app without CDS, first I’d create a database, create a connection database and load that database up and create my tables inside of that. We don’t have to worry about all that with CDS and with model-driven applications.
With CDS, you can look through a catalog of tables that are already created for you. Then when you create that CDS database, it includes that Azure database for you (currently that Azure DB but that may change in the future). Much like Salesforce or Dynamics, it has things like products, employees, price books, opportunities, contacts and so on.
So, we don’t have to worry about all those common systems; if I want to point to an employee table, I can just check the employee table and can edit, and I have all those operations: create, read, update - the CRUD operations done for me automatically. All those business rules are going to apply no matter what the application type is.
If I’m building a canvas application connecting to the CDS, and I update a single row that has a bunch of workflows built on it, it’s going to kick off those workflows just like I was in a model-driven application. The same kind of workflows will apply to both canvas and model-driven apps.
CDS has row-level security and validation of those rows built into it. So, remember, CDS is a way to kick-start your application, and CDS excels when you know you’re going to build a bunch of applications that are all going to need employee tables, customers, contacts, opportunities, etc.
On the licensing front, here are the differences:
- Model-driven apps require you to have a P2 license. That license typically comes with Dynamics, so if you have the license, chances are you have this P2 license
- The P1 plan is for canvas applications. The P1 plan gives you access to premium connectors, one being the Common Data Services
- PowerApps for Office is another plan that can only do canvas apps like P1, but it can’t connect to those premium connectors at this time. If you have an Office 365 subscription, you probably have the PowerApps for Office subscription
- An important thing to note is the P2 license is about 4 times more expensive than the P1 license. But again, if you have Dynamics, chances are it’s already included
In my video demo, I won’t spend time showing you how to build an app (I have other videos that show that) but I’ll show how canvas and model-driven apps work so you can see in real-world how these operate, their differences and what that means for you. So be sure to check out my demo here.
To summarize, there’s no right or wrong in using either of these apps, but if you’re looking for that pixel perfect kind of control, go with canvas apps. They may require more work in some cases but what you get out of them can be beautiful. Model-driven applications will require a P2 license and does not give you fine-toothed control of things. You can also blend the two apps together to get control. Also keep in mind the license pricing differences to choose what works for you.
I hope this cleared up the differences between these two environments, so you can choose the best one for your use cases. If you’d like to learn more PowerApps, check out our PowerApps courses as part of our On-Demand Learning platform, with 50+ courses that you can take at your pace, on any device. We also can create an app for you - contact us and let us know how we can help.