How can we improve Breeze.js?

Tools for meta data creation for breeze not depending on a server-side ORM and tools for ORM-less server-code generation

For me ia server-side ORM for a web application is a wrong cut. I think business logic should go as close to the data as possible to guarantee consistency, protection, and security. This means to me using stored procedures and database functions wherever possible (in a relational environment) and reasonable. In addition, if done right it's arguably unbeatably fast. The role of the Web API should be to provide access to the data across the network but not processing it.

Let's suppose we have to query the database for all open orders for a certain customer including order items and product data. This would mean quite al lot of programming and/or configuring a server-side ORM. I'd prefer to create a temporary stored procedure (with SQL Server) which fetches all this data in one batch into a data set which results in exactly three calls to the database however complex the data structure may be - create procedure, execute it, drop it. Execution of the procedure undergoes all checks so the data is consistent and subject to the security policy (holds true also for procedures which create, modify, or delete data). The resulting data set is in-memory and usually small, and if convenient, you might declare relationships and create pocos with ease without ever accessing the database again. You could as well use the data tables and send them back to the client using OData or json. In the browser, use Breeze as an ORM. For short: Minimize processing on the server, return rather simple data, and let Breeze do the ORM stuff.

Using an ORM on the server is very much overhead which ought to be avoided.

Consequently, I would like to see tools for creation of meta data to be consumed by client-side breeze which don't rely on a server-side ORM, and tools for code generation for the server

4 votes
Vote
Sign in
(thinking…)
Sign in with: facebook google
Signed in as (Sign out)
You have left! (?) (thinking…)
Goetz Heller shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

1 comment

Sign in
(thinking…)
Sign in with: facebook google
Signed in as (Sign out)
Submitting...
  • James commented  ·   ·  Flag as inappropriate

    Look at SummerBreeze to generate the client side metadata for you from your server side poco's. You can then use sprocs to populate your server side pocos and breeze to transfer to the client

Feedback and Knowledge Base