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. Change entityAspect name to $entityAspect to prevent angularJS.equal in circular reference

    Angular is comparing objects by the equal function.
    If you have a watch on a breeze entity the entityAspect object will cause the ng.equal function to produce a stack overflow.
    objects with the $ prefix are ignored by ng.equal function.

    In my case I had an issue with ng-formly and breeze because formly is watching the collection and so also the entityAspect.

    24 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. 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 http://stackoverflow.com/questions/15732072/dropdown-filled-with-options-provided-by-an-enum-server-side-with-breeze

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

    if (size == null) {
    createGlobalEnum(enumTypes);
    }…

    2 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  3. Support ES6 class definitions for client-side modeling

    With ES6 classes we now have a way to define classes better than ever before in ES6.

    1. Support defining metadata client-side via ES6 classes
    2. Support adding methods and such via the classes instead of via the initializers (ex - computed properties as getters, methods on the class instead of adding to the initializer / constructor)
    3. Default values if not supplied

    6 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. Exclude entire entities from metadata (EF backend)

    I've seen some SO topics on excluding individual entity properties, but have not figured out a way to exclude entire entities.

    3 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. Add the same tutorials for aurelia that you provide for angular and knockout

    Provide the same tutorials for aurelia that you provide for angular and knockout is on my wishlist.

    79 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  6. Please include the getEntityGraph feature in the core of breeze.js.

    Currently this functionality sits in BreezeLabs and we use this feature everyday. Our requirement is to sometimes send entire entities up to the server because we have a hierarchy of objects with interdependent properties. So we need more than just the changes in specific entities in certain cases. The getEntityGraph feature works perfectly however the longer it stays in BreezeLabs the more chance that at some point it may not be updated along with the BreezeJS core.

    5 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  7. Northwind example with Java Spring & Hibernate

    Hi,

    I have downloaded java northwind example from github (https://github.com/Breeze/breeze.js.samples/tree/master/java/NorthBreeze)
    Then i create northwind database and deploy server with Java. The server return data and metadata json look good.
    But when i deploy client and call server, i received error:

    "Metadata query failed for: http://localhost:8081/NorthBreeze/breeze/northbreeze/Metadata. Unable to either parse or import metadata: Error configuring an instance of 'NavigationProperty'. The 'foreignKeyNamesOnServer' parameter is optional or it must be an array where each element must be a 'string'; [object Object]"

    Here is my Medata JSON return, please see this file in URL:

    https://onedrive.live.com/redir?resid=17269D19CFD14BB3!3861&authkey=!AIm0ajxNBoSCFyY&ithint=file%2ctxt

    Can anyone help me?

    Thanks very…

    18 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  8. Looking for breeze to rock SharePoint data

    I am just looking if Breeze has already working with SharePoint data,

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. 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…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. Fire event on metadata FETCHING (not just fetched

    There is a helpful event for metadataFetched. However, it would be even more helpful to also add an event right BEFORE the metadata request is sent out.

    My use case for this is I am showing textual progress updates on screen, and I would like to update the message when metadata is fetching. I can use the "Fetched" event to show that we are done, but would need a "Fetching" event to indicate when we start.

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  11. breeze-node

    the tutorial should contain Node.js part

    2 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. Support for Polymer/Web Components

    It would be nice to see a <breeze-js> component to use in Polymer.

    12 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. Include Navigation Properties in BeforeSaveAllEntities save maps

    Currently passing entity with navigation properties to the client. Once client modifies the entity or the navigation property entities they come back to the server during save separated making us write more code to perform validation and server side business logic.

    EXAMPLE: I have a class called WorkOrder, Payment and Customer. The structure of the class is as follows:

    WorkOrder
    - WorkOrderID int
    - WorkOrderNumber guid
    - CustomerID int
    - PaymentID int
    - ExclationLvl int

    Payment
    - PaymentID int
    - PaymentType int : reference lookup table called PaymentTypes which has the payment types (ie: Credit Card, Check, Paypal)
    - Amount…

    6 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. Restore foreign keys in dependent entities in rejectChanges()

    When an entity is marked as deleted, and it has dependent child entities, it is removed (set to null) from child entities (even if the foreign key is not nullable). If the delete is cancelled with rejectChanges, the entity is restored to 'unchanged' state, but child entities in cache are not restored. Even requerying the server doesn't fix this (I haven't yet tried specifying overwriteChanges in query options).

    8 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  15. NamingConvention for EntityType names

    The current `NamingConvention` can translate between client and server property names but there is no facility in Breeze to translate between client and server **EntityType** names.

    For example, if the class on the server is known as `PersonDto`, my client-side EntityType name must also be `PersonDto`. I probably want `Person` on the client.

    5 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. Support for collections of navigational properties

    When generating the bundle to be sent to the server on saving of entities I suggest we use this method, I've been using it in the past and haven't seen any issues (yet)

    function unwrapInstance(structObj, transformFn) {
    if (!structObj.unwrapped) {
    structObj.unwrapped = true;
    var rawObject = {};
    var stype = structObj.entityType || structObj.complexType;
    var serializerFn = getSerializerFn(stype);
    var unmapped = {};
    stype.dataProperties.forEach(function (dp) {
    if (dp.isComplexProperty) {
    rawObject[dp.nameOnServer] = __map(structObj.getProperty(dp.name), function (co) {
    if (!co.unwrapped) {
    return unwrapInstance(co, transformFn);
    }
    });
    } else {
    var val = structObj.getProperty(dp.name);
    val = transformFn ? transformFn(dp, val) : val;
    if (val === undefined)…

    23 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  17. Typescript definition for breeze-mongodb

    Thank you very much for TypeScript support for Breeze.js, could I please suggest TypeScript definition for breeze-mongodb for developing with BreezeJS on the MEAN stack (specifically Node.JS)?

    Again, thanks for all the hard work, this feature will definitely help with adoption for Breeze in enterprises that are developing on the MEAN stack with large scale applications.

    6 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  18. EntityQuery.withParameters to inject variables into resource name

    Much like it injects querystring parameters to the request using the object passed to it - it would be nice if it could first look for replacement tokens in the resourceName property of the query.

    for example:

    var qry = breeze.EntityQuery
    .from("Studies/{StudyID}/Sites/{SiteID}/People")
    .withParameters({StudyID: 123, SiteID: 555});

    instead, currently, I am doing this:

    var resourceName = String.format("Studies/{0}/Sites/{1}/{2}", pStudyID, pSiteID, referralName.APIName);
    var query = breeze.EntityQuery.from(resourceName);
    ....

    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. Support Paging natively

    I'm using .take() and .skip() for paging with a table.

    When I "insert" an entity into the database, I reload my table (new query). Now I would like to jump to this new object inside the table and highlight it.

    I need an elegant solution to find on what page the new object is and then use skip/take to jump to the correct page.

    My Suggestion:

    Maybe Breeze could natively support paging by allowing to specify a page-size in the query and which page to deliver (instead of using take and skip and calculating it on the client).

    If this…

    10 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. Breeze Web API components should support async

    Both the Web API and EF 6 support async. All Breeze .NET server components should support async signatures and perhaps should deprecate the synchronous signatures.

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

1. BreezeJS Feature Suggestions

Feedback and Knowledge Base