The SDK articles don’t appear to be live on MSDN yet so below I listed out the topics in the “What’s New for Developers” section. Over the next few weeks we will be posting about these topics in more detail so be sure to check back!
Certain system entities and all custom entities can be enabled to display images in the application. People using the web application can upload images for entity records. For more information, see Entity Images.
The Access Team is a new type of the team that doesn’t own records, but, has access to records. Unlike with owner teams, you can create any number of access teams to work on the same records and have team members with different levels of access rights to the record. More information: Use teams to collaborate and share information.
Business process flow
The Business Process Flow is a new type of the process (workflow) for creating visualizations to guide users through various phases of business processes. Each phase can contain a number of logical steps that have to be completed before a user can move to the next phase. You can customize the business process flow by adding or removing steps, changing the order phases, or adding new entities to the process flow. More information: Model business process flows, and Enable Entity Capabilities.
The existing workflow execution model that supports asynchronous workflows has been extended to support real-time (synchronous) workflows. Real-time workflows are not queued, as was the case with asynchronous workflows, but execute immediately on-demand or in response to a message being processed by the execution pipeline. Real-time workflows can optionally participate in the database transaction and perform similar functionality to plug-ins, yet can be created by the end user through the web application workflow designer. Developers can create real-time workflow through code. In addition, real-time workflows provide the core processing functionality of actions. For more information about real-time workflows, see Create real-time workflows.
Developers can extend the functionality of the standard Microsoft Dynamics CRM system by creating custom messages, with associated request/response classes, known as actions. These actions are available to business applications through web service calls. Typical use of actions is to add new functionality to organization web service or to combine multiple organization web service message requests into a single request. For more information about actions, see Create your own actions.
Mobile and rich client development
The OData service endpoint has been enhanced with the addition of authentication support for external mobile and rich client applications. Previously, the OData service endpoint supported only pre-authorized client (script) code provided in web resources. Once an authentication token has been obtained from the OData endpoint, client applications can use that token when sending SOAP based requests to the web services. For more information about the new authentication capability, see Authenticate the user with the web services. For information about mobile application development, see Write mobile and modern apps.
Field level data encryption provides higher security for sensitive data, for example passwords stored in an entity record of Microsoft Dynamics CRM. For more information, see Field-level data encryption.
Solution version compatibility changes
Starting with this release, solutions exported from a newer version of Microsoft Dynamics CRM cannot be installed into older versions. This includes major/minor version differences. For more information see Version compatibility.
Asynchronous solution import
The new ExecuteAsyncRequest message supports importing solutions, which is a long running operation, as an asynchronous process. This enables improved interactivity for users that are working in an organization during the same time that a solution is being imported. For more information see Execute messages in the background.
Quick start for developers
New documentation has been added that provides an easier and faster learning experience for developers or non-developers new to Microsoft Dynamics CRM technologies. For more information see Quick start to managed code application development.
Read-optimized forms removed
Read-optimized forms were a feature that allowed for forms that were optimized for consumption of data. For more information, see the Read-Optimized Forms topic in the in the Microsoft Dynamics CRM 2011 SDK.
Duplicate detection not supported during record create and update in forms
Duplicate detection during create and update using the new forms is not included for entities with the updated user interface. Duplicate detection of individual records won’t be supported for custom entities as well. However, to detect duplicates in bulk, you can use the BulkDetectDuplicatesRequest message and the RetrieveDuplicatesRequest message.
This functionality can be added by using client scripts and web resources. You can find an example showing how to do this in the following location in the SDK download:
SampleCode\JS\DuplicateDetection. Download the Microsoft Dynamics CRM SDK package.
More information: Detect duplicate data
Phone number formatting for String attributes
String attributes can be formatted to allow click-to-call using Lync or Skype. Adding this capability required the addition of a new FormatName property to the StringAttributeMetadata class and the addition of a StringFormatName class containing members to set valid values. For more information see StringAttributeMetadata formats.
New form programming methods and event
There are new form APIs included in this release. More information: New form programming methods and event.
AttributeMetadata.AttributeTypeName replaces AttributeMetadata.AttributeType
AttributeMetadata.AttributeType has been deprecated in favor of the new AttributeMetadata.AttributeTypeName property. This new property returns members from the AttributeTypeDisplayName class.
This change was necessary to support the new ImageAttributeMetadata class. The AttributeType value for this class will return AttributeTypeCode.Virtual because there is no value in the AttributeTypeCode enumeration to describe this type. Use AttributeMetadata.AttributeTypeName to retrieve values that correctly identify all types of attributes.