Overview of building a model-driven app
Model-driven app design is a component-focused approach to app development. Model-driven app design doesn’t require code and the apps you make can be simple or very complex. Unlike canvas app development where the designer has complete control over app layout, with model-driven apps much of the layout is determined for you and largely designated by the components you add to the app.
Model-driven app design provides the following benefits:
- Rich component-focused no-code design environments
- Create complex responsive apps with a similar UI across a variety of devices from desktop to mobile
- Design capability similar to what’s is available in the Dynamics 365 customer engagement platform
- Your app can be distributed as a solution
The approach to model-driven app making
At a fundamental level, model-driven app making consists of three key focus areas.
- Modeling business data
- Defining business processes
- Composing the app
Modeling business data
To model business data you determine what data your app will need and how that data will relate to other data. Model-driven design uses a metadata-driven architecture so that designers can customize the application without writing code. Metadata means “data about data” and it defines the structure of the data stored in the system. Tutorial: Create a custom entity that has components in PowerApps
Defining business processes
Defining and enforcing consistent business processes is a key aspect of model-driven app design. Consistent processes help make sure your app users focus on their work and not on remembering to perform a set of manual steps. Processes can be simple or complex and often change over time. To create a process, select Advanced to open solution explorer. Next, on the left navigation pane in solution explorer select Processes, and then select New. More information: Working with business logic
Composing the model-driven app
After modeling data and defining processes, you build your app by selecting and configuring the components you need using the app designer.
Model-driven app components and designers
A well designed model-driven app consists of a several components the designer selects to build the appearance and functionality of the finished app. The components and component properties that designers use to make up an app become the metadata. To understand how each of these components relates to app design, they’re separated here into data, UI, logic, and visualization categories.
These components determine what data the app will be based upon.
|Entity||An item with properties that you track, such as a contact or account. Many standard entities are available. You can customize a non-system standard entity (production entity) or create a custom entity from scratch.||PowerApps entity designer|
|Field||A property that is associated with an entity. A field is defined by a data type, which determines the type of data that can be entered or selected. Examples include text, number, date and time, currency, or lookup (creates a relationship with another entity). Fields typically are used with forms, views, and searches.||PowerApps entity designer|
|Relationship||Entity relationships define how entities can be related to each other. There are 1:N (one-to-many), N:1 (many-to-one), and N:N (many-to-many) types of relationships . For example, adding a lookup field to an entity creates a new 1:N relationship between the two entities and lets you put that lookup field on a form.||PowerApps entity designer|
|Option set field||This is a special type of field, which provides the user a set of predetermined options. Each option has a number value and label. When added to a form, this field displays a control for the user to select an option. There are two kinds of option sets; option sets, where the user can only select one option, and multi-select options sets, which allow more than one selection.||PowerApps option set designer|
These components determine how users interact with the app.
|App||Determines the application fundamentals such as components, properties, client type, and URL for your app.||App designer|
|Site map||Specifies the navigation for your app.||Site map designer|
|Form||A set of data-entry fields for a given entity that matches the items that your organization tracks for the entity. For example, a set of data-entry fields that where user’s input relevant information to track a customer’s previous orders along with specific requested reorder dates.||Form designer|
|View||Views define how a list of records for a specific entity is displayed in your application. A view defines the columns to display, width of each column, sort behavior, and the default filters.||View designer|
Determines the business processes, rules, and automation the app will have. PowerApps makers use a designer that is specific to the type of process or rule.
|Type of logic||Description||Designer|
|Business process flow||An online process that walks users through a standard business process. For example, use a business process flow if you want everyone to handle customer service requests the same way, or to require staff to gain approval for an invoice before submitting an order.||Business process flow designer|
|Workflow||Workflows automate business processes without a user interface. Designers use workflows to initiate automation that doesn’t require any user interaction.||Workflow designer|
|Actions||Actions are a type of process that let you manually invoke actions, including custom actions, directly from a workflow.||Process designer|
|Business rule||Used to apply rule or recommendation logic to a form, such as to set field requirements, hide fields, or validate data. App designers use a simple interface to implement and maintain fast-changing and commonly used rules.||Business rule designer|
|Flow||Flow is a cloud-based service that lets you create automated workflows between apps and services to get notifications, synchronize files, collect data, and more.||Microsoft Flow|
Determines what type of data visualizations and reporting the app will have available.
|Chart||A single graphic visualization that can be displayed within a view, on a form, or be added to a dashboard.||Chart designer|
|Dashboard||Functions as a palate for one or more graphic visualizations that provide an overview of actionable business data.||Dashboard designer|
|Embedded Power BI||Add embedded Power BI tiles and dashboards to your app. Power BI is a cloud-based service that provides business intelligence insight.||Combination of chart designer, dashboard designer, and Power BI|
Advanced model-driven app making
The solution explorer is a comprehensive tool used for advanced model-driven app building. Within the solution explorer you can navigate through a hierarchy that consists of all app components using the navigation pane on the left side of the tool.
To open solution explorer, select Model-driven on the left pane of PowerApps.
Then select the Advanced tab.
Model-driven app development resources
For more information about model-driven app development, see these topics.
Modeling your data
Modeling and composing your app
- Create or edit entities
- Create and edit relationships
- Create and edit fields
- Create and edit global option sets
Working with business logic
- Business process flows overview
- Use Workflow processes to automate processes
- Actions overview
- Create business rules and recommendations to apply logic