- SDK Changes :
With the release of Dynamics 365 (online), version 9.0, there are a lot of changes in our developer documentation
- New location: https://docs.microsoft.com/dynamics365/customer-engagement/developer/
- New name: Developer Guide
- No more monolithic SDK download
- Separation and fusion of reference content
- Client API documentation overhaul
- Detailed entity documentation
New name: Developer Guide
A Software Development Kit (SDK) is a combination of documentation and resources that developers use to build software. Until now, MS were using the term “SDK” to refer to the developer documentation for Dynamics 365 Customer Engagement and for the download package containing assemblies, tools, and the offline (CHM) version of the documentation. To clear up this confusion, and to be consistent with the terms MS use for all our documentation, MS will now refer to the developer documentation as the Developer Guide.
No more monolithic SDK download
Probably the greatest single change is that MS are no longer providing a single download package for all the documentation, tools and sample code.
Going forward, instead of shipping a single package with everything in it, MS will offer an a-la-carte approach so that you can download the individual things as you need them.
- Get the assemblies and tools you need.SDK assemblies and tools will be distributed only via NuGet. MS will provide a script that will allow you to download the assemblies and tools from NuGet. See Where to find the NuGet SDK packages and Download tools from NuGet.
- Self-serve offline content generation.The new docs.microsoft.com site will allow you to download a PDF for any of our content areas so that you can read and search the documentation while offline.
- Sample code availability. All our sample code will be available on microsoft.comor on GitHub. The code.msdn.microsoft.com site is designed for sample code and provides a good experience as well as providing us better metrics on usage.
- Download only the pieces you need.Various assets MS have included in the download package will be available as individual downloads. This way, if one of the assets needs to be updated MS can just update it without releasing the entire SDK package.
Contextual reference content
In the documentation for previous versions the conceptual content came first, followed by the programming reference topics (Dynamics 365 Customer Engagement Programming reference). While the conceptual pages linked to the relevant reference pages, this caused you to lose context of the page you were reading.
One of the cool features of docs.microsoft.com is the ability to present reference and conceptual content together. This provides the opportunity to bind the relevant conceptual content together with the most relevant reference content. This allows for fusion of the conceptual and reference information for a specific set of APIs.
Client API documentation overhaul:
The client scripting or client API has grown a lot since it was originally introduced with CRM 2011. With this release, MS have restructured the content to allow for better search results for individual APIs by providing dedicated pages for each API. This should help improve discoverability and provide us with more space to grow with samples and any new APIs which may come.
Detailed entity documentation
For a long time, MS have written individual topics about selected entities where MS provide a broad overview of the entity and relationships along with some lists of supported messages. But when it came to details, MS referred you to use separate tools to browse the metadata for your organization or to refer to an Excel spreadsheet in the SDK package.
- TLS Changes :
Starting with Dynamics 365 (online), version 9.0 we will begin requiring connections to customer engagement applications to utilize TLS 1.2 (or better) security. - Dot NET framework Changes
The most common fix for custom client applications built utilizing .NET Framework 4.5.2 is that they will need to be re-compiled using .NET 4.6.2.
NOTE: Plugins or Workflow Activities should continue to be built using .NET Framework 4.5.2.
- Web API improvements
The following improvements are included in this release of the Web API, our OData v4 endpoint:- Custom actions that return EntityReference, Entity, or EntityCollection types are available.
- Changes to API behaviors are available using the latest v9.0 version of the service, legacy behaviors remain available in the v8.x version. You don’t have to change your code when you upgrade.
- New messages: GrantAccess, ModifyAccess, and RetrieveSharedPrincipalsAndAccess messages are now available using the Web API.
- We have made the amount of service metadata smaller by not including annotations by default. If you need the annotations, you can use parameters to have it included.
- Client API enhancements
Using execution context to work with form and UI :
One significant change is that now you use the execution content to retrieve the form context where you want to run your script instead of using the Pageobject, which is deprecated in this release
Using global context
The Xrm.Page.context that is used to reference the client-side context is deprecated in this release. You should now use new Xrm.Utility.getGlobalContext method to retrieve the global context instead of going through the form context. The new method contains an equivalent of all the methods available for the deprecated Xrm.Page.context object to retrieve information specific to the organization, user, or client where the script is executed.
New client APIs
| New Namespace | Description |
| Xrm.Device | Provides methods to use native device capabilities of mobile devices. |
| Xrm.Encoding | Provides methods to encode strings. |
| Xrm.Navigation | Provides navigation-related methods. |
| Xrm.WebApi | Provides properties and methods to use Web API to create and manage records and execute Web API actions and functions. |
The following new APIs were introduced in the existing namespaces:
| Namespace | New APIs |
| formContext.data | – OnLoad event and even handlers (addOnLoad and removeOnLoad)
– isValid – Updated saveOptions in the formContext.data.save method to include a new value called saveMode to let the onSave event handlers know why the save is happening – attributes collection |
| formContext.data.entity | getEntityReference
isValid |
| formContext.data.entity attribute | isValid
setPrecision |
| formContext.ui | event handlers for the OnLoad event (addOnLoad and removeOnLoad) |
| Xrm.Utility | getAllowedStatusTransitions
getEntityMetadata getGlobalContext getLearningPathAttributeName getResourceString invokeProcessAction lookupObjects showProgressIndicator closeProgressIndicator refreshParentGrid |
- WebHooks integration
You will be able to integrate data from Dynamics 365 Customer Engagement to your own custom code hosted on external services using WebHooks. You can use the plugin registration tool to configure when to post Customer Engagement data to an external service. WebHooks is a lightweight HTTP pattern for connecting Web APIs and services with a publish/subscribe model. WebHooks senders notify receivers about events by making requests to receiver endpoints with some information about the events. By using the WebHooks model, you can secure your endpoint by using an authentication header or query parameter keys. This provides an alternative to the SAS authentication model that you may currently use for your Azure Service Bus integration.
- Vector Image web resources
Use vector images for any icon presented in the application. Vector images are defined as Scalable Vector Graphics (SVG) an XML-based vector image format. The advantage of vector images over other image web resources is that they scale. You can define one vector image and re-use it rather than provide multiple sizes of images. You can use this web resource to define a single icon for an entity rather different sized images.
- Support for localizable solutions
You can use RESX web resources to store localized strings for your solutions. The RESX XML format is commonly used to define localized resources so there is common tooling available to work with this type of file and localization vendors will be familiar with working with them. You can associate RESX web resources with any JavaScript web resource that uses them so that you can use a new client-side API to access localized strings at runtime.
- JavaScript Web Resource dependencies
JavaScript web resources frequently need to interact with other resources which can be other JavaScript libraries, images, attribute values, or the new RESX web resource for localized strings. You can now configure a JavaScript web resource to associate it with any dependent resources so that the resource is available when needed.
When a JavaScript web resource is associated to another kind of web resource, that web resource will be loaded automatically when the JavaScript web resource is requested in the application. When a JavaScript web resource used in a form script is associated to an attribute for a specific entity, that entity attribute will be available to the script even when a field for that attribute isn’t included in the form.
- Business process flow enhancements
Business process flows has been enhanced to offer the following changes:
- On Unified Interface, the setDisplayState method now lets you set a business process control in the “floating” state, in addition to “expanded” and “collapsed.” Similarly, the getDisplayState method can return “floating”, “expanded” or “collapsed” depending on the state of a business process control. The floating state is not applicable for the web client.
- You can now run process actions using the new client API: Utility.invokeProcessAction. The ability to programmatically run process actions using the new client API is released as a preview feature in this release. On the web client, you can run any process action using the new client API. However, on Unified Interface, only those process actions that are available to run as a business process step can be run using the new client API.
- Get and set the progress of a process action step using the new client APIs: getProgress and setProgress. Process action steps are buttons on the business process stages that users can click to trigger an on-demand workflow or action. Process action step is a preview feature introduced in the Dynamics 365 (online), version 9.0 release.
The getProgress and setProgress client APIs aren’t supported for the process data step.
Other Changes.
- Delete option in Audit summary view is in 9.0
- Cannot find Manage Document Suggestion in V 9.0
- Auto Numbering – Tab Changes of article , In campaign Suffix was not in preview is been fixed in 9.0
- Instant messaging presence option is changed to Skype for business Option, Default IM.
- Set the default card state for interactive dashboard
- Bing Maps is not getting loaded now, instead it shows an anchor tag to open Map in another tab.
What’s depreciated in V 9.0?
The announcements and deprecations described in this topic apply to Dynamics 365 Customer Engagement as of the July 2017 Update. Administrators and IT professionals should use this information to prepare for future releases of Dynamics 365. Customer Engagement refers to the applications that make up the CRM portion of Dynamics 365, which includes the Sales, Customer Service, Field Service, and Project Service Automation applications.
“Deprecated” means we intend to remove the feature or capability from a future major release of Dynamics 365. The feature or capability will continue to work and is fully supported until it is officially removed. This deprecation notification can span a few years. After removal, the feature or capability will no longer work. We are notifying you now so you have sufficient time to plan and update your code before the feature or capability is removed
Below are the list of depreciated functionalities
- Service scheduling in Dynamics 365 for Customer Service is deprecated
- Dialogs are deprecated
- Usage of Parature knowledgebase as the Dynamics 365 knowledge management solution is deprecated
- Project Service Finder app is deprecated
- Contracts, Contract Line Items, and Contract Templates entities are deprecated
- Standard SLAs in Dynamics 365 for Customer Service are deprecated
- Relationship Roles are deprecated
- Mail Merge is deprecated
- Announcements are deprecated
- Ready-to-use business processes available through Add Ready to Use Business Processes setting are deprecate
- IsInteractionCentricEnabled property is deprecated
- Silverlight (XAP) web resource is deprecated
Below are the list of client API’s that are depreciated
- Page
- Page.context
- Page.context.getQueryStringParameters
- Page.context.getTimeZoneOffsetMinutes
- Page.context.getUserId
- Page.context.getUserLcid
- Page.context.getUserName
- Page.context.getUserRoles
- Page.context.getIsAutoSaveEnabled
- Page.context.getOrgLcid
- Page.context.getOrgUniqueName
- Page.data.entity.save(string)
- Page.data.entity.getDataXml
- getData
- getEntity
- Mobile.offline
- Xrm
- addOnKeyPress
- removeOnKeyPress
- showAutoComplete
- hideAutoComplete
- Utility.alertDialog
- Utility.confirmDialog
- Utility.isActivityType
- Utility.openEntityForm
- Utility.openQuickCreate
- Utility.openWebResource