Ways to extend Dynamics 365 Model-Driven Apps capabilities
The goal of the Power Platform cloud service is to enable end-users to build business applications quickly, easily, and with less custom development effort. Power Platform components offer a lot of business value already by default, by leveraging the out-of-the-box capabilities.
In addition, all of the existing offerings have a lot of extensibility options. There are four levels of extensibility for such components:
Standard capabilities of the Power Platform components can be used as they are, and this is true specifically for Dynamics 365 first-party apps, which are already implementing business workloads. However, in most cases, it is necessary to extend the standard capabilities to cover specific customer requirements. Some other Power Platform components do not provide any ready-to-use capabilities, but rather a platform for building solution components. Using standard capabilities does not require any effort to enable them.
Configuration is the simplest extensibility option for Power Platform components. We define configuration as everything that can be done by using simple settings, entering configuration data, and so on, without modifying the structure of the component. A good example of configuration can be to define the product catalog in Dynamics 365 Sales or to design marketing emails in Dynamics 365 Marketing. Configuration, in most cases, can be performed by the administrators or power users of the solution.
Customization is the process of extending the capabilities of the Power Platform components by extending the structure or building new solution components. However, this is always done without using a programming language. A good example of customization can be extending the DataVerse and user interface, as well as building canvas apps, Power Automate flows, or Power BI datasets, reports, and dashboards. For this type of extensibility, the citizen developer skills are sufficient.
Understanding client-side extensibility
This offers a standard user interface design that can fulfill most of the usual customer requirements. In the case of specific and advanced requirements, there are multiple possibilities for improving the user interface's look and feel, as well as functional capabilities. You can also build completely customized client-side capabilities
Standard custom controls - The simplest way to improve the user interface of DataVerse, specifically entity forms or views, is to use custom controls instead of the default controls. Power Platform allows users to develop their own custom controls to be used on the DataVerse user interface (entity fields and views). The technology that's used for developing custom controls is called Power Apps Component Framework (PCF), and the generic name for the developed components is code components.
Web resources - Using web resources is the traditional approach of extending the DataVerse user interface, and it is a capability from the early days of Dynamics CRM.
Embedding canvas apps - Another interesting way we can extend the DataVerse user interface is by embedding canvas apps into Dataverse entity forms. This makes it possible to build tailored and visually appealing user interface elements.
Understanding server-side extensibility
Extending a solution on the server-side is an option that must be used mainly in the following scenarios:
The standard automation capabilities are unable to cover advanced requirements
There is a need to develop a custom batch processing solution
There is a need to develop an alternate client application
There is a need to develop an incoming or outgoing integration with the DataVerse solution
DataVerse API interface types - The foundation for any DataVerse server-side extensibility is the API. The API contains a rich set of interfaces that can be used to perform the Create, Read, Update, and Delete (CRUD) transactions on any data within DataVerse. It also allows you to call specific advanced methods going beyond the basic CRUD transactions. DataVerse offers the following types of API interfaces:
Web API - This is the OData version 4 REST-based endpoint. It's recommended that you use it for all new custom development solutions. This endpoint provides full capabilities for all DataVerse transaction types.
PlugIns & custom workflow actions - Solutions that are implementing PlugIns and custom workflow actions must use the organization service with the respective assemblies since this is the only supported way to perform actions against DataVerse.