Skip to content

Base class and supporting extensions for Dynamics 365 Xrm Plugin Development. Includes IOC container and a Telemetry implementation that is compatible with Application Insights.

License

Notifications You must be signed in to change notification settings

ScottColson/CCLLC.Xrm.Development

Repository files navigation

This project in no longer active. Many compoentents have been ported to CCLLCCodeLibraries and modifeid for compatibility with process development outside of the Dynamics (aka PowerApps) framework.

This project provides a framework and a set of useful components for Dynamics 365 CRM plugin and workflow activity development. The assemblies generated by this solution are compatible with Dynamics CRM version 8/9 and Dynamics 365 (CE).

The code is written in C# using VS2017 however many of the newer language features are not used to allow compatibility with VS2015.

See Wiki for detailed documentation.

Built for Extensibility

A key design principle of this project is extensibility. It should be easy to modify or enhance plugins that inherit from the objects created in this project without having to change the code. To that end, the code for this project adheres to the concepts of coding to an interface and inversion of control.

If the implementation for a class doesn't meet your needs, you can change it either through inheritance and overrides, or by writing a completely different implementation for the defined interface. Either way, register your new implementation in the plugin or WFA IoC container and your done. Simple.

Assemblies

The solution produces the following assemblies which are also available via NuGet:

  • CCLLCIoCContianer Assembly. A very lightweight inversion of control container implementation. It is used in both the CCLLCXrmSdk Assembly and the CCLLCXrmWorkflow Assembly to inject dependencies. Using a container simplifies maintenance and extensibility of these assemblies.

  • CCLLCTelemetry Assembly. Provides the components needed to capture telemetry information for logging in an external system. It is a sandbox-safe implementation of a subset of the Microsoft\Applicationinsights-dotnet Sdk. It is fully compatible with Application Insights, but can also be extended to connect to custom telemetry system endpoints with alternate telemetry serialization schemes.

  • CCLLCXrmAppInsightsConnector. Provides a simple connector that can be installed in any plugin or WFA to enable telemetry capture to Application Insights. See sample project UsingXrmAppInsightsConnector to see how to implement this in existing plugins. Note the use of ILMerge to merge the supporting assemblies into the plugin dll.

  • CCLLCXrmSdk Assembly. Creates a standardized plugin development framework including standardized components for: encryption, configuration data access, data caching, and web requests. It also provides a standardized way to capture telemetry in Application Insights when desired. This assembly is dependent on the CCLLCIoCContianer Assembly and the CCLLCTelemetry Assembly as well as Microsoft.Xrm.Sdk (version 8.0.0.0 or newer.)

    The telemetry system implementation inside the CCLLCXrmSdk depends on the ExtensionSettings component provided in the assembly which expects to read data from an entity in the CRM system. If you use telemetry or you use ExtensionSettings for other purposes, you will need to install the CCLLC Extension Settings solution or generate your own version of this entity. Alternately you can override the ExtensionSettings implementation.

  • CCLLCXrmWorkflow Assembly. Extends the CLLCXrmSdk Assembly to create a standardized workflow activity development framework with access to all the same components. This assembly is dependent on the CCLLCIoCContianer Assembly, the CCLLCTelemetry Assembly, and the CCLLCXrmSdk Assembly as well as Microsoft.Xrm.Sdk (version 8.0.0.0 or newer) and Microsoft.Xrm.Sdk.Workflow (version 8.0.0.0 and newer.)

  • CCLLCXrmUtilities Assembly. Provides additional reusable components for CRM plugin and workflow activity development. This assembly is dependent on the CCLLCXrmSdk Assembly as well as Microsoft.Xrm.Sdk (version 8.0.0.0 or newer.)

About

Base class and supporting extensions for Dynamics 365 Xrm Plugin Development. Includes IOC container and a Telemetry implementation that is compatible with Application Insights.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages