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.
272 results found
-
Support .NET Validation Attributes
It would be great if the .NET validation attributes defined on the business model were sent along with the metadata. One benefit of this feature would be that we wouldn't have to redefine error messages on the client side.
278 votesAdminAdmin (Product Manager, Breeze.js) responded
A quick update for this request:
We’re probably 50% there today, but hope to get to 80% soon. This is certain to get done, but we’re just not there yet.
-
Provide more options on IKeyGenerator policy injection
IKeyGenerator policy is discovered now by full appDomain asseblies scan.
Please, provide an option that will allow me to explicitly specify required implementation. E.g.:
- configuration option in app configuraiton file;
- property or overridable virtual factory method of context provider;
- etc.
If none is specified, then defaul assembly-scanning approach can be used.3 votes -
JSON API, Ember.JS & REST Support
- See http://jsonapi.org/ and http://jsonapi.org/about/ for more info
- this will allow communicate Breeze using REST with other systems that supports or will support JSON API standard
- Example for these system: Ember.js, Ruby ActiveModel::Serializers etc (http://jsonapi.org/examples/)
- also see http://emberjs.com/guides/models/the-rest-adapter/
- and https://github.com/emberjs/data
38 votes -
RESTfull conception support
RESTfull concept suggests to use different http methods(get/post/put.delete) for CRUD operations with specific request params and responses. Also it suggests send only necessary info.(for ex. no need send entityAspect for RESTfull API).
Similar functionality exists in JayData. Will be great if Breeze will support this functionality too. It'll be usefull for big apps, for api which have to be shared to other clients and expand area of usage.
Also this functionality will add supporting DTO without writing own context provider for breeze.webapi .net framework because in this no need to use breeze.webapi .net. Generally users will develop asp.net web api…
214 votesA quick update for this request:
We’re substantially there, but we still need to make the experience better. We’re still working on this.
-
Update the Angular-Breeze ToDoMVC Template...
...to reference the current versions of the NuGet libraries involved. I tried updating them myself, but the the demo broke, and I can't figure out why. Possibly the json.net?
1 vote -
Include instructions for implementing the starter tutorials using Webmatrix3
Beginners trying to get to grips with learning Breeze in conjunction with other techniques including Node, Express, Angular and MongoDB (the Mean stack) would possibly benefit from the relative simplicity of an IDE like Webmatrix before migrating on to more sophisticated IDEs.
2 votes -
(Minor) code change for tutorial - Angular.js
Currently the javascript reads:
$scope.results = data.results;
$scope.$apply();Consider this instead:
$scope.$apply(function () {
$scope.results = data.results;
});
If code isn’t wrapped in a function passed to $apply, and it throws an error, that error is thrown outside of AngularJS, which means any error handling being used in your application is going to miss it. $apply not only runs your code, but it runs it in a try/catch so your error is always caught, and the $digest call is in a finally clause, meaning it will run regardless of an error being thrown.4 votes -
Expose a method on the EntityManager to "unwrap" an entity instance (toJS).
There are a few use cases where an entity instance needs to be sent to the server to an MVC API controller (for example for async server side validation); to do this, it is necessary to obtain an unwrapped version of the instance (plain JSON) that contains no internal properties such as entityAspect and uses properties instead of observables (ko.mapping.toJS is not suitable because of the former). Also, because the client configuration allows for a different naming convention, the method should be able to translate the names back to the naming convention originally used by the server.
Such a method…
202 votes -
Breeze clientside serialization of DateTimeOffset DataProperties
Thanks for addressing my case about supporting the CLR DateTimeOffset type in breeze (supported from v1.1.1).
Please look at this case for background information.
I have looked into how serialization of JsDate/DateTime/DateTimeOffset works in Breeze, and found a single shortage that defeats my idea of using DateTimeOffset on the server.
I believe that you will find my change suggestion reasonable.
In breeze, Dates are serialized in ISO-8601 format ("yyyy-MM-dd\THH:mm:ss.fffK") both by the breeze client and by JSON.NET configured by Breeze.WebAPI.
This is according to my expectations.When a DateTimeOffset is serialized by JSON.NET on the server, the timezone part of…
77 votes -
camelCased resourceby default
I have a database with Countries (Capital c). I use camelCase with breeze and I can query like this:
entityQuery.from("countries"). However, when I want to query locally I need to use entityQuery.from("Countries") or metadataStore.setEntityTypeForResourceName('countries', 'Country');I do the latter, but I would like this to be done automatically when setting camelcase as default.
Or am I doing something wrong?
4 votes -
support caching partial entities
Currently, if you use a projection query to get partial entities, the resulting objects that are returned are not added to the EntityManager cache.
As a result you have to write a lot of plumbing code if you want partial entities to end up in the cache (John Papa has one such solution for this in his SPA Jumpstart PluralSight course where he maps DTOs to Entities so they will be cached).
If all we really want is a subset of an existing entity, it would be great if we could have some kind of query syntax that let the …
32 votes -
Integrate with KendoUI
I see Kendo doing work towards Breeze integration:
KendoUI datasource http://www.kendoui.com/blogs/teamblog/posts/13-02-21/breeze_js_and_the_kendo_ui_datasource.aspx
Kendo-labs repository
https://github.com/kendo-labs/breeze-kendoCan I hope that Breeze will pick up the torch and make some integration progress as well?
69 votes -
LINQPad Driver to test queries
Write a driver to be able to test Breeze queries in LINQPad.
31 votes -
use MetadataStore.defaultInstance in EntityManager constructor as per documentation
The documentation says that if metadataStore is not defined in the config when creating a new EntityManager then it will use MetadataStore.defaultInstance. However, that doesn't appear to be the case.
The code actually creates a new instance:
if (isCtor) { configParam = configParam.whereParam("metadataStore").isInstanceOf(MetadataStore).isOptional().withDefault(new MetadataStore()); }
This isn't a biggie but either the code or documentation should be updated so that they are consistent.
1 vote -
Update samples to use typescript
Provide samplese that use breeze and typescript
114 votes -
124 votes
-
5 votes
-
Avoid the manual entity type creation process when there aren´t 1:1 mappings between your database and client business objects .
When using a lot of DTO´s instead of 1:1 entity mappings, having to add those types manually to the metadataStore is a "painful" process.
I´ve come up with https://github.com/dotnetricardo/SummerBreeze to minimize that operation. can you please add a similar feature?
Thank you very much!3 votes -
Propagate the .NET [RegularExpression] validation to the client
[RegularExpression] should join [Required], [MaxLength], [StringLength] as a DataAnnotations validation attribute automatically propagated to the Breeze client through metadata. It's powerful. It should be relatively easy as it is string-based and regular expression specifications are (almost) the same in .NET and JS. See also this StackOverflow question
50 votesQuick update on this request:
We’re looking at being able to mark this as complete within the next couple of releases.
-
44 votes
- Don't see your idea?