Canvas apps vs model-driven apps

By Emil Björk · Microsoft business apps consultant, Gothenburg

When to build a canvas Power App versus a model-driven app — pixel-perfect UI, data-driven structure, and the trade-offs each one forces.

Reviewed May 20262 min read · 488 wordsPublished
On this page (8)

Power Apps gives you two genuinely different app-building paradigms. Choosing the right one early matters; switching later is expensive.

Model-driven apps

A model-driven app is generated from a Dataverse schema. You define tables, columns, relationships, forms, and views; the platform renders a consistent, responsive UI around them. Customers see a familiar Dynamics 365 look — left navigation, command bar, business process flows along the top. Every record is reachable via a stable URL; advanced find, audit, security roles, dashboards, and reports all come for free.

Strengths of model-driven

Best for line-of-business CRM-style apps with rich Dataverse schemas and complex security. Standardised UX means little design work. Power BI dashboards, business rules, BPFs, and automation integrate cleanly. Dynamics 365's CRM-side apps (Sales, Customer Service, Field Service) are model-driven Power Apps.

Limits of model-driven

Layout is constrained by Dataverse's form designer; you can't put a button anywhere, you can't draw bespoke shapes, and you can't easily build a process that doesn't fit the table-and-form paradigm.

Canvas apps

A canvas app starts from a blank screen. You drag controls — galleries, text inputs, dropdowns, charts, image cards, and the newer modern controls with their more consistent theming — and write expressions in Power Fx to wire them to data sources. You can mix Dataverse with SharePoint, SQL, REST APIs, Excel, and hundreds of other connectors in one app. The shape of the app is whatever you draw. When the built-in controls aren't enough, PCF control development covers writing a custom one.

Strengths of canvas

Pixel-perfect UX. Mobile-first or kiosk-style apps where standard Dynamics 365 chrome would be overkill or distracting. Multi-source data where the user thinks of one screen, not five tables. Cross-data-source flows — e.g. an inspection app that writes to Dataverse and uploads photos to SharePoint.

Limits of canvas

No automatic role-based security on UI elements (you check in expressions). No built-in advanced find, dashboards, or reports — you build them. Scaling to dozens of screens gets unwieldy fast — apps with hundreds of controls become hard to maintain.

Custom pages

A modern hybrid: a canvas-app-style page embedded inside a model-driven app. Use them when 90% of your app is model-driven but one screen needs canvas-style flexibility (a dashboard, a wizard, a guided picker).

Choosing.

  • Building a CRM-style app? Model-driven.
  • Building a field-worker mobile app on top of multiple systems? Canvas.
  • Need bespoke UI inside a CRM app? Custom page.
  • Building a portal? Power Pages, not either of these.

The biggest mistake is building canvas when model-driven would do — and then re-implementing security, search, and reporting you'd have got for free.

Where to go next

If the real question is whether to buy a Dynamics 365 app at all, read Power Apps vs Dynamics 365 CRM. Mixing the two on one form is PCF controls vs embedded canvas apps; the canvas language is Power Fx explained; the model-driven shell is the app designer. When a canvas app misbehaves, canvas app errors explained is the reference.

Frequently asked questions

When should I build a model-driven app?

For CRM-style, record-heavy apps over a rich Dataverse schema with complex security. You get forms, views, dashboards, search and role-based security generated from metadata — little design work, standardised UX. The Dynamics 365 CRM apps are themselves model-driven apps.

When is a canvas app the right choice?

When you need pixel-perfect UX, a mobile-first or kiosk experience, or one screen over multiple data sources — Dataverse mixed with SharePoint, SQL or REST APIs. You draw the app; the trade-off is you build security checks, search and reporting yourself.

What are custom pages?

A hybrid: a canvas-style page embedded inside a model-driven app. Use one when 90% of the app is model-driven but a single screen — a wizard, a dashboard, a guided picker — needs canvas-style freedom.

What is the most common mistake?

Building canvas when model-driven would do, then re-implementing the security, advanced find and reporting that model-driven would have provided for free.

Further reading

Related guides

Browse every guide in Customer Engagement or just Dataverse platform.

Was this helpful?

Signals which guides land and which need work. No account, no comment box — corrections go through the contact page.

Spot something wrong or want a topic covered? Send a correction or a topic request — both are welcome.