LEARN

If you are new to the concept of building Dynamics 365 plugins, you should start here. This page will give you a basic understand of Dynamics 365 plugins, how they work, and why they are so powerfull.

LEARN
SOLID

Read about the software princip SOLID, and how this Kipon.Solid plugin framwork helps you create Dynamics 365 plugins according to these basic princips of software development.

SOLID
INSTALL

Read how easy it is to get started. A step by step guide on setting up a Visual Studio project for Dynamics 365 plugins, using the Kipon.Solid plugin framework as starting point for you development.

INSTALL
API

See detailed API description on how Kipon.Solid plugin frameworks extends the Microsoft.Xrm.Sdk and related tools to make it easier and more natural to build event driven extensions to the Dynamics 365 platform.

API
DEPLOY

See how easy it is to deploy your code to your Dynamics 365 instance, and get a basic understanding on how the deployment model works, and how it is different from the Core tools, provided by Microsoft.

DEPOLY
TEST

Learn how you can easy add a unit test library, and use the Kipon Dynamics 365 Fake implementation to unit-test you library without even having a Dynamics 365 instance involved. The Kipon Dynamics 365 Fake implementation is providing a data-in-memory based implementation of the IOrganizationService that helps you do the basic unit-testing without having to deploy and run your code in a real Dynamics 365 instance.

 Test
EXAMPLES

When you need to get started fast, nothing beats good examples, that end-2-end demonstrate how to solve common problems. In the list of examples you will get input such as "hello world", but also some in-dept description on how to solve commen problems such as unique numbers, inforce constrains and more.

 Example

About Kipon.Solid.Plugin

The Kipon.Solid.Plugin is the accumulation of many years of experience building plugin-based extension for the Dynamics 365 CE platform.

Building Dynamics 365 plugins are pretty simple, and basically you just create a class that implements Microsoft.Xrm.Sdk.IPlugin. Thats it. But in real world there is a lot of details you need to understand, do- and don't, and the interface it self does not ensure that your implementation becomes maintainable or even understandable for other than your self as a programmer.

Kipon.Solid.Plugin tries to bridge that gab by providing a simple starting point that gives you all the basics you need to stay as SOLID as the Dynamics 365 platform it self. While the interface of the platforms are very generic, you must diig deep in the documentation to find solutions for actual problems.

On top of that, plugins must be registred in the Dynamics 365 platform before the code is executed. A tool, decoupled from your code has been put in place by the Microsoft team, but these registrations are cumbersum to setup and maintain, and there is not a "compile-time-garantee" that your registration of plugins correspond to the actual code. If your code is written with the assumption that it is executed on pre-event, but registred on post-event, the actual behavior of the code will be very different, depending on what you are actually doing.

By providing an integrated tool, that is defining how to write your plugins, and on top of that, tools that deploy your code to Dynamics 365 CE, based on the code your have actually written, this gab is elliminated.

I recommend that you diig into the Solid chapter to get a basic understanding of the concept, and how this framework helps you stay SOLID when building plugins. After that, can diig into Install, Api, Deploy, Test and examples for an in dept understanding and detail how-to.

Have fun, and reach out on the GIT project if you find something not working as expected.



Git project



© Kipon ApS 2020, 2021, 2022. All content on the page is the property of Kipon ApS. Any republish or copy of this content is a violation. The content of this site is NOT open source, and cannot be copied, republished or used in any context without explcit permission from the owner.