Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

The extensibility model of Microsoft Dynamics CRM

Applies To: CRM 2015 on-prem, CRM Online

The extensibility platform is the heart of Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM Online. When you use the Microsoft Dynamics CRM SDK, you are building on top of this system. The Microsoft Dynamics CRM platform supports several types of deployments with the power of choice: Microsoft Dynamics CRM Online, Microsoft Dynamics CRM installed on your own server (on-premises), or a hosted deployment of Microsoft Dynamics CRM. The security model protects the platform from unauthorized access across the Web.

When you develop an application that uses the Microsoft Dynamics CRM server, you use Web services to communicate with the underlying xRM platform layer. Microsoft Dynamics CRM uses a metadata driven architecture to provide the flexibility to create custom entities and additional system entity attributes and also to make upgrades and enable transportation of solutions easier. This allows for changes in the data structure without requiring any change to code in Microsoft Dynamics CRM.

The xRM platform does not impose business-specific logic. This layer imposes only generic constraints such as security. It contains the building blocks for an application, but by itself is nothing more than a collection of related objects. However, the interaction between those objects is used to implement more extensible logic such as the quote-to-order-to-invoice processing and pricing logic.

The xRM platform also controls access to data through security, controls access to the database, and raises events for workflow processes and custom business logic implementations (plug-ins). The platform layer provides for both incoming and outgoing email processing through Microsoft Exchange Server.

Microsoft Dynamics CRM Extensibility Architecture

Microsoft Dynamics CRM SDK architecture

WCF Web Services

Microsoft Dynamics CRM provides a dynamic Web service interface for applications to use to access and manipulate platform data, metadata, and to interact with platform services, implemented using the Windows Communication Foundation (WCF). These services allow you to write .NET applications using Microsoft Visual Studio or non-.NET applications using other developer tools by simply referencing the Web services. The Web services exposed by the platform are WSI BP 1.1 compliant. This compliance support makes the Web services interoperable with non-Microsoft platforms. For more information about using the Microsoft Dynamics CRM Web services, see Write applications and server extensions. For more information about Web services, see the .NET Framework Developer Center. You can also read the article XML Web Services Basics.

Processes (formerly Workflows)

The process feature supports extending the functionality of the Microsoft Dynamics CRM system by enabling the user to create and execute custom business processes. A Microsoft Dynamics CRM process is built on top of Windows Workflow Foundation, which provides the programming model, run-time engine, and tools for quickly building processes. This includes XAML processes and custom process activities (.NET assemblies). There are two categories of processes in Microsoft Dynamics CRM: workflows and dialogs. For more information about processes, see Write workflows to automate business processes.


Microsoft Dynamics CRM provides an extension mechanism for implementing validation and custom platform-based business logic. You are not limited to creating custom business logic through workflow processes alone. You can also construct business logic that is integrated with Microsoft Dynamics CRM and executes in response to a particular system event for a specific entity.

Plug-ins support an event handler interface that is based on a pipeline execution model. The pipeline model allows for event handlers, also known as plug-ins, to be executed before or after the core operation of the system. When an action occurs caused by user interaction with the Web application or a Web service call, the platform checks for registered event handlers. If a handler is registered for notification, the platform executes a well-defined event handler method, passing it run-time information. For more information, see Write plug-ins to extend business processes.

Client Application Extensions

Client application extension features allow you to build a solution and add it seamlessly into the Microsoft Dynamics CRM user interface. Client extension features can also be used to create implementation specific customizations or modify the user experience. All client programming code is stored in the Microsoft Dynamics CRM database. This enables the solutions to be transported easily from one deployment to another, and also for the code to function in CRM for Outlook. For more information, see Developers guide to customization for Microsoft Dynamics CRM.


Microsoft Dynamics CRM includes reports that provide useful business information to the user. You can use these reports as templates for creating your own custom reports using Microsoft SQL Server Reporting Services Report Builder. You can also use filtered views to create custom reports within Microsoft Dynamics CRM and directly in Microsoft Office Excel and Microsoft Access. There are two types of reports in Microsoft Dynamics CRM: SQL-based reports and FetchXML-based reports. For more information, see Developers guide to reports for Microsoft Dynamics CRM.

You cannot access filtered views in Microsoft Dynamics CRM Online because access to the SQL database is not supported in Microsoft Dynamics CRM Online.

See Also

Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM Online
Send comments about this topic to Microsoft.
© 2015 Microsoft. All rights reserved.
© 2015 Microsoft