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. Allow for the filtering of Expands

    It would be most helpful if the results of an Expand could be filtered on the server-side. I.e, if you could have a particular Expand only ever include specific records. This would come in particular use when an institution utilizes "soft deletes", or needs to further filter those expanded records to only include those that should be visible by the current user.

    47 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 →
  2. 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 →
  3. Create function to translate error messages

    it would be possible to include a function to breeze similar to the included in knockout-validation to translate error messages:

    //quick function to override rule messages
    ko.validation.localize = function (msgTranslations) {

    var msg, rule;

    //loop the properties in the object and assign the msg to the rule
    for (rule in msgTranslations) {
    if (ko.validation.rules.hasOwnProperty(rule)) {
    ko.validation.rules[rule].message = msgTranslations[rule];
    }
    }

    };

    Related to: http://stackoverflow.com/questions/14316454/translate-breeze-validation-messages

    38 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 →
  4. Provide a paired client side/server side validation module that would make it easier to apply the same custom validations on both the server

    This module would also have access to the user credentials associated with the end user performing the operation to be validated. Ideally, this would be configured via attributes as well as thru a programmatic API.

    37 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. QueryInterceptors and ChangeInterceptor are needed to implement Security

    One needs to write lots of code to implement query and change interception to EF context. With interceptors we can easily do this with Breeze like WCF Data Services.

    35 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  14 comments  ·  Flag idea as inappropriate…  ·  Admin →
  6. Extensible saveOptions and queryOptions can be interpreted on the server

    A mechanism for communicating extra material too/from the server method.

    34 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 →
  7. 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 →
  8. 29 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 →
  9. Show us how to bind to a grid

    LOB apps have grids. Can you show us how to bind a list of Breeze entities to a grid and do filtering, sorting and paging.

    26 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 →
  10. Can configure a parent entity type to enter the modified state when a child changes

    Often (but not always), the parent is the root entity of an aggregate. An Order is the root of an Order aggregate with child line items. When a line item is added/deleted/modified the semantics say that the Order has changed. The concurrency check on the Order governs the entire graph. So we want any line item change to force the Order to be changed. The developer should be able to specify in metadata that the Order changes when anything in its line items collection changes. The specification should be on a navigation path basis. Breeze should respond accordingly

    22 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 →
  11. MVC Service (v.3 and v.4)

    Breeze supports Web API today. Our shop uses MVC 3 and MVC 4 ... but not Web API yet. Could Breeze talk to MVC controller methods and exchange JSON data as it does with Web API controllers?

    21 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 →
  12. function parameters in query clauses

    Add ability to pass functions into where clauses, orderBy clauses, etc., instead of strings, for better intellisense and TypeScript type support.

    20 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 →
  13. 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 →
  14. 16 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. 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 →
  16. Transparent local vs server queries.

    I don't want to distinguish between local and server data. I'd like the framework to work out the cache state and refresh as necessary based on hints I provide - such as FIFO, LIFO, or callbacks for conflicts.

    14 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 →
  17. Support the $callback query string parameter for the BreezeController

    I would like to use the BreezeController with Kendo UI Grid, using Kendo's native ODATA support, but it requires that the $callback paramter be supported.

    13 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 →

    Adam,

    I’m not sure about this one. We’d like Kendo devs to use Breeze for data mgmt rather then Kendo. Can you provide use with a detailed use case for this?

    Regarding $callback, definitely. Support for JSONP would be very valuable. Let’s get some votes on this one. :)

  18. Provide Observable ErrorMessage at entity level & at Collection Level so that error messages can be displayed next to entity and then again

    IN LOB application it is very critical to display error message next to the field in error as well as summary of errors.

    When Binding the collection to HTML table, expose the Error Collection so that error message can be displayed in data-bind. This should be observable so that it HTML markup is updated dynamically when errors occurs and is cleared when error are corrected.

    Similar observable error collection as List level to display summary of error as well. since this is summary, when clicking on error item, ability to set focus to the Editable filed in HTML table would…

    13 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 →
  19. EntityManager.getEntityGraph - get a root entity's object graph from cache

    Like the FindEntityGraph method in DevForce (http://drc.ideablade.com/xwiki/bin/view/Documentation/query-working-in-cache), this method would return an array of entities in cache consisting of the root entity and the related entities as specified in the call, perhaps with "expand" syntax. Could use for partial saves as requested in this S.O. post (http://stackoverflow.com/questions/13575058/how-can-i-save-a-single-entity-with-entitymanagers-savechanges-method). Also useful for moving graphs between EntityManagers and to browser local storage.

    11 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. Encrypt/decrypt local serialized entities

    Is it possible to have an encryption algorithm on a JS client?

    8 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