General
-
Typescript Intellisense XRM Namespace
Please make the Namespace of the current "XRMBase" changable or put it fixed to Xrm.
It's pretty annoying when working with Xrm.Utility... etc. so you gotta fake it every time with declare const Xrm: XrmBase<any> or something similarAfaik the intellisense files are created by xrmdefinitelytyped(?) and they have a setting for that but where to store the config?
3 votes -
Add ClassName Data Slug for Plugin Step Naming Templates
I like the Custom Naming Template for Plugin Steps feature. However all of our plugin steps that run on for instance Update of a Contact Post-Operation are all named "Update - Contact - Post-Op" with no data slug listed in the settings to allow differentiation between them.
This recommendation is to simply add a {className} (similarly named) that would be the class name of the plugin that the step is for. This would allow use to differentiate steps registered for different plugins on the same entity easier.
3 votes -
Possibility of generating ProxyClasses with Properties-class only
Some Proxy Classes can be very large (eg. SystemUser - around 1.5MB) causing the assembly to grow quite significantly, but they can have very limited usage in the actual plugins / workflows, eg. only for strong typing attribute names inside a Fetch Xml or a Query Expression.
I would like it to be possible to have an option when adding a Proxy Class to a project to make it "Strong Typing only" and have just the ProxyClass with the inner Properties class generated to keep it small in size.
I would also like regenerating of such Proxy Class to update…
1 vote -
Plugin registration shown Execution User column
Would be great to see at a glance the plugin message executing user as a column. This would quickly identify which messages are registered as impersonations.
3 votes -
Support Visual Studio 2022 (Currently Preview 2.1 is available)
Visual Studio 2022 is coming soon and currently available as Preview 2.1. Is XRMToolkit going to be supported?
19 votesSupport for VS2022 will most likely be part of the next major release (v8). There is quite a bit of refactoring required to split out the logic since the move to 64 bit is being used as an excuse to break the existing Visual Studio API’s. There will most likely be 2 versions of the extension now, one for VS2022+ and one for VS2019 and VS2017.
-
Customer Self-Service Portal
Login. See the invoices, license count and license id of licenses my company has purchased so i can easily transfer license if staff leave our organisation.
2 votesThis is planned as part of the next major release (v8)
-
Drop idea "D365 Tools Window" - not re-inventing XrmToolbox concept
Instead provide your "tools" as XrmToolbox plugin for paying customers, if the tools you sell offer a reasonable extra value compared to those already available in XrmToolbox.
Rather focussing on things XrmToolkit differentiates from any other tool.
4 votes -
Add ability to use NPM for Web Resources, as well as unit tests
Nodejs projects natively use npm as the package manager, which works better with TypeScript (in my experience at least). Unit testing would be made easier as well. Those that would rather use nuget should be able to use .NET Core projects, which also includes native TypeScript unit test support as described in the documentation:
2 votes -
Add OrganizationServiceContext support to proxy classes like early bound classes
it would be great if OrganizationServiceContext could be used like early bound class's with "Crm Service Util" or Entity Frameworks
how i imagine using
create OrganizationServiceContext then use the context to query (like ef or the context created when generating early bound class's with "Crm Service Util")
update multiple entities using the awesome smart change tracking
run a single context.SaveChanges() (like ef or "Crm Service Util" but with the smart change tracking keeping track of what needs changing saving)
4 votes -
add javascript base form without attributes intellisense
Sometimes you don't know how the form will look like when you code, and then you might want to code defensively, could it be possible to have an execution context that allows us to do this, ie.
function OnFormLoad(executionContext: XrmBase.ExecutionContext) {
var firstNameAttribute = executionContext.getFormContext().getAttribute("firstname");
if(firstNameAttribute != null) firstNameAttribute.getValue();
}3 votes -
Support for Powerapps Component Framework
Support PCF development which currently requires a lot of additional scripting to build/publish into CDS/XRM. This looks set to replace replace custom web resources so would be an appropriate progression for the product.
May be worth considering a change of name to CDS or PowerApps Toolkit?
14 votes -
XrmToolkit Site License
Is a site license possible to purchase?
1 vote -
Automatically validate strong name
Sometimes when using ILMerge, the strong name is not valid when the dll is created. It would be a nice feature to validate the strong name first before uploading. And if the strong name is not valid, automatically resign the dll to fix the issue.
1.) Run sn -vf *.dll
2.) Confirm that the dll is either a delay or test signed
3.) Run sn -R *.dll *.snk
4.) Confirm that the dll is now valid1 vote -
CRM data model in source control
We would like to have crm data model to be kept in TFS including entities and fields. We want to track/version any changes on the data model, associate these changes with proper workitem in source control.
5 votes -
Add summary comments to generated public/protected code
In our environment warnings are generated during deployment if any public or protected class, method, or property has no summary and param comments. We use Swagger which utilizes these comments.
For Example:
/// <summary>
/// Gets the error string.
/// </summary>
/// <returns>The error string.</returns>
/// <param name="attributeName">Attribute name.</param>
/// <param name="defaultErrorType">Default error type.</param>
protected override string GetErrorString(string attributeName, BaseProxyClass.eErrorType defaultErrorType)
{
if (_errorStrings.ContainsKey(attributeName))
{
return _errorStrings[attributeName];
}
return defaultErrorType == BaseProxyClass.eErrorType.Text ? TextError : NumberError;
}3 votes -
New versjon for Vistual Studio Code (Js/Ts functions + publish)
A light versjon that only support Javascipt/TS with Vistual Studio Code - generating intel. fiels for Js/TS and with publish to CRM funksjon.
- more if you like :)
12 votes -
extract interface from class with comments
When you want to create an interface for a class you can use the helper "extract interface" on the class definition. This does not copy the leading comments used with tools such as Swagger; i.e. the comment block created with the three forward slashes ///
For example:
/// <summary>
/// Configuration manager
/// </summary>
protected readonly IConfigurationKeyManager _configurationKeyManager;3 votes -
Ability to register plugin as data provider
I would like the possibility to register a plugin as data provider. Data providers are used in virtual entities.
6 votes -
Generate POCO or DTO early binding classes
Generate POCO or DTO early binding classes which do not have any references to the SDK. Any 1:n relationships are created as Property LIST<MyEntity>. Any Optionsets are generated as enums in separate file so there are no duplicates (i.e. status and statusReason ). The ability for these POCO classes to then generate an XSD without error. At run time AutoMapper could map from POCO to ProxyClasses
3 votes -
Support versioning of custom workflow assemblies
It would be nice if XrmToolkit supported the concept of versioning workflow assemblies in Dynamics. If you increment the major or minor build number of a workflow assembly, you can register a new copy of that workflow assembly with that new version and then switch over the workflows to the new version at your leisure. Here's an article on how it works: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/workflow/update-custom-workflow-activity-using-assembly-versioning
8 votes
- Don't see your idea?