App composition

Completed

Determining app composition is a critical responsibility for a solution architect. App composition refers to determining how many apps are needed and what type they should be. Deciding how many apps to create and which features to include in each app are key parts of the composition process.

Choose the number and type of apps for your solution

Solution architects should consider the following principles when selecting which apps to build:

  • Avoid large, monolithic apps.
  • Too many small apps can overwhelm users who must frequently switch contexts.
  • Components can be used by multiple apps, enabling app composition that targets users with specific needs.
  • Offer targeted mobile apps for groups of users to help save time when they're away from their desks.

Important

A solution architect should consider which user communities use each app, when they'll use it, and on which devices. Mapping the apps to user roles and tasks can help guide decisions about the number and type of apps to build.

Extend existing apps or create new apps

Microsoft Dynamics 365 includes apps such as Sales Hub and Customer Service Hub. You can extend these built-in apps or create new ones tailored to your needs.

Using and modifying an existing app might:

  • Expose new features when updates are released
  • Include features that you don't need
  • Include components that can't be reused or replicated in custom apps

Creating a new app will:

  • Provide complete control over what is included
  • Require manual addition of new features to the app navigation
  • Enable the use of custom forms and views with a defined structure

Determine which type of app to build

Model-driven apps are built on the data model in the Dataverse environment. Views and detail screens in model-driven apps are based on the data structure. These apps offer a consistent appearance and behavior across screens without requiring manual design effort.

Model-driven apps are useful in scenarios where business logic is complex, such as:

  • Sophisticated data models
  • Business process management
  • Tracking activities associated with data

Canvas apps can be built with or without a Dataverse database. They use connectors to access data and services. Canvas apps begin with a blank screen that you can manually design to meet user interface requirements. This flexibility enables you to control the placement of each element on the canvas.

Choose canvas apps when users require a tailored user experience. Canvas apps offer:

  • A graphical, intuitive interface
  • The ability to create a user interface based on specific requirements
  • Integration across multiple systems by using connectors

Note

Consider building a model-driven app unless there's a specific need for a canvas app. Model-driven apps help accelerate development because they don't require manual UI design.

Use multiple apps for distinct business roles

Your business process might require more than one app. In the following scenario, a solution is needed for creating and reviewing expense reports. Tasks are distributed across different user roles.

Tasks for each step of the business process.

Because the expense report process includes distinct task sets, you should consider building multiple apps. Although users share the same data, each app can provide a user experience tailored to specific roles and scenarios.

Canvas apps are well suited for employees who need to complete the expense form. For example, Lee can use a mobile-friendly canvas app that works offline and is intuitive to use.

A canvas app for expense report creation.

In the preceding image, Abhay has the following requirements:

  • Must be able to review all expense reports and receipts
  • Responsible for ensuring compliance for each report
  • Handles a large volume of work and needs to process information quickly
  • Needs to report how expenses align with the budget

To support these tasks efficiently, a model-driven app is a better fit for Abhay. It enables fast access to all details of submitted reports, budget analysis, and related vendor information.

A model-driven app for processing expense reports.

This example scenario illustrates how you can use both canvas and model-driven apps together. Although they're distinct app types, they can share data centralized in Dataverse.

Screenshot of two apps with data in Dataverse.