Monday 31 December 2012

Microsoft Dynamics CRM 2011 - Assemblies Included in the Microsoft Dynamics CRM SDK

Microsoft Dynamics CRM 2011 includes several programming assemblies that you can use when writing custom code.

The following table lists the assemblies that are included in the Microsoft Dynamics CRM SDK.

Assembly name: Microsoft.Crm.Sdk.Proxy.dll

Defines requests and responses for messages business data model specific (non-core) messages as well as enumerations required for working with organization data.

  • Namespace name: Microsoft.Crm.Sdk
Contains enumerations of possible picklists and integer values for some attributes. The naming convention of the classes is <EntityName><AttributeName> to make it easier to locate the specific attribute.

  • Namespace name: Microsoft.Crm.Sdk.Messages
Contains request and responses for business data model specific (non-core) messages.

Assembly name: Microsoft.Xrm.Sdk.dll

Defines the core xRM methods and types, including proxy classes to make the connection to Microsoft Dynamics CRM simpler, authentication methods, and the service contracts.

  • Namespace name: Microsoft.Xrm.Sdk
Defines the data contracts for attribute types, interfaces for authoring plug-ins, and other general purpose xRM types and methods.

  • Namespace name: Microsoft.Xrm.Sdk.Client
Defines classes for use by client-code, including a data context, proxy classes to ease the connection to Microsoft Dynamics CRM, and the LINQ provider.

  • Namespace name: Microsoft.Xrm.Sdk.Discovery
Defines all classes required to communicate with the Discovery Service, including the service contract, all request/responses and supporting classes.

  • Namespace name: Microsoft.Xrm.Sdk.Messages
Defines request/response classes for Create, Retrieve, Update, Delete, Associate , Disassociate, and the metadata classes.

  • Namespace name: Microsoft.Xrm.Sdk.Metadata
Defines the data contracts for Microsoft Dynamics CRM metadata.

  • Namespace name: Microsoft.Xrm.Sdk.Query
Defines query classes required to connect to Microsoft Dynamics CRM.

Assembly name: Microsoft.Xrm.Sdk.Workflow.dll

Defines types and methods required to author a custom workflow activity.

  • Namespace name: Microsoft.Xrm.Sdk.Workflow
Defines the attribute and dependency property classes required to author a custom workflow activity.

  • Namespace name: Microsoft.Xrm.Sdk.Workflow.Activities
Defines the workflow activities that are used by the Microsoft Dynamics CRM workflow designer.

  • Namespace name: Microsoft.Xrm.Sdk.Workflow.Designers
Defines a Microsoft Visual Studio designer for displaying a Microsoft Dynamics CRM workflow in Visual Studio.

Assembly name: Microsoft.Crm.Tools.EmailProviders.dll

Defines methods and types needed for developing a custom email provider component for the Microsoft Dynamics CRM Email Router.

  • Namespace name: Microsoft.Crm.Tools.Email.Management
Defines the email provider management types.

  • Namespace name: Microsoft.Crm.Tools.Email.Providers
Defines the base class for a custom email provider and supporting types.

Assembly name: Microsoft.Xrm.Sdk.Deployment.dll

Defines types and methods for interacting with the Deployment Web Service.

  • Namespace name: Microsoft.Xrm.Sdk.Deployment
Defines the data contracts necessary to communicate with the Deployment Web Service.

  • Namespace name: Microsoft.Xrm.Sdk.Deployment.Proxy
Defines a helper class to generate a proxy for the Deployment Web Service.

My above blog is based on Microsoft's Official information.
 
I hope this blog about 'Microsoft Dynamics CRM 2011 - Assemblies Included in the Microsoft Dynamics CRM SDK' was informative. Please feel free to leave your comments.

Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online - Programming Using Early and Late Binding

In Microsoft Dynamics CRM 2011, you can choose from several programming scenarios to find the model that best suits your needs. The programming scenario in Microsoft Dynamics CRM 4.0 used the Web Services Description Language (WSDL) with early bound classes for each entity, and the DynamicEntity class for late-bound programming. You were also required to use late-bound programming for plug-in and custom workflow development. All of this has changed with the new programming models.

The main development scenario for Microsoft Dynamics CRM 2011 no longer uses the WSDL. Instead, you now reference two assemblies that allow you to connect to any Microsoft Dynamics CRM system for both early and late bound types. This scenario can be described as late binding or loosely typed. To use late bound types, use the Entity class. This class defines a collection of attributes that can be used to get and set the values of attributes. To use this model, the exact logical name must be known (and specified) as a string.

Alternatively, you can use early bound classes generated directly from the metadata, which include all customizations. The generated classes provide early binding and IntelliSense to aid you as you write custom code.

The DynamicEntity class has been replaced by the base class Entity. This means that all types are discoverable at both build time and runtime, making all strongly-typed entities now loosely-typed entities. You can use both programming scenarios in the same code as shown in the following example:

C#:

Account entity = new Account();
entity["name"] = "My Account"; //loosely typed, late binding
entity.AccountNumber = "1234"; //strongly typed, early binding


The Microsoft Dynamics CRM SDK documentation includes samples that use both programming scenarios. The early bound samples use a file of strongly-typed classes that are generated with the code generation utility from a new, uncustomized installation of Microsoft Dynamics CRM. To run the samples, you must generate a file of strongly-typed classes from your installation. You can decide whether to create a proxy assembly from the generated code file or to include the file in your project directly.

My above blog is based on Microsoft's Official information.
 
I hope this blog about 'Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online - Programming Using Early and Late Binding' was informative. Please feel free to leave your comments.

Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online - Introduction to Programming Models

Microsoft Dynamics CRM 2011 offers several programming paradigms designed to give you the flexibility to decide what works best for your needs. An early-bound entity data model has been added that includes an "object services" layer that integrates with the stack and exposes entity values as .NET Framework objects. You can also use the late-bound scenario, which has changed for Microsoft Dynamics CRM 2011.

Programmability Scenarios:


The following diagram illustrates the key programmability scenarios for Microsoft Dynamics CRM 2011.

Key Programmability Scenarios
Key Programmability Scenarios

Use these Microsoft Dynamics CRM 2011 programming paradigms for the following:

  • Early-bound Microsoft Dynamics CRM 2011 uses an entity data model and Windows Communication Foundation (WCF) Data Services technologies to provide a new set of tools that simplify the development of Internet-enabled applications that interact with Microsoft Dynamics CRM. This also enables an additional programming paradigm: an organization service context that tracks changes to objects and supports .NET Language-Integrated Query (LINQ) queries to retrieve data from Microsoft Dynamics CRM.
  • Late-bound – This programming paradigm lets you write code that accesses entities that are not yet defined. For example, you may use this to write a custom search utility that will work for any installation of Microsoft Dynamics CRM, regardless of the customizations that you made. This paradigm also allows code to be written in a generic manner in such a way that it doesn't require a certain type of entity.
  • REST – The REST endpoint for AJAX and Microsoft Silverlight clients provides an alternative interface that you can use to work with Microsoft Dynamics CRM data. Rather than directly invoking the SOAP-based web service, you can execute requests using a service that is based on a URI.
  • WSDL – This programming paradigm lets you develop code from non-.NET clients, and does not depend on the use of Microsoft Dynamics CRM assemblies. For example, you can use this programming model to write code for Microsoft Dynamics CRM in Java.
My above blog is based on Microsoft's Official information.
 
I hope this blog about 'Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online - Introduction to Programming Models' was informative. Please feel free to leave your comments.