• Girijesh Dixit

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.


Custom development is the most complex type of Power Platform extensibility. It always requires using a programming or scripting language to extend the solution capabilities. Good examples of custom development can be developing PlugIns or custom workflow actions in C#, client-side event handlers in JavaScript, or Power Apps component framework controls in TypeScript. Custom development is an area dedicated to IT pro developers since deep IT knowledge is required.


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.


Command bar/ribbon extensibility - Web resources of type code (JavaScript) can be further used to extend the command bar or ribbon with additional features.


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.


Happy learning.

56 views0 comments