For CRM developers, aligning the engineering delivery and process quality of their CRM projects can substantially increase overall productivity. In addition, by documenting, communicating, and following a consistent process for implementing CRM in Enterprise scenarios, developers can scale projects more quickly and efficiently by adding and ramping up consultants regardless of their previous experience with any specific project.
To provide developers with the ability to create and manage on-premise CRM solutions in an integrated Visual Studio environment, the Microsoft Dynamics CRM Engineering for Enterprise (CRM E2) team initiated and sponsored the development of the Microsoft Dynamics CRM Developer Toolkit. The Toolkit has been designed to make it easier for developers to customize, extend, and maintain an on-premise CRM solution, all from within an integrated Visual Studio environment. Key benefits for developers include the ability to:
- View All CRM Entities – Displays a listing of CRM entities that are dynamically available from the CRM Explorer within Visual Studio 2008
- Create and Update CRM Entities – Allows for creating new entities and updating existing entities from within the CRM Explorer experience
- Create a Wrapper Class – Provides the ability to auto-generate wrapper classes for entities, which exposes the CRM entities and their corresponding attributes as classes and properties respectively to enable development of code to interact with the entities
- Generate Plug-in Code – Enumerates the available Plug-ins for an entity and generates the code necessary to jumpstart the plug-in development process
- Integrate the Build and Deploy Process – Simplifies the process of building and deploying a CRM solution
- Deploy Across Multiple Servers – Assists in deployment and maintenance of Windows installer packages across multiple environments
Important: CRM DevToolkit Installers v1.1 (released on 04/16/09) addresses the following minor issues, which were discovered in the initial release of the CRM Solution Framework:
- The code-generated RetrieveDynamicEntity did not work on any derived classes because it did not know which entity to reference.
- A static field returned the same ID for any (and every) instance of any entity type (i.e. creating 5 phone calls and retrieving the ID of the record and resulted in the same ID).