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. Add KeepDetached merge strategy

    Please allow the scenario when entities which aren't saved in the database yet can be returned from the server.

    My scenario is:
    1. There is a grid which is bound to the order items. The grid is used for displaying order items for a new or already saved order.
    2. There is a sever method which constructs new order with order items. The order and order items are new entities and aren't saved in the DB yet.
    3. I would like to display data in the grid and add the order to the EntityManager and save if user is ok…

    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. 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 →
  3. rewrite zza pizza demo to work the same as edmunds demo with nodb backend

    rewrite zza pizza demo to work the same as edmunds demo with nodb backend

    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 →
  4. Provide more options on IKeyGenerator policy injection

    IKeyGenerator policy is discovered now by full appDomain asseblies scan.
    Please, provide an option that will allow me to explicitly specify required implementation. E.g.:
    - configuration option in app configuraiton file;
    - property or overridable virtual factory method of context provider;
    - etc.
    If none is specified, then defaul assembly-scanning approach can be used.

    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 →
  5. 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 →
  6. MergeStrategy that ignores missing properties

    It would be nice to have a MergeStrategy that merges changes without removing properties that are missing in the "newer" entity.

    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 →
  7. Data Visualualizer

    There is no tool unlike SQL Server or EF to help you see what data you are getting back from Breeze. There is no entity inspector. So when you are in javascript and you write repositories it can be a bit of a black hold. Even if the BreezeController.cs has rich annotation and XML comments to show what request are being made.

    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 →
  8. 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 →
  9. 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 →
  10. Support other clients

    Would be nice to develop the server components and then have some type of wizard or generator that could create a portable class library that could target windows 8 and wp8, generating the necessary client classes, metadata etc. Then you add a reference to the PCL client project, getting all the benefits. Basically how ria services was for SL but make breeze work with several clients by using PCL

    2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  3 comments  ·  Flag idea as inappropriate…  ·  Admin →
  11. Tutorial: how to use Breeze with AngularJS, my own WebAPI, no database, no Azure.

    Write a tutorial on how to use Breeze with AngularJS, my own WebAPI, no database access, no Azure.

    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 →
  12. Include instructions for implementing the starter tutorials using Webmatrix3

    Beginners trying to get to grips with learning Breeze in conjunction with other techniques including Node, Express, Angular and MongoDB (the Mean stack) would possibly benefit from the relative simplicity of an IDE like Webmatrix before migrating on to more sophisticated IDEs.

    2 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 →
  13. 2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →

    This is not an error.

    Breeze ‘complex objects’ have a ‘complexAspect’ property that is analogous to the ‘entityAspect’ that is found on ‘entities’.

    All complex objects ALSO have a GetEntityAspect() method. The GetEntityAspect method returns the top level EntityAspect associated with the complexObject ( complex objects can be nested so this may go thru multiple parent objects before returning the final parent EntityAspect – this is why this is a method and not a property).

    Entity objects by comparision have only a single entityAspect property.

  14. optimize/compress data/bandwidth using nested arrays of values only

    Instead of current JSON format used to send data from server to client, optimize it so that only values are sent in an array (or nested arrays) - no need to send field names if schema is available, otherwise send a separate mini-schema (list of fields/types) along the data. Decode it on the client back to the current structure.
    This is especially important when trying to limit the data sent back using Select on the server (anonymous entities), each row includes a complete data type as a very long string - with many rows, this adds substantial overhead (almost always…

    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 →
  15. Make unit tests for breeze.js independent of server technology

    Currently it appears as though all of the unit tests for breeze.js require Visual Studio and an external data source. Similarly to a previous request, mock ajax requests for unit tests in the breeze.js repo. This would make it easier for people to test potential pull requests for breeze.js.

    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 →
  16. 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 →
  17. Don't initialize property values

    Currently, when breeze creates a new entity it initializes each property based on its type. Uses 0 for an int, empty for string and so on. It uses null for a nullable property. Seems reasonable until you actually use it. When I create a new entity, I want it to fail validation until the user actually fills in values. For non-nullable types, I want null. Otherwise, the user might accidentally save the default value -- which almost certainly is wrong for them. For a nullable type, it would be nice to initialize to value that's invalid ... other than null.…

    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 →
  18. Support evaluation of custom Annotations for Enums through the meta data

    If I crete an "advanced" ENUM on server side, including custom annotations, I would like to be able to use that ENUM at client side without redefining it there. Following method can be used to automatically create enums on client side as global variables. In addtion to that I would like to be able to evaluate annotation metadata of the ENUMS to transfer the data that is given by my custom Annotations.


    fetchMetadata()

        .then(function(data) {
    
    

    //create global ENUMs from breeze meta data
    //see <a rel="nofollow noreferrer" href="http://stackoverflow.com/questions/15732072/dropdown-filled-with-options-provided-by-an-enum-server-side-with-breeze">http://stackoverflow.com/questions/15732072/dropdown-filled-with-options-provided-by-an-enum-server-side-with-breeze</a>

    var enumTypes = data.schema.enumType;
    var size = enumTypes.length;

    if (size == null) { …

    2 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 →
  19. configure not to use batch

    give the option to save in the server with regular put/patch without batch

    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 →
  20. Improve the error reporting when the json returned by breeze doesn't include fields it needs ie. $id $type

    Currently we get an obscure error message, such as "object #<object> has no method getproperty"...would be nice to get something like "JSON result is not in the required format, Breeze can't map your entities, $id and $type are required"

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

1. BreezeJS Feature Suggestions

Categories

Feedback and Knowledge Base