MS-900Chapter 22 of 104Objective 2.4

Power Apps: Low-Code Application Development

This chapter covers Power Apps, Microsoft's low-code application development platform that is part of the Microsoft Power Platform. For the MS-900 exam, you need to understand what Power Apps is, its core components (canvas apps, model-driven apps, portals), how it integrates with other Microsoft 365 services, and the licensing models. Approximately 5-10% of exam questions touch on Power Platform topics, including Power Apps, so mastering this chapter is essential for a solid score.

25 min read
Intermediate
Updated May 31, 2026

Power Apps as a Custom LEGO Factory

Imagine you work in a large office that needs a custom filing system, but you can't code. You have a LEGO factory where you can snap together pre-built blocks (connectors, controls, formulas) to build exactly what you need. The factory floor has a design studio (Power Apps Studio) where you drag blocks onto a canvas. Each block has a specific function: a 'text input' block captures user data, a 'gallery' block displays a list of records, and a 'button' block triggers actions. Behind the scenes, the factory has a conveyor belt (Power Automate) that moves data between your app and data sources like SharePoint or SQL. The factory also has a quality control station (Power Platform Admin Center) that manages access and monitors usage. When you build an app, you define the logic by writing simple formulas (like Excel) that tell blocks what to do—e.g., 'If this button is clicked, submit the form data to a SharePoint list.' The factory produces a packaged app (canvas or model-driven) that end users access via a web browser or mobile app. The factory ensures that apps run within your organization's security boundaries (Microsoft Dataverse, Azure AD). Just as a LEGO factory lets you build complex structures without molding plastic, Power Apps lets you build custom business apps without writing traditional code. The key is that every block has a defined interface and behavior, and you combine them using rules (formulas) to create a functional application.

How It Actually Works

What is Power Apps?

Power Apps is a suite of apps, services, connectors, and a data platform (Microsoft Dataverse) that provides a rapid application development environment to build custom apps for your business needs. It is part of the Microsoft Power Platform, alongside Power Automate, Power BI, and Power Virtual Agents. Power Apps enables users with little to no coding experience (citizen developers) to create professional-grade apps using a visual designer and pre-built templates. For professional developers, Power Apps can be extended with custom code via Azure Functions, custom connectors, and the Power Apps Component Framework (PCF).

Why Power Apps Exists

Traditional application development requires specialized programming skills, long development cycles, and significant IT resources. Power Apps addresses the need for rapid, low-code development to solve business problems quickly—such as digitizing paper forms, automating approvals, or creating mobile field service tools. It empowers business analysts to build apps that fit their exact workflow without waiting for IT. IT retains governance and security through the Power Platform Admin Center.

How Power Apps Works Internally

When a user creates a Power App, they start in Power Apps Studio (https://make.powerapps.com). The studio provides a drag-and-drop canvas for canvas apps or a data-driven designer for model-driven apps. The key internal mechanisms:

Data Sources: Apps connect to data via connectors. Connectors are wrappers that translate Power Apps formulas into API calls. For example, the SharePoint connector uses REST API calls to read/write list items. Each connector has a set of operations (e.g., GetItems, Patch, Delete) that are exposed as functions in Power Apps formulas.

Formulas: Power Apps uses a formula language similar to Excel. For example, Patch(Accounts, First(Filter(Accounts, Name = "Contoso")), {City: "Redmond"}) updates the City field of the first account named Contoso. Formulas are evaluated client-side or server-side depending on the operation. Delegable operations (e.g., Filter on indexed columns) are pushed to the data source, while non-delegable operations are performed locally (limited to 500 records by default).

App Hosting: Apps run in a browser or mobile app. The runtime environment is a sandboxed HTML5/JavaScript container that interprets the app definition (stored as a .msapp file in Dataverse or as a package in the environment). The app definition includes screens, controls, properties, and formulas serialized as JSON.

Dataverse Role: For model-driven apps, Dataverse (formerly Common Data Service) is the underlying data platform. It provides a relational database with business logic (business rules, workflows, Power Automate flows), security (role-based access control), and a metadata-driven UI. Model-driven apps are not drawn; they are defined by configuring components like forms, views, dashboards, and business process flows, and the UI is generated automatically.

Key Components, Values, Defaults, and Timers

Canvas Apps: Start from a blank canvas or a template. Controls include TextInput, DropDown, Gallery, Form, Button, etc. Each control has properties (e.g., Text, Visible, Fill) that can be set with formulas. Default delegation limit: 500 records for non-delegable queries (configurable in app settings up to 2000, but beyond that requires delegable queries).

Model-Driven Apps: Built on Dataverse. Key components: Sitemap (navigation), Forms (main, quick create, quick view), Views (system, public, personal), Charts, Dashboards, Business Process Flows. Security is enforced via Dataverse roles. No canvas drag-and-drop; UI is generated from metadata.

Power Apps Portals: External-facing websites for users outside the organization. Built on Dataverse and allow anonymous or authenticated access. Portals use Liquid templates and bootstrap. Licensing: Portal Page Views are consumed per session.

Connectors: Over 300 pre-built connectors (e.g., Office 365, SharePoint, SQL Server, Salesforce). Custom connectors allow wrapping any REST API. Each connector has a set of triggers and actions used in Power Automate, but in Power Apps, connectors are used via functions like Office365Users.SearchUser({searchTerm: "John"}).

Environment: Apps are created within an environment (a container for Dataverse database, apps, flows, and connections). Each environment has a region, a security group, and a storage limit. Default environment is created automatically; additional environments require appropriate licenses.

Licensing: Power Apps licenses come in two types: per-user (user license) and per-app (pay-as-you-go). A Power Apps per-user license allows unlimited apps for one user. A per-app license allows one user to run one app (custom app or portal) with limited Power Automate and Dataverse capacity. Microsoft 365 E3/E5 includes Power Apps capabilities for customizing SharePoint and Teams (limited to using data sources within the same tenant, no Dataverse premium).

Configuration and Verification

- Creating an App: Navigate to https://make.powerapps.com, select an environment, click 'Create' and choose Canvas app from blank, from template, or from data. For model-driven, choose 'Model-driven app from blank' or from Dataverse table. - Sharing an App: In Power Apps Studio, select 'Share' and add users or security groups. Users need a Power Apps license (or per-app license) unless they have a Microsoft 365 license that includes basic Power Apps capabilities (for SharePoint/Teams customizations). - Verifying Deployment: Use the 'Monitor' tool in Power Apps Studio to trace app execution, see formula evaluation, and identify errors. In the Power Platform Admin Center, view environment capacity, app usage, and license assignments. - PowerShell Commands: Administrators can use Power Apps cmdlets (e.g., Get-AdminPowerApp, Set-AdminPowerApp) to manage apps programmatically. Example:

Get-AdminPowerApp -EnvironmentName "Default-12345678-1234-1234-1234-123456789abc"

How Power Apps Interacts with Related Technologies

Microsoft 365: Power Apps can use Microsoft 365 data sources like SharePoint lists, Excel files (stored in OneDrive), and Outlook contacts. For example, a canvas app can display a SharePoint list and allow users to edit items. This integration uses the SharePoint connector, which supports delegation for indexed columns.

Power Automate: Power Apps can trigger Power Automate flows from a button or on data change. For example, when a user submits a form in a canvas app, a flow can send an approval email. Flows can also be embedded in model-driven apps via business process flows.

Power BI: Power Apps can embed Power BI reports and tiles. Conversely, Power BI dashboards can include Power Apps visuals (custom visuals that run a Power App).

Teams: Power Apps can be added as a tab in Microsoft Teams. Apps built for Teams can use Teams-specific connectors (e.g., send a message to a channel). The Power Apps app in Teams allows users to create and use apps directly within Teams.

Azure: Custom connectors can be built on Azure Functions or Logic Apps. Power Apps can also call Azure Functions directly via HTTP connectors. For advanced scenarios, developers can use the Power Apps Component Framework (PCF) to build custom controls with TypeScript.

Security and Governance

Data Loss Prevention (DLP) Policies: Admins can create DLP policies in the Power Platform Admin Center to block or allow specific connectors from being used together. For example, you can prevent a SharePoint connector from being used in the same app as a non-Microsoft connector (like Salesforce) to prevent data exfiltration.

Authentication: Power Apps uses Azure Active Directory (Azure AD) for authentication. Users sign in with their work/school account. App permissions are managed via sharing and Dataverse roles.

Audit Logging: All app creation, modification, and sharing events are logged in the Microsoft 365 Security & Compliance Center. Admins can audit who created an app, when it was shared, and to whom.

Performance Considerations

Delegation: For large data sources (over 500 records), ensure queries are delegable. Non-delegable queries fetch all records locally, causing performance issues. Use delegable functions like Filter, Sort, LookUp on indexed columns. Avoid FirstN, Last, and non-delegable expressions like Filter(Table, Left(Title, 1) = "A").

App Size: Canvas apps have a size limit of 200 MB for the .msapp file. Large images or media can increase load time. Use Azure Blob Storage for large files.

Network Latency: Apps make API calls to data sources. Minimize calls by using collections (local variables) and caching where possible.

Common Exam Traps

Trap: Power Apps is only for professional developers. Reality: Power Apps is designed for citizen developers (low-code). Professional developers can extend it, but the core tool is low-code.

Trap: Canvas apps and model-driven apps are the same. Reality: Canvas apps are free-form, pixel-perfect; model-driven apps are data-driven and generated from metadata. The exam will ask you to differentiate.

Trap: Power Apps requires a separate license even if you have Microsoft 365 E5. Reality: Microsoft 365 E5 includes Power Apps capabilities, but only for apps that use data sources within the same tenant (no Dataverse premium). For Dataverse-based apps, you need a Power Apps per-user or per-app license.

Trap: Power Apps can only connect to Microsoft data sources. Reality: Power Apps has over 300 connectors, including third-party services like Salesforce, Google Drive, and custom APIs.

Walk-Through

1

Identify Business Problem

Before building an app, you must define the business need. For example, a sales team needs a mobile app to update customer records on the go. Determine the data source (e.g., SharePoint list or Dataverse), the user interface requirements, and the desired automation. This step sets the scope and ensures the app solves a real problem.

2

Choose App Type

Decide between a canvas app (pixel-perfect, free-form design) or a model-driven app (data-driven, generated UI). Canvas apps are best for task-specific interfaces (e.g., a form for entering orders). Model-driven apps are best for complex business processes with multiple entities (e.g., a CRM system). Also consider Power Apps portals if external users need access.

3

Create Data Source Connection

In Power Apps Studio, add a data source by clicking 'Data' and selecting a connector. For example, connect to a SharePoint list by providing the site URL and list name. The connector authenticates via Azure AD and retrieves the schema. For Dataverse, select the environment and table. The connection is stored in the app's connection references.

4

Design User Interface

For canvas apps, drag controls onto the canvas. Set properties like Text, Visible, and Items using formulas. For example, set a Gallery's Items property to `Filter(Accounts, Status = "Active")`. Add screens for navigation. For model-driven apps, configure forms and views by selecting which fields to display and their layout. The UI is rendered automatically.

5

Add Business Logic

Write formulas to handle user interactions. For example, on a button's OnSelect property, write `Patch(Accounts, BrowseGallery.Selected, {LastContacted: Now()})` to update a record. Use If, Switch, and ForAll for conditional logic. For model-driven apps, configure business rules (no code) or workflows (Power Automate) to enforce logic.

6

Test and Publish

Use 'Preview' in Power Apps Studio to test the app on desktop and mobile emulators. Check delegation warnings and performance. Once satisfied, click 'Publish' to save the app and make it available to users. The published version is stored in the environment. Users access it via the Power Apps mobile app or browser.

7

Share and Manage

Share the app with users by clicking 'Share' and entering their email addresses. Assign a security role (for model-driven apps) or just share (for canvas apps). Users must have appropriate licenses. Monitor usage and errors via the Power Platform Admin Center. Update the app by editing and publishing a new version.

What This Looks Like on the Job

Scenario 1: Field Service Inspection App

A utility company needs to replace paper inspection forms with a mobile app. Using Power Apps, they build a canvas app that connects to a SharePoint list containing inspection templates. Field workers open the app on their phones, select a location, fill in readings (text, numbers, dropdowns), and attach photos. The app uses the SharePoint connector to save data back to the list. A Power Automate flow triggers when a new item is added, sending an email to the supervisor with a summary. The app is shared with all field workers (Power Apps per-user licenses). The company had to ensure that the SharePoint list columns were indexed to allow delegation for filtering by location. They also configured DLP policies to prevent data from being copied to personal cloud storage. The biggest issue was handling offline scenarios; they used the Power Apps offline capability (cache local data) but faced sync conflicts when multiple workers edited the same record. They resolved it by using Dataverse instead of SharePoint, which provides better conflict resolution.

Scenario 2: Customer Service Portal

A large retailer wants to let customers track orders and submit returns online. They build a Power Apps portal (external-facing) that connects to Dataverse. Customers authenticate with their email (Azure AD B2C or local accounts). The portal displays order history (from an integrated ERP via a custom connector) and allows return requests. The portal uses Liquid templates for UI customization. Licensing is based on portal page views (per authenticated user per session). The challenge was scaling: during a holiday sale, portal traffic spiked, causing slow load times. They optimized by caching frequently accessed data and scaling the portal's capacity via the Power Platform Admin Center. They also implemented bot protection using Azure Front Door. The portal reduced call center volume by 30%.

Scenario 3: Internal IT Asset Management

An IT department uses a model-driven app built on Dataverse to manage hardware assets, software licenses, and service requests. The app includes business process flows for onboarding new employees (steps: assign laptop, install software, grant access). Security roles restrict access: helpdesk can edit assets, managers can view reports, and employees can submit requests. The app replaces a legacy Access database. During deployment, they had to migrate data from Access to Dataverse using Power Query. They also configured business rules to enforce validation (e.g., warranty end date must be after purchase date). The main performance consideration was ensuring that views and dashboards used indexed columns to avoid timeouts. They used the Power Apps Admin Analytics to monitor app usage and identify slow queries. Misconfiguration of security roles led to a temporary data exposure, which was quickly fixed by auditing role assignments.

How MS-900 Actually Tests This

MS-900 Objective 2.4: Describe low-code application development with Power Apps

The exam expects you to understand the following:

What Power Apps is: A low-code platform for building custom business apps. Key point: it is part of the Power Platform.

Types of apps: Canvas apps (free-form, pixel-perfect), model-driven apps (data-driven, generated UI), and portals (external-facing websites). Be able to differentiate them.

Data sources: Power Apps can connect to Microsoft 365 (SharePoint, Excel, Teams) and third-party via connectors. Know that Dataverse is the premium data platform.

Licensing: Understand that Microsoft 365 E3/E5 includes basic Power Apps capabilities (customize SharePoint, Teams) but not premium features (Dataverse, custom connectors). Premium requires Power Apps per-user or per-app license.

Security and governance: DLP policies control connector usage; environments isolate apps and data; Azure AD provides authentication.

Integration: Power Apps integrates with Power Automate (automation), Power BI (analytics), and Teams (collaboration).

Common Wrong Answers

1.

Wrong: Power Apps is only for professional developers. Reality: It's designed for citizen developers. The exam may ask who can use Power Apps; the correct answer is business analysts and users with no coding experience.

2.

Wrong: Canvas apps and model-driven apps are the same. Reality: They differ in design approach and use cases. The exam may present a scenario and ask which app type to use—canvas for a custom form, model-driven for a complex CRM.

3.

Wrong: Power Apps requires a separate license even for basic use. Reality: Microsoft 365 licenses include limited Power Apps capabilities. The exam may ask if an E3 user needs an additional license to customize a SharePoint list; the answer is no.

4.

Wrong: Power Apps can only use Microsoft data sources. Reality: It has hundreds of connectors, including third-party and custom.

Specific Numbers and Terms

Default delegation limit: 500 records (configurable up to 2000).

Canvas app size limit: 200 MB.

Connectors: Over 300 pre-built.

Environment: A container with a Dataverse database (if enabled).

DLP: Data Loss Prevention policies.

Edge Cases and Exceptions

Portals licensing: Based on page views, not per-user.

Power Apps for Teams: Included with Microsoft 365 E3/E5 for apps within Teams (limited to Teams data sources).

Custom connectors: Require premium licensing.

Offline capability: Available for canvas apps with Dataverse (not SharePoint natively).

How to Eliminate Wrong Answers

If the question mentions 'drag and drop' and 'pixel-perfect', it's a canvas app.

If the question mentions 'business process flow' or 'data-driven UI', it's a model-driven app.

If the question mentions 'external users' or 'website', it's a portal.

If the question mentions 'licensing', check if the scenario uses Dataverse — if yes, premium license needed; if only SharePoint/Excel, Microsoft 365 license may suffice.

Key Takeaways

Power Apps is a low-code platform for building custom business apps; it is part of the Microsoft Power Platform.

There are three types of Power Apps: canvas apps (free-form), model-driven apps (data-driven), and portals (external websites).

Canvas apps use a drag-and-drop designer and Excel-like formulas; model-driven apps are built by configuring Dataverse components.

Power Apps can connect to over 300 data sources via connectors, including Microsoft 365 and third-party services.

Microsoft 365 E3/E5 includes limited Power Apps capabilities for customizing SharePoint and Teams; premium features require additional licenses.

Data Loss Prevention (DLP) policies control which connectors can be used together to prevent data exfiltration.

The default delegation limit for non-delegable queries is 500 records; this can be configured up to 2000.

Power Apps integrates with Power Automate for workflows, Power BI for analytics, and Teams for collaboration.

Easy to Mix Up

These come up on the exam all the time. Here's how to tell them apart.

Canvas Apps

Free-form, pixel-perfect design; drag and drop controls

Best for task-specific interfaces (e.g., a single form or dashboard)

Connects to many data sources (SharePoint, Excel, SQL, etc.)

No built-in business process flow; logic via formulas

UI is manually designed; full control over layout

Model-Driven Apps

Data-driven UI generated from Dataverse metadata

Best for complex business processes with multiple entities (e.g., CRM)

Primarily uses Dataverse as data source (can use other sources via virtual tables)

Built-in business process flows, business rules, and workflows

UI is automatically generated from forms, views, and dashboards

Watch Out for These

Mistake

Power Apps requires coding skills to build an app.

Correct

Power Apps is a low-code platform. Users can build apps using a visual designer and Excel-like formulas. No traditional programming language is required, though professional developers can extend apps with custom code.

Mistake

Canvas apps and model-driven apps are interchangeable.

Correct

They serve different purposes. Canvas apps give pixel-perfect control over UI; model-driven apps are data-driven with auto-generated UI based on Dataverse metadata. The exam expects you to choose the correct type based on requirements.

Mistake

All Power Apps require a premium Power Apps license.

Correct

Microsoft 365 E3/E5 includes Power Apps capabilities for customizing SharePoint and Teams. Premium licenses are needed for Dataverse, custom connectors, and AI Builder features.

Mistake

Power Apps can only connect to Microsoft 365 data sources.

Correct

Power Apps has over 300 connectors, including third-party services like Salesforce, Google Drive, and custom APIs via custom connectors.

Mistake

Power Apps is a standalone product with no integration.

Correct

Power Apps integrates deeply with Power Automate, Power BI, Teams, SharePoint, and Azure. It is part of the Power Platform and Microsoft 365 ecosystem.

Do You Actually Know This?

Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.

Frequently Asked Questions

What is the difference between a canvas app and a model-driven app?

A canvas app gives you complete control over the user interface by dragging and dropping controls onto a canvas, similar to designing a slide in PowerPoint. It is best for creating task-specific interfaces like a custom form or dashboard. A model-driven app, on the other hand, is built from Dataverse data and the UI is automatically generated from components like forms, views, and dashboards. It is best for complex business processes like a CRM system. The exam will ask you to choose based on requirements: if the user needs pixel-perfect control, choose canvas; if they need a data-driven app with business process flows, choose model-driven.

Do I need a separate Power Apps license if I have Microsoft 365 E5?

Microsoft 365 E5 includes Power Apps capabilities, but they are limited. You can build and use apps that connect to data sources within the same tenant, such as SharePoint and Excel, without an additional license. However, if you want to use premium features like Dataverse, custom connectors, or AI Builder, you need a Power Apps per-user or per-app license. The exam may test this distinction: a user with E5 can customize a SharePoint list with Power Apps, but to use Dataverse, they need a Power Apps license.

Can Power Apps be used offline?

Yes, Power Apps supports offline capabilities for canvas apps that use Dataverse as a data source. The app can cache data locally and sync changes when the device reconnects. For other data sources like SharePoint, offline is not natively supported, but you can use the Power Apps offline feature with Dataverse. The exam may ask about offline scenarios; remember that offline is available but requires Dataverse.

What is the role of Microsoft Dataverse in Power Apps?

Microsoft Dataverse is the underlying data platform for model-driven apps and a premium data source for canvas apps. It provides a relational database, security via role-based access control, business logic (business rules, workflows), and a metadata-driven UI. When you build a model-driven app, you define tables, columns, relationships, and forms in Dataverse, and the app UI is generated automatically. Canvas apps can also connect to Dataverse for advanced data management. The exam expects you to know that Dataverse is the premium data platform and requires appropriate licensing.

What are DLP policies in Power Platform?

Data Loss Prevention (DLP) policies are governance rules set by administrators in the Power Platform Admin Center. They control which connectors can be used together in an app or flow. For example, you can create a policy that prevents a SharePoint connector from being used in the same app as a non-Microsoft connector like Salesforce, to prevent data from being copied to external services. DLP policies are enforced at the environment level. The exam may ask about DLP as a security feature.

How do I share a Power App with users?

To share a canvas app, open it in Power Apps Studio, click 'Share', and enter the email addresses of users or security groups. You can also assign permissions (Can Edit or Can View). For model-driven apps, you need to share the app and also assign Dataverse security roles to grant data access. Users must have appropriate licenses (Power Apps license or Microsoft 365 license if the app uses basic capabilities). The exam may test the sharing process and license requirements.

What is the difference between a Power Apps portal and a canvas app?

A Power Apps portal is an external-facing website that allows users outside your organization to interact with Dataverse data. It uses Liquid templates and bootstrap for UI customization. A canvas app is an internal app that runs in a browser or mobile app, typically for authenticated users within the organization. Portals are licensed based on page views, while canvas apps are licensed per user or per app. The exam may ask which tool to use for external customer access; the answer is a portal.

Terms Worth Knowing

Ready to put this to the test?

You've just covered Power Apps: Low-Code Application Development — now see how well it sticks with free MS-900 practice questions. Full explanations included, no account needed.

Done with this chapter?