If you’re like me, probably your primary activity is not related with the CRM world, however from time to time probably you have been involved in CRM development. This post is to get you from 10mph to 45mph and for myself for future reference. Please bear in mind that this is not a post for experts, it’s a post for people not familiar or not directly linked in CRM stuff.

You can develop the following kind of code in Microsoft Dynamics:

-Client side JavaScript: this kind of development is very useful when customizing forms or event-oriented functionality. In general I’d say this kind of development fits if and only if you don’t need more than one page of code or when the functionality you need is web in nature (e.g.: integration with mapping services). Dynamics has its own object model, so you will find all the common information in easy to get properties or functions. Usually this code is embedded in the same form or external in another site. When your code is external you’ll need to provide a link or button to access it and that’s when a handy tool like Ribbon Workbench comes to help. The next step is passing parameters from a CRM view. If you need parameters like the current row selected in a grid use the API offered by Dynamics.

-Server side .Net code: you’ll find yourself writing this kind of code if you want to perform a synchronous/asynchronous task as response to an event. An event could be creating a new account or updating an incident. This event-oriented code is called a plug-in or an action. A plug-in is simply an interface implementation that must be registered. An action is a customized step in a workflow/process. The difference between them is that a workflow is always async and it could be scheduled; in other hand a plug-in is always on-demand, sync or async.

Other common task is reporting. Reports can be designed using the built-in Wizard (which has some limitations) or Business Intelligence Development Studio, which is sort of a Visual Studio based report builder installed by SQL Server. Here there is a good step by step guide about that

Finally I would like recommend this article about good practices to follow.


Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP

Intel Black Belt Software Developer