Having just come back from an amazing time at Extreme365, I have had some time to digest and consider the content and discussions from the event and here is a brief write-up of my thoughts on the announcements and outcomes. These thoughts are my own and are premised around the v9.0.2 release of Dynamics 365 Customer Engagement (CE).
To start with, if you have not seen already, Microsoft have rearchitected the way Dynamics 365 CE is delivered. Traditionally the Dynamics 365 CE team hosted their own infrastructure and were responsible for this. Since December 2017, the infrastructure has all been moved to, and is running off, Microsoft Azure! This is a significant change as it affords the reliability, performance and scalability of Azure and removes the dependency on the Dynamics 365 CE team of having to maintain their own infrastructure. To give you an idea of how things have changed, consider the following:
The above represents the ‘old’ way of doing things where the Dynamics 365 CE team hosted their own infrastructure. The below represents how things look now that the infrastructure is being hosted by the Azure team:
You will note that most things have changed subtly but you should see that there have been 2 fundamental shifts:
- The xRM platform now underpins the entire Dynamics platform and the CDS and PowerApps platform (they have been unified and run off the same architectural designs)
- User interfaces have been consolidated in a presentation layer at the top of the stack and now have a single development base that is surfaced across multiple devices simultaneously
A number of people have been asking about why v9.1 wasn’t released in April and the reason is above. The platform changes meant that the timelines for delivering new functionality were too tight and this resulted in the functionality being pushed into a future release. That being said, the new architecture means that the Dynamics 365 CE platform is very easily able to embrace change and it was confirmed that updates to the platform can, and will, occur on a weekly basis. These updates will be more technical in nature and will represent the Update Rollup (UR) concept that we are used to today. Minor functionality updates will be delivered through updates to Microsoft-managed solutions such as Field Service and the timelines around these are monthly as a guideline because it depends on the velocity of the specific product teams and the requirements being realised from market requests. Major functionality updates are still being planned on a twice yearly basis as is the case today. One other nugget on this front is that Microsoft are breaking compatibility with the v9.x release. This means that when v10 is released in the future, any organisation wishing to upgrade to v10.x, will have to include an additional step by upgrading to v9.x first and then again upgrading to v10.x
One other significant change to Dynamics 365 CE, now that the CDS and Dynamics 365 CE share the same xRM framework, is that solutions have become more important in terms of the way the functionality is delivered. Below is a representation of the way in which the changes have been delivered from v8.x and now in v9.x:
Basically what has happened is that the core solutions have been split out so that smaller sets of functionality can be released more rapidly without the need for major releases. Dependencies on system components have also been revised to try and enforce the licensing model more efficiently amongst other things. A good summary video of these changes is available here: https://www.youtube.com/watch?v=D-AUhLIB05Q. Also worth noting is that Dynamics 395 v9.0.1 has been running on the CDS / new Azure xRM framework since December 2017. Since that date, the telemetry on the new platform has indicated that a general performance increase of between 5% and 20% is being experienced between v8.2.2 and v9.0.1. One other thing to take note of is that the new solution architecture will enable solutions and plugins to be rolled backed! Versioning here will obviously be important but this will be a major new capability in terms of release planning for customers. Please note that the instance structure is also changing. Going forward, there will be the following instance types: Production, Sandbox, Preview and Developer! Developer instances will be free but restricted to 1, maybe 2, users. These Developer instances will start as plain CDS instances, and will expand into the full ‘CRM Prime’ version by the end of the calendar year.
Most of the changes released as part of v9.0.2 were technical in nature so I will summarise some of the major technical ones below:
- Native connections to CosmosDB are available
- The framework for xRM –> xRM is in place. This will facilitate Dynamics 365 CE instance to instance operations as well as Dynamics 365 to CDS operations
- The web api has 99% parity in terms of functionality with the SOAP endpoint
- Plugin import behaviour is being enforced as per the documentation:
- A major or minor version can add or remove plugin types
- A build or revision updates can only add to the plugin type count
- In place updates can only add to the plugin type count
- Several updated Dynamics 365 CE Nuget packages have been released including CI/CD packages
- The Flow options from Dynamics 365 are running on the same infrastructure as LogicApps and will receive the same features and scalability
- A dedicated team is now looking after the developer tools and extensibility for both the xRM and CDS frameworks
- Release notes will be included from UR level up. Microsoft are looking at including release notes on weekly drops but they don’t want to slow down the cadence of the releases
- Since v9.0, 10 major features have been released
- The Office 365 Admin Portal is going to become the configuration hub for Dynamics 365 CE and CDS. This includes solutions, applications, backups and updates. The old admin experience directly through Dynamics 365 CE and the Settings -> Customisation experience is being retired
- CDS databases are going to load in the organisation browser through the portal. You can connect to these instances like normal Dynamics 365 instances
- Currently a CDS instance is separate to a ‘normal’ Dynamics 365 instance. Hooks are available currently to facilitate Dynamics 365 -> CDS operations but by August 2018, a ‘normal’ Dynamics 365 instance will be able to be deployed on CDS infrastructure, negating the need for the hooks
- Task flows are being positioned as the replacement for dialogues
- The Xrm.Tooling functionality has had a large amount of updates including:
- A new property to skip discovery which assumes that the connection credentials are correct and can save a quarter of a second on each connection
- Improvements have been made to the oAuth authentication mechanisms, saving an additional quarter of a second on each connection
- Caching has been reworked to speed up the connection and transactions in general
Finally, there has been a huge amount of functionality released on the new Common Data Service (CDS) platform which is shown below:
While the scope and in-depth features are beyond the remit of this post (see a complete write-up here: https://powerapps.microsoft.com/en-us/blog/powerapps-spring-announce), there is one important point around the types of apps that can be created.
Canvas apps are usually targeted at highly customised roles – or task-specific experiences that can pull in and mash up multiple data sources from virtually anywhere. Customised user experiences help make apps easily approachable so that users can jump right in without needing any/much training. This style of building provides pixel-perfect design control over the screens of your app, letting you create rich custom UIs in the WYSIWYG studio as follows:
While canvas apps start with the user experience, model apps start with data, relationships, business processes and forms. PowerApps then renders the user experience automatically based on the declarative model, creating the appropriate visuals based on device, form factor and even things like the assigned role of the app user. If you need to add a new field to your forms, just modify the entity form and it automatically starts to show up in all apps that use the updated form. Model-driven apps are great for apps with lots of forms and many possible user scenarios being required. Model apps are also how Dynamics 365 surfaces its apps and provides direct hooks into the customisation experience we have become used to, as follows:
Your app users will find both canvas and model driven apps in https://home.dynamics.com. Initially mobile clients for canvas apps and model driven apps will remain separate, but this will change later in 2018. Also, don’t forget that the consumption of PowerApps does require a license so they are not intended for users outside of the organisation.
I hope the above has been useful and make sure to check out the release notes for v9.0.2 if you haven’t already done so.