PowerLens
All posts
TutorialsJanuary 28, 2026· 5 min read

Building Your First Model-Driven App with Dataverse: A Complete Guide

J

Juan Carlos Santiago

Building Your First Model-Driven App with Dataverse: A Complete Guide

Building Your First Model-Driven App with Dataverse: A Complete Guide

When I first started working with Power Platform, I quickly realized that Model-Driven Apps offer something Canvas Apps can't: enterprise-grade structure with minimal code. Today, I'll walk you through building your first Model-Driven App, step by step.

Understanding Model-Driven Apps vs Canvas Apps

Before diving in, let's clarify the difference. Canvas Apps are UI-first—you design the interface and add logic afterward. They're flexible but require more manual configuration.

Model-Driven Apps, however, are data-first. You define your data structure in Dataverse, and the app builds itself around that structure. The result? Faster development, better scalability, and automatic mobile responsiveness.

For business applications with complex data relationships, Model-Driven Apps win every time.

Step 1: Creating Tables in Dataverse

Every Model-Driven App starts with Dataverse tables. Let's build a simple Project Management system.

Creating Your First Table

  1. Navigate to Power Apps (make.powerapps.com)
  2. Select your environment
  3. Click DataverseTablesNew Table
  4. Name it "Project"
  5. Enable Display in global search and Appear in search results

You'll notice Dataverse automatically creates:

  • Name column (primary column)
  • Owner column (for security)
  • Created/Modified timestamps

These standard columns are crucial for audit trails and governance.

Step 2: Defining Columns and Data Types

Now let's add meaningful columns to our Project table.

Essential Columns for Our Project Table

Column Name          | Data Type        | Purpose
─────────────────────|─────────────────|──────────────
Project Name         | Text (required)  | Primary identifier
Description          | Text (multiline) | Project details
Budget Amount        | Currency         | Financial tracking
Start Date           | Date             | Project timeline
End Date             | Date             | Project deadline
Status               | Choice           | Active, On Hold, Completed
Project Manager      | Lookup           | References User table

Creating the Status Column

  1. Click + to add a new column
  2. Name it "Status"
  3. Select Choice as data type
  4. Add choices: "Not Started", "In Progress", "On Hold", "Completed"
  5. Set "In Progress" as default
  6. Click Save

Step 3: Building Relationships

Relationships connect your tables. Let's create a one-to-many relationship between Projects and Tasks.

Creating a New Task Table

  1. Create a new table called "Task"
  2. Add columns:
    • Task Title (Text, required)
    • Description (Text, multiline)
    • Due Date (Date)
    • Assigned To (Lookup to User)
    • Status (Choice: Not Started, In Progress, Completed)

Adding the Relationship

  1. In the Task table, click +Lookup
  2. Name it "Project"
  3. Related table: "Project"
  4. Click Done

This creates a one-to-many relationship where one Project has many Tasks.

Step 4: Building Your Model-Driven App

Now comes the magic—the app builds itself.

Creating the App

  1. Go to Power Apps+ Create
  2. Select Model-driven app from blank
  3. Name it "Project Manager"
  4. Click Create

The App Designer opens. This is your control center.

Adding Tables to Your App

  1. Click + Add Page

  2. Select Table based view and form

  3. Choose Project as your table

  4. System automatically creates:

    • List view (table grid)
    • Form (detail view)
    • Quick create form
  5. Repeat for the Task table

Your navigation structure now includes both entities with automatic CRUD operations.

Step 5: Customizing Forms and Views

This is where you shape the user experience.

Customizing the Project Form

  1. In App Designer, select ProjectFormsMain form

  2. The Form Designer opens

  3. Drag columns to organize sections:

    Section 1: Basic Information
    - Project Name
    - Description
    - Status
    
    Section 2: Timeline
    - Start Date
    - End Date
    
    Section 3: Resources
    - Project Manager
    - Budget Amount
    
  4. Right-click columns to:

    • Make required fields
    • Hide optional fields
    • Add descriptions

Creating a Custom View

  1. Select ProjectViews+ New
  2. Name it "Active Projects"
  3. Click Edit in classic view
  4. Filter: Status equals "In Progress"
  5. Columns: Project Name, Status, End Date, Project Manager
  6. Sort: End Date (ascending)
  7. Save and publish

Step 6: Adding Business Rules

Business rules enforce logic without code.

Example: Auto-Update Status

Let's create a rule: When End Date is in the past and Status is "In Progress", change it to "On Hold".

  1. Go to Project table → Business Rules
  2. Click + New business rule
  3. Name it "Auto-Hold Overdue Projects"
  4. Set condition:
    • If Status equals "In Progress" AND End Date is less than today
  5. Set action:
    • Then Set Status to "On Hold"
  6. Activate the rule

The rule now runs automatically whenever records are created or updated.

Publishing Your App

Back in App Designer:

  1. Click Publish
  2. Confirm your settings
  3. Share with your organization

Users can access it from Power Apps portal or via direct link.

Pro Tip

Use table columns strategically. Every column you add increases form complexity. Ask yourself: "Do users need this field to do their job?" If not, hide it in the form and show it only in advanced views. This keeps your app clean and intuitive. Also, leverage the Status Reason column (which Dataverse provides automatically) for workflow stages—it integrates beautifully with Power Automate and keeps your business logic visible.

Next Steps

Your Model-Driven App is live. From here, you can:

  • Integrate with Power Automate for automated workflows
  • Add calculated or rollup columns for analytics
  • Create dashboards with Power BI visualizations
  • Set up security roles for different user types

Model-Driven Apps truly shine when you embrace their structured approach. Once you experience automatic mobile responsiveness, built-in offline capabilities, and minimal maintenance, you'll understand why enterprises choose them over Canvas Apps for serious business applications.

#model-driven-apps#dataverse#power-platform#business-rules#app-development