The two app types
| Canvas app | Model-driven app | |
|---|---|---|
| UI | Pixel-level control — you design every screen | Generated from the DATA model; structured, consistent |
| Data | ANY source via connectors (SharePoint, SQL, Dataverse, 1000+ connectors) | Dataverse-first — built on the data model |
| Best for | Task/form apps, mobile-shaped, mixed data | Data-rich business apps, complex relationships, role-based |
| Licensing default | Depends on connectors used (premium connectors → premium licence) | Premium by default — Dataverse means every user needs a premium Power Apps licence |
| Governance shape | Watch the CONNECTORS (data can go anywhere) | Watch the DATAVERSE security model |
The rule that saves money and grief: model-driven apps are premium by default (Dataverse-based), so every user needs a premium Power Apps licence — budget it up front. Canvas apps are only premium if they touch a premium connector (SQL, custom, most non-M365 sources); a canvas app on SharePoint/ Office connectors alone can run on the licence included with Microsoft 365. The 'why did Power Apps suddenly cost money' surprise is almost always a premium connector or a model-driven app nobody licensed for.
Where each fits the estate
Canvas for the departmental task app, the mobile inspection form, the quick front-end over a list. Model-driven for the case-management system, the app with real entities and relationships and role-based access. Many real solutions use BOTH (a model-driven core + canvas apps embedded for specific screens) — which is fine, but the licensing follows the most-premium component.
What to watch (proofs)
- The app inventory by type: the Power Platform admin center lists apps per environment with their type — the canvas/model-driven split is your licensing and governance map.
- Premium-connector exposure: canvas apps using premium connectors (admin center / CoE toolkit) — the 'this needs a premium licence' list before the true-up.
- Licence coverage:
Get-MgUserLicenseDetailfor Power Apps plans (per-app vs per-user) vs the apps users actually run — the gap is either cost risk or broken apps. - Data reach: which connectors each canvas app touches — the exfiltration surface DLP policies must bound (governance module).