Custom Pages bridge the gap between Model and Canvas Apps, but to really use either to the best of their abilities you should be combining their features for the right use cases.
A common design decision we come across here at Aerie when building Model-Driven Applications is whether or not using a Custom Page or Embedded Canvas App is the right tool for the job. Let's start out with the definitions of the two apps:
Custom Page: A low-code app authoring experience with flexible layouts, styling and data connectors. These Pages are unique to Model-Driven Applications and have to be run through the Model-App player on your browser, tablet, phone or through Teams.
Canvas App: A low-code app authoring experience with flexible layouts, styling and data connectors. Can be run as an embedded app or standalone on browser, tablets, phones, embedded in Teams or SharePoint.
There are Pro's and Con's to choosing either as your solution to extend your Model-Driven App, so hopefully this helps you make your own decision.
- Can be run in 4 ways:
- Standalone as a navigation item in the Model-App menu
- As a popup on a view or form
- As a flyout on a view or form
- As a pane in the Model-App side panes
- Can access Model App context, such as the data you are looking at.
- Except for the standalone Custom Page, the other options must currently be launched from custom buttons or code.
- CANNOT be run as a standalone app. Custom Pages are good for extending functionality of an existing use case or process. Think adding features to end-to-end solutions.
- Does NOT require additional licensing. Is counted toward the license you would already need to run the Model-Driven app.
- Does NOT need to be shared with users. Inherited app usage from being able to run the Model-Driven App.
- Good for use cases already leveraging Dataverse.
- Considered a part of the Model-Driven infrastructure.
Embedded Canvas App
- Can be run in 5+ ways:
- As a standalone app on your phone, tablet, browser
- Embedded in a Model-Driven Form
- Embedded in Teams
- Embedded in SharePoint
- Embedded in Power BI Reports
- As an embedded app in Model Apps, has record context
- CAN run as a standalone app - which makes it good for single function use cases or processes. Think task based or role based applications.
- Good for use cases requiring connectors that are not Model Apps / Dataverse driven.
- Could POTENTIALLY require additional licensing if you are using a paid or custom connector.
- DOES need to be shared with users in order to run the app.