Microsoft Dynamics 365 Blog

-[A] You should put that in the SDK

-[B] The SDK? But I’m using the SDK, I’m calling the webservice. Do you want me to put it in a plug-in or something?

-[A] No, just put it in the written SDK

-[B] Oh, you mean on the onLoad event of the form

-[A] No, the SDK, the documentation


This type of conversations happen quite often even within the CRM product team :/  We often use the term SDK interchangeably to refer to different things.  I’m sure almost everybody in the IT community has heard the term SDK at least once; but what does it mean?  More importantly for the CRM community, what does it mean in our context?

SDK stands for “Software Development Kit” and it usually refers to any type of documentation or tools that enable programmers to develop software for a specific system. As you can see, this is a very broad definition which I will try to narrow a little bit in the context of Microsoft Dynamics CRM.

In theory, for Dynamics CRM 3.0, the acronym SDK should always refer to the collection of documents, samples and extra help files that illustrates:

  • How to use the client side API which is basically JavaScript objects/functions contained, most of them, in the crmForm object. It also refers to certain events triggered on CRM forms (such as onLoad)

  • How to use the server side API, constituted of the two CRM Web Services:  CrmService.asmx and MetadataService.asmx

  • How to customize CRM UI via isv.config and sitemap

  • How to integrate custom applications and pages into your installation

  • How to use workflow and workflow assemblies

  • How to use the ‘Eventing framework’; which are basically events that fire-up on certain operations such as pre-create of entities

  • How to use callouts which are basically dot net assemblies attached to events

  • How to create custom reports

Now comes the confusing part. The term SDK is also used, perhaps erroneously, to refer to the actual API’s available in CRM.


Therefore you will hear the CRM community refer to the “server side SDK” as being the backend/webservices part of CRM (sometimes also known as “platform”) which is understandable since the classes themselves have “sdk” as part of their namespace.  Others may also refer to the “client SDK” as being the client side API.


To be honest it will be quite difficult to argue what actually constitutes an SDK so my only recommendation is that whenever you refer to an SDK make sure to clarify what you mean by it J


Humberto Lezama Guadarrama

We're always looking for feedback and would like to hear from you. Please head to the Dynamics 365 Community to start a discussion, ask questions, and tell us what you think!