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.
The following diagram illustrates the key programmability scenarios for Microsoft Dynamics CRM 2011.
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 LINQ queries to retrieve data from Microsoft Dynamics CRM. For more information, see Use the Early Bound Entity Classes in Code.
- 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 made. For more information, see Use the Late Bound Entity Class in Code. 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. For more information, see Use the REST Endpoint for Web Resources.
- 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. For more information, see Development from Non-.NET Clients in Microsoft Dynamics CRM.