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. 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 →
  2. 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 →
  3. 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 →
  4. rethinkdb and aurelia

    add support for rethinkdb and aurelia

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

1. BreezeJS Feature Suggestions

Categories

Feedback and Knowledge Base