Welcome to Dynamics in Motion

Mastering Dynamics 365 Development: A Beginner’s Guide to Writing Simple Plugins

Mastering Dynamics 365 Development: A Beginner’s Guide to Writing Simple Plugins

As a Dynamics 365 developer, writing a simple plugin is one of the most essential skills to possess. A plugin is essentially a piece of custom code that runs within the context of a Dynamics 365 environment. This means that it can interact with data and events in real-time and perform various tasks such as validation, automation, and customization. In this blog post, we will guide you through the process of writing a simple Dynamics 365 plugin.

Step 1: Setting up your development environment

Before you can start writing your plugin, you need to make sure that you have a suitable development environment. Dynamics 365 plugins are written in C# using the Microsoft Visual Studio IDE. Therefore, you would need to install Visual Studio on your machine and configure it for Dynamics 365 development. You should also ensure that you have access to a Dynamics 365 instance with system administrator privileges.

Step 2: Creating your first plugin project

Once you have set up your development environment, the next step is to create a new plugin project. To do this, open Visual Studio and select “New Project” from the “File” menu. Then, navigate to the “Dynamics 365” category and select “Plugin Library” as the project type. You should give your project a unique name and specify the version of Dynamics 365 that you will be targeting.

Step 3: Implementing the plugin logic

With your project created, you can now begin implementing the core logic of your plugin. A simple plugin might involve performing some basic validation when a user creates or updates a record in Dynamics 365. For example, you might want to ensure that a mandatory field is filled out before the record can be saved. To do this, you would need to write code that handles the “Pre-Operation” event of the relevant entity.

Here is a sample code to validate a mandatory field:

public void Execute(IServiceProvider serviceProvider)
// Obtain the execution context from the service provider.
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

// Check if the plugin was triggered by a create or update event.
if (context.InputParameters.Contains(“Target”) && context.InputParameters[“Target”] is Entity)
Entity entity = (Entity)context.InputParameters[“Target”];

// Check if the mandatory field has been filled out.
if (!entity.Attributes.Contains(“mandatoryfield”) || entity.GetAttributeValue(“mandatoryfield”) == null)
throw new InvalidPluginExecutionException(“The mandatory field is required.”);

Step 4: Testing your plugin

Once you have implemented your plugin code, you should test it to ensure that it works as expected. To do this, you can use the Dynamics 365 Plugin Registration Tool to deploy and test your plugin in a sandbox environment.

To test your plugin, create a new record in Dynamics 365 and make sure that the mandatory field is not filled out. You should then save the record and verify that your custom validation message appears.

Step 5: Deploying your plugin to production

After testing your plugin, you can deploy it to your production environment. To do this, you would need to use the Dynamics 365 Plugin Registration Tool to register your plugin assembly and configure it to run on the relevant events and entities.


Writing a simple Dynamics 365 plugin is a critical skill for any developer working on the platform. By following the steps outlined in this blog post, you should be able to create and deploy your own basic plugin. Remember to always test your code thoroughly before deploying it to your production environment, and to follow best practices when writing custom code for Dynamics 365.

Leave a Reply

Your email address will not be published. Required fields are marked *