1. BreezeJS Feature Suggestions

Help us make Breeze.js better by letting us know what you’d like to see next.

Suggest new features, vote on existing ones, or fork Breeze in GitHub and send us a pull request.

  1. Not assume identity columns are part of a primary key.

    Throughout breeze it is assumed that if an entity has an identity column, that column is part of the primary key. Identity columns do not have to be part of the primary key.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. 44 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  3. Propagate the .NET [RegularExpression] validation to the client

    [RegularExpression] should join [Required], [MaxLength], [StringLength] as a DataAnnotations validation attribute automatically propagated to the Breeze client through metadata. It's powerful. It should be relatively easy as it is string-based and regular expression specifications are (almost) the same in .NET and JS. See also [this StackOverflow question](http://stackoverflow.com/questions/16383161/regular-expression-server-side-unrecognized-by-breeze)

    50 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. Better support for ordering by navigation property

    When ordering by a navigation property and using skip-take pagination, skip-take is processed before the ordering, which is counter intuitive. You get this:

    Page 1: A, B, C, D
    Page 2: A, B, C, D

    Instead of

    Page 1: A, A, B, B
    Page 2: C, C, D, D

    When using query.from('Foo').expand('Bar').orderBy('Bar.A').skip(10).take(10). It works as expected when ordering by a regular property of Foo.

    2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. RESTfull conception support

    RESTfull concept suggests to use different http methods(get/post/put.delete) for CRUD operations with specific request params and responses. Also it suggests send only necessary info.(for ex. no need send entityAspect for RESTfull API).

    Similar functionality exists in JayData. Will be great if Breeze will support this functionality too. It'll be usefull for big apps, for api which have to be shared to other clients and expand area of usage.

    Also this functionality will add supporting DTO without writing own context provider for breeze.webapi .net framework because in this no need to use breeze.webapi .net. Generally users will develop asp.net web api…

    214 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    14 comments  ·  Flag idea as inappropriate…  ·  Admin →
  6. 338 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    11 comments  ·  Flag idea as inappropriate…  ·  Admin →
  7. Support .NET Validation Attributes

    It would be great if the .NET validation attributes defined on the business model were sent along with the metadata. One benefit of this feature would be that we wouldn't have to redefine error messages on the client side.

    278 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    10 comments  ·  Flag idea as inappropriate…  ·  Admin →

    A quick update for this request:

    We’re probably 50% there today, but hope to get to 80% soon. This is certain to get done, but we’re just not there yet.

  8. Expose a method on the EntityManager to "unwrap" an entity instance (toJS).

    There are a few use cases where an entity instance needs to be sent to the server to an MVC API controller (for example for async server side validation); to do this, it is necessary to obtain an unwrapped version of the instance (plain JSON) that contains no internal properties such as entityAspect and uses properties instead of observables (ko.mapping.toJS is not suitable because of the former). Also, because the client configuration allows for a different naming convention, the method should be able to translate the names back to the naming convention originally used by the server.

    Such a method…

    202 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. Update samples to use typescript

    Provide samplese that use breeze and typescript

    114 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. Asynchronous validation

    I'd like a feature that will consent to perform asynchronous validation.
    Actually, a custom validator like the one below will always return as undefined so a falsy value. It would be great valFunction will be evaluated after the db response.

    function createExistingUsernameValidator() {
    var name = 'existingUsernameValidator';
    var ctx = { messageTemplate: 'Existing username', displayName: "Username" };
    var val = new Validator(name, valFunction, ctx);

    return val;

    function valFunction(value, context) {
    var result = ko.observable(true);
    require('services/datacontext').getIsUserByUsername(value, result)
    .then(function () {
    debugger;
    return !result();
    });
    }
    }

    16 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  6 comments  ·  Flag idea as inappropriate…  ·  Admin →
  11. Add missing MetadataStore functions for Typescript

    The `setEntityTypeForResourceName` method of the `MetadataStore` class does not exist in TypeScript definitely typed d.ts file. This appears to be a method of the public API (since the unpublished TempHire sample app calls this method) but it is not accessible to TypeScript because there is no definition for it. Suggest to define this missing method. There are a few others too: getEntityTypeNameForResourceName, getIncompleteNavigationProperties, etc...

    5 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  12. Support NancyFx

    Add api support for NancyFx framework.

    56 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. EntityManager validation

    Allow validators to be added to the EntityManager right away, have EM 'hold' them until MetaData is retrieved, and than add them accordingly. Instead of putting that on the client of EM...

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. JSON serialization of CLR Enum types (string/number) should be configurable (on the server/client)

    Hello. I am currently working in a project using BreezeJS with Entity Framework and TypeScript.

    I found it unfortunate that Breeze decided to change the server-side serialization of CLR Enum types from their numeric representation (usually int) to the string representation (.ToString()).

    TypeScript supports enum types, and by defining enums both on client and server, we could have a had type-safe, strongly typed enums also in our client scripts.
    The plan was to generate a TypeScript file containing all enums used across our entites as post-build-event using reflection.

    But after the Breeze serialization changed, this will not work.

    I would…

    42 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  15. 124 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  6 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. Add decimal precision and scale to metadata

    t doesn't appear as though the breeze metadata includes the precision and scale of decimal types. It simply identifies a property as "Decimal". The information is available in EF models. Is this something that could be added to the metadata and retained in dataproperty?

    I believe similar attributes may be useful for other numeric types.

    15 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  17. Demonstrate How to Debug Metadata Exceptions

    If I navigate to api/breeze/metadata, it returns proper json for my Entity Framework DbContext. However, when called from the app, it just returns Metadata queryfailed, NaN. Would be good to know what is wrong. I have unit tested the context and it is fine. Perhaps a validation screen where you paste in your json and it tells you what is wrong or not supported. thanks.

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  18. Support local databases

    I am writing an "offline" application that may occasionally connect to a server, but not with EF and one I do not control. Locally, I am using SQLite to store data. I would love to use breeze capabilities like the LINQ-style API with the locally stored SQLite data (this is a WinJS app).

    The tie to server-side calls and EF makes this a non-starter. Any chance you'll publish an interface that needs to be implemented in JS in order to provide this functionality for the rest of your code?

    31 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  19. Add the possibility to pass one call specific argument to the ajax adapter

    I want to do some stuff inside the ajax adapter, that depends on who initiated the call. For example tracing. In order to do that I need to be able to pass an argument to Breeze that is forwarded to the ajax adapter.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. Support using stored procedures for retrieving data in EF

    Using a sp in EF5 and have mapped the output to a complex type. Breeze doesn't seem to like that there is no key column, and not sure how to mark one as key so querying causes an error.

    67 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

1. BreezeJS Feature Suggestions

Categories

Feedback and Knowledge Base