What is the difference between a model-driven app and a canvas app?

What is the difference between a model-driven app and a canvas app?
canvas app or model-driven app?
Building a model driven-app: session at 365 Power Up Philly conference.

This past weekend, I was giving a presentation to Dynamics 365 system administrators and developers about how to make a model-driven app in PowerApps. I gave a very similar presentation at User Group Summit in 2019. In both sessions, the questions were mostly around the differences between model-driven apps and canvas apps. I consider myself an expert on model-driven apps. I build them often, for internal use at Reenhanced and more often for our many customers. I am not an expert on canvas apps. I default to my business partner, Nick Hance, to field those questions, since he is an expert on building them. He has experience building highly valuable canvas apps for customers and for himself to improve his own life (like here where he builds a canvas app to count daily pushups done for a challenge we are both doing!).

Nick and I thought it would be give a definitive answer to that one question that we so often hear: what is the difference between a model-driven app and a canvas app.

What is a model-driven app?

A model-driven app is build on top of a data model (Dynamics 365, CDS, etc). From this data model, you can use a simple drag-and-drop interface to specify what is displayed to users in your App. Here’s a simple way to think of this: Dynamics 365 is your engine for a model-driven app. You will use Dynamics 365 components to build it. It looks and feels just like Dynamics 365. You’ll add on Dynamics 365 views, forms, charts, dashboards and reports. Use model-driven apps to streamline the user experience of Dynamics 365 and increase user adoption in your organization.

With your data stored in Common Data Service (CDS) as a database, a model-driven app provides Create, Review, Update, and Delete (CRUD) abilities on that CDS data. The model-driven app is a layer on top of your data to control how users see, update, and delete that data.

I’ve written a 6-part series on this blog about model-driven apps and how to build them. If you want to learn more, check out the first article here.

What is a canvas app?

Canvas apps are not necessarily related to Model-Driven apps. They provide a PowerPoint-type interface where administrators can build an interactive experience connected to a variety of data sources. Canvas apps offer a much wider scope in capability than model-driven apps and allow for rapid prototyping and deployment of custom applications across device types.

If you can build a PowerPoint to demonstrate your application, you can likely build this experience using a Canvas app.

In general terms, when you think of a simple idea for an app, you build this using a drag and drop interface in Canvas apps. Canvas apps can completely replace the need for custom development when the application workflow is relatively simple.

What’s the difference?
Model-Driven App
Begin with your data model (Common Data Service).
Quickly provide Create, Review, Update, and/or Delete (CRUD) capabilities on my data.
A model-driven app can only do Create, Review, Update, and Delete of data using forms from Dynamics 365.
Controlled by the security roles in Dynamics 365. It offers fine-grained and field level security.
Controls use the form builder from Dynamics 365. You can use all custom components and form controls from there.
Built using simple drag-and-drop of controls and components. Capabilities of what an administrator can do are exposed and easy to see.
Canvas App
Blank canvas: Design as you’d like. MANY database connections.
Provide an interactive experience of my own design and am willing to invest more time to create.
A canvas app can do everything that a model-driven app can do, but is more involved to setup and create.
Not well suited to provide fine-grained security. It is a best practice to design a canvas app such that all users receive the same experience.
Canvas apps have their own set of controls and have access to custom components. It’s likely there will be overlap in the future such that components can be used here and in Dynamics 365 forms.
Use a drag and drop of simple controls but performing useful functions requires updating control attributes. It is not immediately evident what is possible and administrators must rely contextual recommendations to discover what each connector can do.
Final Thoughts

Model-driven apps are well suited for a Dynamics 365 System administrator. The layout and components feel familiar to what you’re already using to manage your Dynamics 365 environment.

Canvas-apps require a more technical approach but offer a much wider set of capabilities. Once administration of Canvas apps are learned, an administrator’s capabilities are near limitless.

Do you need help building an App for your organization? Do you have a great idea and need some help figuring out the best way to approach it? Feel free to reach out to reenhanced! Fill out our Contact Form with details about what you’re working on, or email us directly at [email protected] and [email protected].

Heidi Neuhauser
Posted on:
Heidi is a Partner at Reenhanced. She is a Microsoft MVP for Business Applications and is passionate about user adoption, out-of-the-box configuration tools, Dynamics 365 and the Power Platform.
Post author