Canvas Applications:
Model-driven Applications:
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:
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.