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.

How can we improve Breeze.js?

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  1. 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…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. Allow for recursive expand and select.

    Allow to query recursively on an object type. See https://issues.oasis-open.org/browse/ODATA-38. To take the example from the OData implementation you could query a manager and return the recursive tree of all employees under that manager to a specified number of levels.

    14 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  3. Remove ALL recursive object graphs

    Recursive object graphs are extremely bad form, and create havoc for libraries that observe object changes, such as AngularJS. Just try to bind more than a trivial number of entity objects to a control like ng-grid, and you'll instantly hate the performance.

    7 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. Create linq like syntax for use with typescript

    In jaydata it is possible to generate d.ts files for the entities. It is then possible to write queries like :

    northwind
    .Products
    .filter( product => product.Unit_Price < 50 )
    .orderBy ( product => product.Category.Category_Name )

    Note that full autocompletion is available for properties.

    It would be great to have such a feature in breeze as well.

    72 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. ASP.Net Web API OData information outdated?

    I'm looking at this page and it says that the OData EDM builder doesn't support navigation properties, but I believe it does now. Also, the samples for Web API provide an OData batch controller that save changesets in the order that they coming in the request. Doesn't this make Web API fully compatible with Breeze? Do we still need to use the Breeze custom model builder?

    8 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  6. Provide an Angular SPA template with full security

    VS2013 ships with a classic ASP.NET MVC template with full-feature identity management: login, password change, email validation, OAuth, etc, including both front-end and back-end code. However, there's nothing like this for a SPA using Web API 2.

    The suggestion is to provide a template/sample/demo based on Breeze and Angular for a Single Page App that implements all the identity functionality, plus provides some simple, replaceable demo of the business code that we developers want to focus on.

    102 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  7. mongoose models to breeze.js metadata converter

    It would be nice to have a facility to create breeze.js metadata from existing mongoose models.

    38 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  8. Please add support for the ODataConventionModelBuilder

    3.0 spec:
    "The association MAY also specify zero or one edm:ReferentialConstraint elements."

    Please comply with the standard, and please remove these old articles that's promoting the highly flameable EdmBuilder ;)

    9 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. Support for Data Annotation Validators (DisplayName, ErrorMessageResourceName)

    Breeze has built-in message templates and we do seem to have the option to change them via breeze.Validator.messageTemplates but having to deal with at least 2 languages on my web project means that I'll have to write my messages twice (1 for .Net and 1 for Breeze). It would be seriously awesome if Breeze could get them directly from the Data Annotation definition as I'm already using the Breeze WebApi2 and ContextProviderEF6.

    For example a Model with this data annotation
    [Display(ResourceType = typeof(Resources.Validations), Name = "SiteName")]
    [Required(ErrorMessageResourceType = typeof(Resources.Validations), ErrorMessageResourceName = "Required")]
    public string siteName { get; set; }

    It…

    24 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. Enable type coercion of EDM default values on key fields (not just non key fields)

    Breeze will coerce int32 default values to be js integers if they are not navigation id fields. But if they are a key field breeze does not coerce them, and they enter the model as strings.
    Can key (navigation) fields get the coercion same as regular non key fields?

    3 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  11. Add missing TypeScript .d.ts files for Breeze Labs

    It would be fantastic to also publish separate TypeScript Declaration (.d.ts) files that aligned with the functionality offered by the Breeze Labs extensions. At the moment, there is only one breeze.d.ts file which doesn't include declarations for Breeze Labs extensions. This is a bit of a gap for us TypeScript users. Thanks!

    8 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. Can anyone give me Tutorial 1 - Queries - w/Angular full code please

    Can anyone give me http://learn.breezejs.com Tutorial 1 - Queries - w/Angular full code
    As im a beginner. i need the full functional code that i can run locally the same sample application
    please help me

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  13. Change the Required Validator to check the context property to allowemptystring

    Change the Required value Validator such that it can read the property to allow empty strings.

    Change line:

    if (ctx && ctx.allowEmptyStrings) return true;

    For:

    if (ctx && (ctx.allowEmptyStrings || ctx.property && ctx.property.allowEmptyStrings)) return true;

    8 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  14. Looking for "stream" input

    I haven't had real hands-on to JS-Breeze, but I have a question:

    I have "pulled" an URL to a resource from some service. I want to deliver that to Breeze as an Entity-property whithout having to "collect" all of its content in the client (the browser). Is there a way for doing that, without me having to "pull", before doing "push"?
    Thank you!
    (In reality, this is what WPS is promising)
    /Aron

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  15. 6 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. Add support for odata actions

    I’m struggling with calling odata actions from breeze. I have an app that uses breeze to store trades in a SQL database and after the trade is stored, another user can use the app to send the trade to a backend trading system. I created an OData action to do the import to the external trading system so I can do a post to /trades(123)/ImportTrade. When I get the metadata for the service using /$metadata it sees that the trades entity has this action (it's in the metadata).
    I was hoping that breeze would see this in the metadata and…

    31 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  17. 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…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  18. 1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  19. Optimize transfer by minifying attribute names

    Using human readable names for objects is very helpful for readability, but it bloats the size of the data being transferred for each query. Create a minifier like uglify that translates attribute names into very small strings. Have the mapping tables be available on both client and server sides for translation so that when the objects are being used on either the client side or server side, the developer sees the full names. Allow for using non-minified transfers when debugging the transfer process.

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. Get rid of this user voice tab

    I can't read the code on my phone because this tab is in the way

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

1. BreezeJS Feature Suggestions

Feedback and Knowledge Base