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. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  2. 56 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 →
  3. Angular 2 support

    Create Angular 2 bridge file like what was done for Angular 1.X

    113 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. 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 →
  6. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  7. breeze-node

    the tutorial should contain Node.js part

    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 →
  8. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  11. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  15. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. 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 →
  17. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  18. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  19. 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…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. 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…)
    Sign in with: Facebook Google
    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

Categories

Feedback and Knowledge Base