General

  1. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. Add Entity Metadata and Lookup values as Javascript Class

    Create Javascript/Typescript classes containing entity metadata and lookup values that can be added to a Form and referenced for intellisense.

    6 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  3. Add Actions and Views to generated proxy classes

    It would be great to be able to select Actions and Views to automatically generate their own proxy classes. For Actions, it would generate a strongly-typed proxy that accepted the typed parameters and returned the output parameters. For Views, it would generate a proxy that lets you quickly get results from System Views on each entity by just querying that View proxy. This way you could quickly model queries in Dynamics in the Advanced Find and then easily reference them in code.

    6 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  4. Add Entity Metadata Repository Instead of hardcoded metadata information inside proxy classes, it would be awesome to provide this informati

    Add Entity Metadata Repository
    Instead of hardcoded metadata information inside proxy classes, it would be awesome to provide this information inside a repository.

    Something like:

    var entityRepositoryItem = MetadataRepository.GetEntity(param entity);
    var attributeItem = entityRepositoryItem.GetAttribute(string name);

    Console.WriteLine(attributeItem.Max Length);
    Console.WriteLine(attributeItem.Logicalname);
    ...

    6 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. publish on Build instead of Save

    I tried using the option to auto-publish on Save, but I actually save a lot (because VS crashes hurt) and only want to incur the publish delay when things are in a particularly good state. In other development this is when I do a Build, and I do build my CRM client scripts (Typescript ftw), so my ideal would be for a build to publish files changed since the previous build. Slightly less ideal but still good: publish all of the project's checked-out files. Worst case, manually flagging files to publish works, too.

    5 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  6. Ensure correct DateTime operations

    Ensure correct DateTime operations. Now Dynamics CRM supports two mode of working with dateTime attributes.
    With or without UTC conversion.

    It would be nice if generated proxy will take it into consideration.

    5 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  7. 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 :)

    5 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  8. Pretty print the sitemap xml

    ...so that when I commit it to source control, I can use standard diff tools to review changes

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  9. edit and publish ms portal web templates / pages from visual studio

    similar to the webresources editing capabilities it would be very handy to be able to download edit and publish ms portal web pages and templates from visual studio.

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. Execute publish and connection in parallel

    Connecting to online instances of D365 can be a little slow so waiting for this step to complete before compiling and then uploading assembly/code is time consuming. I suggesting starting the connection attempt and building the project (plugin) at the same time, once they are both complete, upload. This will save 10-15 seconds per publish which happens a ton of times over the course of a work day.

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  11. Allow setting of all properties on Proxy Classes

    When using a projection to get only certain fields from an entity via a LINQ query, allow setting read-only properties such as CreatedOn and FullName (on the Contact entity).

    For example, the below query will not build because CreatedOn currently allows only get. I propose adding a setter for it as well.

       var q = from p in ctx.CreateQuery<Account>()
    
    orderby p.Name
    select new Account
    {
    Id = p.AccountId,
    AccountId = p.AccountId,
    Name = p.Name,
    CreatedOn = p.CreatedOn
    }

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. Enhance the Picklist Attribute Intellisense Feature to use a constant to represent the numeric value for the SetValue method.

    The current intellisense feature for picklist attribute will generate something like this.
    Xrm.Page.getAttribute("new_dropdownfield").setValue(912210002);

    The value 912210002 makes it less readable for future maintenance. A suggestion is to rather do the following.
    Xrm.Page.getAttribute("newdropdownfield").setValue(PicklistAOption1);

    Define PicklistA_Option1 in the same file automatically or in an enumerations.js file that can be include.
    As part of the Web Resource Minification remove this reference.

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. Add StringLengthAttributes to string properties of auto generated classes.

    Would it be possible to add StringLengthAttributes to string properties of auto generated classes? The length should reflect the maximum length of the CRM field.

    https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.stringlengthattribute(v=vs.95).aspx

    It would help much, because right now setting a value that is to long for CRM does not raise an exception but just leaves to field empty in CRM (nothing is saved).

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  15. 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:

        /// &lt;summary&gt;
    
    /// Configuration manager
    /// &lt;/summary&gt;
    protected readonly IConfigurationKeyManager _configurationKeyManager;

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. 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)

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  17. Connecting to CRM Online MFA using developer's own credentials (with SDK Control)

    The current implementation (with App ID + App Secret) to connect to environments where MFA is enabled assumes we can easily get App ID and Secrets.

    In highly secured environments, we have situations where these App ID and Secrets are created for specific reasons, for specific usages and cannot be shared by multiple users (e.g. devs + XRMToolkit). It would be helpful to have the ability to pop-up the SDK control for authentication so developers can use their own credentials to login with MFA (XRM Toolbox does this)

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  18. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  19. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. v4 - Default the name of the of plugin step when registering

    Right now when you register a plugin step the name is blank. I suggest that name to be default to something.

    for example if the Plugin is 'MyPlugin' and the Message is 'Update' and the entity is 'Opportunity' then default the plugin name to 'MyPlugin - Update - Opportunity'

    A configurable default would be nicer (as I'm sure there are a lot of different naming standards out there)

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for the suggestion! This has been implemented in v4.3 based on a hard coded algorithm. We agree that using a template would be great and so until this portion is implemented we’ll keep the status set to ‘started’.

  • Don't see your idea?

General

Categories

Feedback and Knowledge Base