Model-driven apps generate their UI from a data schema rather than a blank canvas. You define tables, columns, relationships and business rules in Dataverse — the app UI builds itself from that structure. Less pixel control, dramatically less time building and maintaining forms.

If you've touched Dynamics 365, you've used a model-driven app. D365 Sales, D365 Customer Service and D365 Field Service are all model-driven apps on the same Dataverse platform.

How They Differ from Canvas Apps

Canvas App Model-Driven App
UI control Complete Generated from schema
Backend required Any data source Dataverse only
Complexity Simple to medium Medium to complex
Relationships Manual setup Native support
Business rules Formulas Declarative rules
Mobile Custom layout Auto-responsive

Canvas apps suit simple, single-purpose tools. Model-driven apps suit applications with multiple related tables, complex forms, and business logic that needs to run consistently regardless of where data enters the system.

Dataverse as the Foundation

Everything in a model-driven app lives in Dataverse:

  • Tables — equivalent to database tables, with standard column types (text, number, choice, lookup, datetime, file)
  • Relationships — one-to-many and many-to-many, with cascade behaviour on delete/assign
  • Views — saved queries that define what rows users see by default
  • Forms — the edit/view layouts for individual records, with section and tab control
  • Business rules — IF/THEN logic that runs client-side and server-side, enforcing field requirements, setting values, or showing error messages without code

Business Rules vs Power Automate Flows

Business rules execute synchronously when a user interacts with a form. They set fields, show/hide columns, and enforce conditions in real time. No code, no async execution.

Power Automate flows execute asynchronously on data changes. Use them for sending emails, creating records in other systems, or running logic that doesn't need to block the user.

Use both together: business rules for UX enforcement, flows for background automation.

Building a Simple IT Asset Tracker

A model-driven app makes a natural IT asset tracker:

  1. Create a Asset table with columns: Name, Serial Number, Category (Choice), Assigned To (Lookup to User), Status (Choice), Purchase Date, Warranty Expiry
  2. Create a Maintenance Log table with a many-to-one relationship to Asset
  3. Add business rules: if Status = "Decommissioned", lock the Assigned To field
  4. Create views: All Assets, My Assets, Expiring Warranty (next 90 days)
  5. Build the model-driven app — sitemap, forms, views auto-populate

Total build time for a working prototype: about two hours. The same thing in a canvas app would take a day and be harder to maintain.

Deployment

Model-driven apps ship as part of Dataverse solutions — packaged exports containing tables, apps, flows and configurations. Deploy from Dev to Test to Prod by exporting a managed solution and importing it to the target environment. No manual config drift.

Previous Post Next Post