Session 5 — Based on the course by Barbara Andrews, Lead Microsoft Technical Trainer
Define entities, relationships, and data types in Dataverse that reflect your organizational structure. This metadata-driven foundation ensures accurate reporting, seamless integration, and consistent data governance.
Map workflows, automate tasks, and set rules that guide user interactions — approvals, escalations, notifications. Helps users focus on work rather than remembering manual steps.
Assemble components like views, forms, and dashboards using drag-and-drop tools. Configure security roles and share the app for distribution.
| Dimension | Model-Driven | Canvas |
|---|---|---|
| UI generation | Auto-generated from data model | Manually designed, full layout control |
| Data source | Microsoft Dataverse only | Multiple (SharePoint, Excel, Dataverse, etc.) |
| Best for | Process-driven, data-centric, enterprise apps | Task-specific, custom UI, field workers |
| Security trimming | Built-in | Manual |
| Examples | CRM, compliance tracking, case management | Field inspections, intake forms, mobile dashboards |
| Responsive design | Automatic — no extra config needed | Requires manual responsive design work |
| Code required | None | None (Power Fx formulas for logic) |
Tables, columns, relationships — the backbone and data foundation
App shell, sitemap, forms, views — navigation and interaction
Business processes, flows, workflows, actions, business rules
Charts, dashboards, embedded Power BI reports
The primary interface for full record interaction. Multiple tabs and sections. Ideal for CRM or case tracking where users need complete access to all record details.
Optimized for small screens or sub-grid areas. Perfect for mobile dashboards or summary views with limited space where quick access to key data is needed.
Built for speed — users input essential data and create new records without leaving their current screen. Ideal for sales or support ticketing in fast-paced environments.
Displays read-only data from a related table within a main form. Reduces navigation. Example: view account details while working on a contact record.
| View type | Created by | Purpose | Example |
|---|---|---|---|
| Personal views | Individual users | Custom filters and layouts for personal workflows | A sales rep filters leads by their own region |
| System views | Administrators (built-in) | Core app views ensuring consistency: Quick Find, Advanced Find, Lookup Views | Quick Find for fast search; Advanced Find for complex queries |
| Public views | Admins / customizers | Shared organization-wide views; used in subgrids, forms, dashboards | Open service requests list shown in a dashboard |
In Power Apps → Solutions → Event Management solution, click New → App → Model-Driven App. Name it "Contoso Event Management5." Add a description. Click Create.
Add pages using Dataverse tables. Select four tables: Contact, Event, EventSession, Session Registration. Enable "Show in Navigation" for all four. Verify all four appear in the navigation panel.
In App Designer → Navigation, create two new groups: "People" and "Events." Move Contact view into the People group. Move Events, EventSessions, and Session Registrations views into the Events group. Reorder by dragging.
Navigate to People → Contact form → Edit. Create a new table column: Name = "Contact Type5," Data type = Choice, Sync with Global Choice = Off. Add three choice labels: Speaker, Participant, Support Staff. Set default to None. Save. Search for the new column in Table Columns panel, drag it onto the form. Save and Publish.
Navigate to Events view in App Designer. Verify "Event Details1" field has been removed (done in earlier labs). Save and Publish the Events form. Return to App Designer and Save and Publish the full app.
Open the app (Apps → Contoso Event Management5 → Play icon). Add two contacts: Tim Brown (Speaker) and Tammy Jones (Participant). Create an Event: "Fall Conference," Seattle, max 500, type = Conference, registration required. Create an EventSession: "AI Session," tomorrow, 1.5 hours, speaker = Suzanne Diaz, event = Fall Conference. Create a Session Registration: Suzanne Diaz, ABC Company, special instructions = no gluten.
| Sitemap group | Table/view | Key customization |
|---|---|---|
| People | Contact | Added "Contact Type" choice field (Speaker, Participant, Support Staff) |
| Events | Event | Verified removal of Event Details1 field; saved and published |
| Events | Event Session | Added to Events group in sitemap; displays session details |
| Events | Session Registration | Added to Events group; stores participant registration data |
| Record type | Name | Key fields |
|---|---|---|
| Contact | Tim Brown | Job title: Engineer; Contact Type: Speaker |
| Contact | Tammy Jones | Job title: Engineer; Contact Type: Participant |
| Event | Fall Conference | Location: Seattle; Max attendees: 500; Type: Conference; Registration required: Yes |
| Event Session | AI Session | Date: Tomorrow; Duration: 1.5 hours; Speaker: Suzanne Diaz; Event: Fall Conference |
| Session Registration | Suzanne Diaz | Company: ABC Company; Session date: Tomorrow; Special instructions: No gluten; Participant: Suzanne Diaz |
Click to reveal answers ↓