What's New in v6.

Support for Visual Studio 2019

Using XrmToolkit with Visual Studio 2019 (any version that supports addins) is now supported.

Visual Studio 2019 is requiring that extensions now be loaded asynchronously which required several changes to the way things were being loaded. You will now see a 'Loading XrmToolkit Asynchronously...' menu item in the main until XrmToolkit has been loaded by Visual Studio.

Visual Studio 2019 has also reorganized where extensions are loaded and how they appear in the main menu. There is a new 'Extensions' top level menu:

Support for MFA (Multi-Factor Authentication)

Multi-Factor authentication is growing in popularity for many web applications, including D365. Consequently, support for authenticating against Dynamics 365 organizations that have it enabled has been added in v6. You can now specify an 'MFA App Id' and 'MFA Return URL' in the 'Advanced' tab of the login dialog. For more information see here.

Improved Intellisense Generation For TypeScript/JavaScript

TypeScript and JavaScript intellisense has been rewritten to take advantage of the new language service used in Visual Studio 2017 and Visual Studio 2019. Starting with Visual Studio 2017, the JavaScript language service is actually using TypeScript under the hood to provide intellisense and code analysis (see more here). While this is great for the long term for Visual Studio users, it also broke the JavaScript intellisense files that were generated by XrmToolkit which relied on dynamic analysis of the code file. This has been remedied in v6 by simply using the improved TypeScript intellisense files generated by XrmToolkit.

Prior to v6, intellisense for TypeScript was provided by hooking into the Visual Studio API's and dynamically manipulating the intellisense completion list based on the files created by XrmToolkit. Starting with v6, XrmToolkit generates native TypeScript definition files based on your specific Dynamics 365 organization. Visual Studio (and other extensions like ReSharper) are able to provide intellisense based on these definition files. This will ensure compatibility into the future and any improvements by the IDE around this functionality will automatically be included. For more information see the documentation page here.

Improved Generation of Proxy Classes

Since v1 of XrmToolkit (CRM Solution Manager), proxy class files have been self contained including the enums that are generated for any optionsets. This worked well until you wanted to re-use a global optionset. Each proxy contained their own enum type for the global optionset and so you couldn't simply reference a single enum if two proxy classes used the same global optionset. Starting in v6, a file is created for each enum and placed in an 'Enums' sub-directory:

Similar to other linked resources, you can simply right-click on the file to refresh the generated content from CRM.

Support for SVG and Resx Web Resources

Now you can create, download and link webresources for both SVG and RESX files.

Ability to specify the Connection Protocol when connecting to CRM

Prior to v6, it was not possible to specify which TLS protocol to use when connecting to your CRM organization. While this was not an issue with most organizations, there were some instances where XrmToolkit was not able to connect to a particular organization due to this. Now you can specify which TLS protocol to use when connecting to your organization. You can do this on the 'Advanced' tab of the connection dialog:

Breaking Changes