Extend Dynamics 365 Customer Engagement (on-premises)

In addition to various customizations, Dynamics 365 Customer Engagement (on-premises) supports enhancing the functionality of the system through several extensibility points. These include the development of custom plug-ins and workflow activities, responding to form and client side events using JavaScript code, using web resources, and more. These extension points can modify the very behavior and data processing of the system to suit your business needs.

When you develop an application that uses the Dynamics 365 Server, you use Web services to communicate with the underlying xRM platform layer. Dynamics 365 Customer Engagement (on-premises) 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 Dynamics 365 Customer Engagement (on-premises).

The xRM platform doesn't 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.

Dynamics 365 Customer Engagement (on-premises) SDK architecture.

In This Section

Supported Extensions for Dynamics 365 Customer Engagement (on-premises)
When you create extensions it's important that you choose to implement them in a supported way. This protects your investment by helping to ensure that you can upgrade to new releases of Dynamics 365 Customer Engagement (on-premises) and use the latest capabilities as they're released. This article describes which extensions are supported and which aren't.

The Metadata and Data Models in Dynamics 365 Customer Engagement
Dynamics 365 Customer Engagement (on-premises) use a metadata driven architecture to provide the flexibility to create custom entities and additional system entity attributes. This structure also makes upgrades and the transportation of customizations easier. The data structure can change without requiring any change to code in the Dynamics 365 Server or client applications.

Articles in this section describe how you can easily view the metadata, create and edit metadata with code, and query metadata to create dynamic applications that react to changes or metadata differences found in separate organizations.

Extend Dynamics 365 Customer Engagement on the server
This section describes capabilities to extend Dynamics 365 Customer Engagement (on-premises) on the server. Compared to extensions you can apply on the client, extensions performed on the server are applied consistently regardless of the client application used to interact with the platform. Whenever possible, extensions that apply business logic should be applied on the server.

Articles in this section describe how to deploy custom business logic using plug-ins, processes, the asynchronous service, Azure extensions and more.

Extend Dynamics 365 Customer Engagement (on-premises) on the client
This section contains information about changes developers and customizers make to extend Dynamics 365 Customer Engagement (on-premises) within the clients provided for Dynamics 365 Customer Engagement (on-premises): web application, Dynamics 365 for phones, and Dynamics 365 for tablets . You apply these extensions by using JavaScript and web resources. These clients are designed to allow you to add extensions that can be applied for all clients rather than each one separately.

Client extensions can provide a rich and responsive experience for users because the code runs on their device. However, critical business logic shouldn't be applied only by client-side scripts. Unlike extensions that are applied on the server, client extensions can't apply business logic for data entering the system by other means, such as integrations with other systems, custom clients, or data import.

Customize Dynamics 365 Customer Engagement applications
Dynamics 365 Customer Engagement (on-premises) client applications include the web application, Dynamics 365 for phones, and Dynamics 365 for tablets. Each of these clients references a common set of data that controls visual elements of the clients. This application metadata is usually edited using customization tools in the application or third-party tools. Other clients can also reference this application metadata if they want to use configuration options defined for specific organizations.

For an in-depth guide to customization by using the tools available in the web application, see the Customization Guide. The articles in this section describe the structure of the data edited by those tools or third-party tools.

Package and distribute extensions using solutions
Solutions give you a framework for packaging, installing, and uninstalling components that provide specific business functionality. Solutions are used by ISVs and other Dynamics 365 Customer Engagement (on-premises) solution providers to distribute extensions they create, but you'll also use them to transfer customizations between different organizations you may use in your development process, such as separate development, test, and production organizations.

Extend Dynamics 365 for Outlook
Microsoft Dynamics 365 for Outlook let users interact with data while they’re offline and not connected to a server. Dynamics 365 Customer Engagement (on-premises) includes features that let you extend your solutions to offline scenarios by calling the web services offline from your custom code. In addition, the Microsoft.Crm.Outlook.Sdk assembly provides programmatic support for basic Outlook actions such as synchronization, going offline or online, and Dynamics 365 for Outlook state verification. Offline programming uses the ASP.NET Development Server.

Dynamics 365 Customer Engagement (on-premises) include features that allow administrators to customize and manage filters for their users. Filter templates provide the starting point for entity synchronization on Dynamics 365 for Outlook. Filters determine which entity collections are synchronized to Outlook and to SQL Server 2008 Express Edition for offline-enabled Dynamics 365 Customer Engagement (on-premises) solutions.

Integrate Dynamics 365 Customer Engagement (on-premises) with SharePoint
SharePoint Server is a collaboration and content management application that simplifies how people store, find, and share information. It helps people to collaborate effectively by having secure access to documents and information that they require to make business decisions.

The SharePoint integration feature enables you to store and manage documents on SharePoint in the context of a Dynamics 365 Customer Engagement (on-premises) record, and use the SharePoint document management abilities in Dynamics 365 Customer Engagement (on-premises), such as checking the document in and out, viewing version history, and changing document properties.

Integrate Dynamics 365 Customer Engagement (on-premises) with OneNote
Set up OneNote Integration in Dynamics 365 Customer Engagement (on-premises) so that a dedicated OneNote notebook is automatically created for the selected entity records in Customer Engagement. This feature provides you the ability to easily take notes in the context of a Dynamics 365 Customer Engagement (on-premises) record in various formats such as pictures, drawings, formatted text (bullet points and tables), and voice recordings in a OneNote notebook. You can access the OneNote notebook directly on the activity wall in the Dynamics 365 Customer Engagement (on-premises) web client or from the record form in the Dynamics 365 Customer Engagement (on-premises) mobile apps.

Start here
Authenticate users in Dynamics 365 Customer Engagement (on-premises)
The Security Model of Dynamics 365 Customer Engagement (on-premises)
Model your business data
Manage Your Data
Manage your deployment
Sample code directory
Programming Reference