Skip to content
| Marketplace
Sign in
Visual Studio>Tools>XrmToolkit

XrmToolkit

Simpler Software

|
31,225 installs
| (12) | Trial
XrmToolkit integrates your Dynamics CRM 2011, CRM 2013, CRM 2015, CRM 2016, and Dynamics 365 solutions directly into Visual Studio.

XrmToolkit.com

Web Resources and Other CRM Assets

  • Download all web resources and other CRM assets into a new or existing Visual Studio project. Other assets include: charts, plugin configurations, JavaScript and TypeScript intellisense files, early bound classes, SSRS and FetchXML reports, and the organization sitemap.
  • Create new web resources in Visual Studio and add them to CRM.
  • Edit the properties of the web resource directly in Visual Studio.
  • Publish a web resource to CRM with the click of a single button.
  • Compare your local file to what is currently in CRM with the click of a button.
  • Refresh the contents of your local file from CRM with the click of a button.
  • Generate JavaScript and 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 CRM.
  • Bulk link/add items to CRM from an existing Visual Studio project using an intuitive dialog.
  • Bulk upload and publish items to CRM.
  • Bulk refresh items from CRM to your Visual Studio solution.
  • Build and publish your Silverlight project as a web resource with the click of a button.
  • 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 CRM. 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 CRM into your Visual Studio project.

Plugins

  • Build, update and publish your plugin assembly to CRM 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 CRM, 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 CRM SDK 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.
    • 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 CRM 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.
    • Plugin assemblies are cached locally for quicker loading of the Plugin Registration tool.
  • 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

  • Easily generate early bound classes using the CrmSvcUtil engine. Integrated directly into Visual Studio, you can select which entities you want to generate and the corresponding classes will be placed each in a separate file. The OrganizationServiceContect file is also automatically generated and placed in you project.
  • Enums for all the optionsets are generate and placed in a separate file.
  • Quickly regenerate a specific class or classes by pressing a button.
  • Choose to generate the class and function names using either the 'Display Name', 'Logical Name' or 'Schema Name'.
  • Optionally choose to add a prefix or postfix to the class names at the time of generation.
  • Create XrmToolkit Proxy Classes similar to the classes generated by the CrmSvcUtil engine but with the following benefits:
    • Change tracking - When updating an entity, only push the properties that have changed to CRM instead of all properties that have a value. This helps reduce the noise and size of the audit logs as only the properties that have changed are logged to CRM. This also improves the speed of custom applications that process large amounts of data since only records that are changed push to CRM. If a records values do not change then 'Saving' the record does not create an 'Update' request.
    • Allow CRM constraints on attributes to be handled without any coding:
      • Auto truncate strings if they are longer than the max length
      • Automatically adjust numeric values to their min or max if the value falls outside the bounds
      • These can be adjusted on a per-entity basis
    • Provide additional design time information like the 'Logical Name', 'Max Length', 'Max Value', 'Min Value', 'Precision'.
    • Methods on option sets to easily retrieve the display text.
    • Smaller compiled file size than the classes generated by the CrmSvcUtil application.
  • When CRM metadata is refreshed, you can optionally choose to automatically regenerate your early bound/proxy classes.

Reports

  • Download reports (Organization or Personal level) to your SSRS project.
  • Update and deploy to CRM with the click of a button.
  • Specify all report properties directly in Visual Studio without going to CRM.

Solutions

  • Link as many CRM organizations to your Visual Studio project.
  • Set a 'Current Solution' which XrmToolkit automatically adds to when new web resources, plugins, steps, reports, etc are published to CRM. If existing assets are updated and published to CRM they are also added to the solution. When using the 'Edit Entity Permissions' dialog, any roles that are updated are also automatically added to the solution.
  • Bulk link/add items from an existing Visual Studio project to CRM using an intuitive dialog.
  • Bulk upload and publish items to CRM.
  • Bulk refresh items from CRM to your Visual Studio solution.

Misc

  • Edit permissions for an entity for all roles at once. After creating a new entity, its often necessary to set permissions for all the different roles regarding that entity. Now you can easily view/set all permissions at once for all the roles for that particular entity.
  • Edit all aspects of the CRM sitemap with an easy-to-use GUI.
  • Configurations and other data is stored in files that can be committed to source control. This allows for using in team environments where multiple people are working on the same solution.
  • Enhanced LINQ Query Provider. Similar to the LINQ query provider included in the CRM SDK but with the following enhancements:
    • Ability to specify which columns to return. This is helpful if you need 'Read-only' properties like 'Created On' or 'Modified On' to be returned.
    • Ability to create 'In' or 'Not In' queries.
    • Ability to create queries with 'IsNotNullOrEmpty' or 'IsNullOrEmpty'.
    • Ability to create simple aggregate queries like 'Sum', 'Min', 'Max', 'Count', and 'Average' including the use of 'Grouping'.
    • Ability to create a left outer join for querying records where something is NOT present. For example, query contacts that have not had any activities in the last 30 days.
    • Ability to query based on the 'Id' property instead of first knowing what the name of the Id field is. This is helpful when using late bound entities.
  • Metadata is stored locally in a cache and data is only loaded from CRM on-demand . Allows for operations to process much faster than if the metadata needed to be retrieved from CRM every time.
  • Choose to automatically refresh the entity metadata every time you logon to the organization. This could optionally trigger the regeneration of all early bound/proxy classes you have generated in your solution. This means your classes are always kept up-to-date.
  • Manually retrieve any metadata changes from CRM with the press of a button.
  • Manually clear the local metadata cache and retrieve the metadata from your CRM organization.
  • Contact us
  • Jobs
  • Privacy
  • Terms of use
  • Trademarks
© 2021 Microsoft