Glossary
Model-Driven App
By Emil Björk · Microsoft ecosystem consultant, Gothenburg
A Power Apps application generated from a Dataverse data model, with consistent UI and built-in CRUD.
A model-driven app in Power Apps is an application generated from a Dataverse data model. You define tables, fields, relationships, business rules, forms, and views; the app surface follows automatically with consistent navigation, search, filtering, and CRUD behaviour. Different from canvas apps (visually designed with arbitrary layout) and from Power Pages (externally facing websites). Built on the same engine as Dynamics 365, so Dynamics customisations and model-driven Power Apps share architecture. Strengths: rapid development for CRM-like scenarios, rich security model (row-level, field-level, hierarchical), business process flows, scales to apps with hundreds of tables. Weaknesses: less visual flexibility than canvas. Requires Dataverse and Power Apps premium licensing.
Worked example
A field-services company needs to track work orders, technicians, customer sites, parts inventory, and their many relationships to each other — dozens of interconnected entity types with consistent forms, views, and permissions across all of them. Rather than hand-designing dozens of individual screens, they define the data model in Dataverse (tables for Work Order, Technician, Site, Part, with relationships between them), and a model-driven app generates a consistent, navigable interface automatically — a technician viewing a work order sees related parts and site history without a designer having built each of those views by hand.
Common pitfalls
Choosing a model-driven app for what's actually a small, single-purpose tool is a common overcorrection — the setup overhead of defining a full Dataverse data model is disproportionate for a simple task a canvas app would handle in a fraction of the time. Underestimating the security-model learning curve is a real early friction point — row-level, field-level, and hierarchical security in Dataverse are powerful but genuinely more complex to configure correctly than the simpler connection-based permissions a canvas app relies on. And assuming a model-driven app's generated interface can be visually customised as freely as a canvas app leads to disappointment — the trade for that automatic, consistent UI is real reduction in layout flexibility, which is the fundamental trade-off between the two app types, not a limitation to be configured around.