Web Resources and Other Dynamics 365 Assets
- Download all web resources and other Dynamics 365 assets into a new or existing Visual Studio project. Other assets include: charts, plugin configurations, TypeScript intellisense files, early bound classes, workflow XAML definitions, Power Automate (flow) definitions, SSRS and FetchXML reports, email templates, and sitemaps.
- Create new web resources in Visual Studio and add them to Dynamics 365.
- Edit the properties of the web resource directly in Visual Studio.
- Publish a web resource to Dynamics 365 with the click of a single button.
- Use Gulp to perform actions on a web resource prior to publishing to your organization..
- Refresh the contents of your local file from Dynamics 365 with the click of a button.
- Generate TypeScript intellisense files. In addition to the Xrm.Page object, intellisense is provided for attribute and control names and other parameters to Xrm.Page functions.
- Automatically add items to a specified solution whenever a file is created or published to your organization.
- Bulk link/add items to Dynamics 365 from an existing Visual Studio project using an intuitive dialog.
- Bulk upload and publish items to your ogranization.
- Bulk refresh items from Dynamics 365 to your Visual Studio solution.
- File paths are honored when downloading or creating web resources in CRM . This means that if you have the following name for a web resource: 'new_/Entities/Forms/AccountFormScripts.js', when downloaded into your Visual Studio project it will be saved to the following relative path: '..\new\Entities\Forms\AccountFormScripts.js'. Also, when creating new files and uploading them to CRM, XrmToolkit will suggest a name based on the relative path of the item in the file system.
- You can choose to minify your JavaScript and CSS web resources when published to your organization. This reduces the file size and thus speeds up the web page wherever the file is being reference.
- If your web resources are minified, you can optionally choose to 'Pretty Format' the file when downloaded from your organization into your Visual Studio project.
Plugins
- Build, update and publish your plugin assembly to Dynamics 365 with the click of a button.
- Use ILMerge as part of the build/publish process. You can easily setup your project to use ILMerge during the publishing process to Dynamics 365, with an intuitive GUI.
- Intuitive wizard for creating new plugins or custom workflows. This includes functionality for creating an early bound/proxy class at the same time. This process also generates the plugin configuration allowing you to register the plugin and any images with the click of a button.
- Templates for plugins and custom workflows that use a 'LocalContext' to provide easy access to the following: ITracingService, IOrganizationContext, Pre and Post images, and the target entity or entity reference.
- Plugin Registration Tool. Similar to the one provided in the Microsoft NuGet package but with the following enhancements:
- Configure everything without registering the actual records. This allows for setting everything up first and then registering with the click of a button. When you 'Un-register' an item, the configuration is left in-tact so that if you need to re-register it, you can do so with the click of a button.
- Ability to register multiple steps at the same time that are named based on your custom naming template, ie {messageName} - {primaryEntityLogicalName} which produces 'Create - Account'
- Ability to enable/disable multiple steps at the same time.
- Ability to view dependencies for a plugin/workflow/step with the click of a button. This is helpful if you need to unregister a workflow and need to know which workflows in CRM are using it.
- Ability to see other plugins registered for the same entity and message. This allows you to see the order of operations for a given entity and message which can be helpful when debugging and also when determining the 'order' of plugins.
- Ability to export the DLL of any plugin assembly stored in the Dataverse database.
- You can see any unregistered plugins or workflows in the plugin registration tool allowing you to register them without needing to upload the entire assembly just to register the plugin or workflow.
- Register web hooks and related steps
- Download a plugin assembly along with all of the registered items into a plugin configuration file in Visual Studio. This allows you to store a plugin and its registered steps and images in source control as part of your ALM strategy. You can also use this file to easily transfer a plugin and all of its registered items to another organization.
- Inject custom logic during the build process using MSBuild events. You have access to the following events and properties:
- Events:
- XRMTK_BeforeBuild - Called before using the built in build process of Visual Studio
- XRMTK_AfterBuild - Called after the build process of Visual Studio
- XRMTK_BeforeILMerge - Called before merging the assemblies using ILMerge
- XRMTK_AfterILMerge - Called after merging the assemblies with ILMerge
- XRMTK_BeforePublishAssembly - Called before publishing the assembly to CRM
- XRMTK_AfterPublishAssembly - Called after publishing the assembly to CRM
- Properties:
- Organization Name
- Organization Friendly Name
- Organization URL
- Discovery URL
- Currently selected CRM solution name
- Currently selected CRM solution GUID
- Currently logged in user
Early Bound Classes
Reports
Canvas Apps
- Download and extract all the Canvas App assets into a Visual Studio project.
- Pack and publish the contents of a Visual Studio project to Dynamics 265/Dataverse as a Canvas App.
Portal Websites
- Download your portal assets into a Visual Studio project.
- Edit and publish directory from Visual Studio back to Dynamics 365.
- Compare local assets to what is deployed to Dynamics 365.
- Automatically minify upon publish to Dynamics 365 and automatically prettify when downloaded from Dynamics 365.
Solutions
Similar to the LINQ query provider included in the Dynamics 365 SDK but with the following enhancements:
- Specify which columns to return. This is helpful if you need 'Read-only' properties like 'Created On' or 'Modified On' to be returned.
- Create 'In' or 'Not In' queries.
- Create queries with 'IsNotNullOrEmpty' or 'IsNullOrEmpty'.
- Support for aggregate operations like 'Sum', 'Min', 'Max', 'Count', and 'Average' including the use of 'Grouping'.
- Support for left outer joins for querying records where something is NOT present. For example, query contacts that have not had any activities in the last 30 days.
- Query based on the 'Id' property without first knowing what the name of the Id field is, ie 'accountid'. This is helpful when using late bound entities.
- Query using column comparison, ie 'ActualRevenue' > 'EstimatedRevenue'
- Support for querying hierarchical data, ie 'OwnedByMeOrMyReports'
- Filter queries by fiscal periods, ie 'ThisFiscalPeriod'
- Filter queries by time periods (year, week, quarter, month etc)
- Group results by time periods (fiscal periods, year, week, quarter etc)
- Support for the 'Between' operator for numeric, money, or datetime columns
- See what FetchXml is being executed for a query by using the 'ToFetchXml' extension method
- Support for the 'ColumnCount' operator
- Support for the 'Distinct' operator
- Starting with v5, a CLI is available that allows you to publish your custom plugin and workflow assemblies to Dynamics 365 without the need of Visual Studio. This means you can deploy directly from a build server or a command line. For more information see here.
Misc
| |