The CRM Explorer that integrates with VS 2012 IDE provides a view of all Entities and we can select a particular Entity against which plug-in’s can be registered.

CreatePluginDialog

Right click on the Account entity and select Create Plug-in option and this will bring up the Create Plugin dialogue.

Some of the features of Create Plug-in dialogue include:

  • Plugin Dropdownlist: This list will provide the list of assemblies in the solution as we can attach more than one plug-in to an entity
  • Class: This will the name of the Custom class that we will writing code against.
  • Primary Entity Dropdown: Locked against the entity selected.
  • Message: This indicates the actions for which code is written.
  • Execution Order: As several plug-ins can be registered against we can specify the sequence order like 1,2,3 etc.

Once the required information is entered and the end VS2012 solution should like the one below:

CreateSolutionComponents

The CrmPackage is the one that will be used to deploy the plug-in and RegisterFile.crmregister is similar to Web.Config/App.Config  files and contains information about the plug-in that will be deployed to the CRM system.

The following will be the contents of the RegisterFile.crmregister file before custom classes are created using Create Plug-in dialog box.

CrmRegisterFile

After a Create Plugin option is selected against a entity the resulting file will look like this the value Id=”000….” indicates that the plug-in is not deployed to the CRM system yet:

Plug-inVS2012

Right Click on the CrmPackage and choose the Deploy option once successfully deploy the contents of above file will be modified and the Id value will be populated. The following screen snap shots demonstrate the various stages:

PluginDeploy

PluginSuccessfulDeployRegisterFile

You can also view the plug-in in CRM solution as shown below. In this instance I am looking at Event Management solution that I have been working on:

Plug-inCRMSolutionView1

Plug-inCRMSolutionView2

In the next section I will be expanding on the plug-in functionality along the way look at early/late binding programming models, debugging and tool(s) available that might be better than CrmSrvUtil.exe for generating the strongly type classes.