Breeze

Breeze is a library that helps you manage data in rich client applications. If you store data in a database, query and save those data as complex object graphs, and share these graphs across multiple screens of your JavaScript client, Breeze is for you.

Client-side querying, caching, dynamic object graphs, change tracking and notification, model validation, batch save, offline … all part of rich data management with Breeze. Breeze clients communicate with any remote service that speaks HTTP and JSON.

Breeze lets you develop applications using the same powerful idioms on the client and server. You can

  • query with a rich query syntax
  • navigate the graph of related entities
  • track changes as you add/change/delete entities
  • perform client-side validation
  • save all changes in a single transaction
  • use the same entity model on the server and client

Client and Server

Breeze JS (breeze-client) is a JavaScript library for managing data on the client, much as an ORM manages it on the server.

Breeze JS has an EntityManager that queries entities from the server, keeps them in cache, keeps track of the state of each entity, and saves the changes to the server when requested.

Browser
Angular / Vue / React / etc.
Breeze JS
JSON
Server (Node, .NET, Java)
Web Routing layer
Breeze Server library
ORM

Breeze Server is a library that works with an ORM (Entity Framework, Sequelize, Hibernate) to manage persistence for Breeze client applications. It turns Breeze queries into ORM queries, and saves changes to the database via the ORM.

The Breeze server is intented to be stateless. No long-running transactions, detached objects, or persistent connections are required. Entity state is kept on the client, not the server.

Breeze clients do not require a Breeze server; for example, BreezeJS will also work with existing RESTful APIs. The full power of Breeze comes with supporting the three types of client-server communication.

Client-Server Communication

Breeze client applications make three basic kinds of AJAX calls:

  1. Breeze metadata ‘GET’ requests
  2. Breeze query ‘GET’ requests
  3. Breeze save ‘POST’ requests

The Breeze server libraries make it easy to support these requests.

Breeze Client Technologies

BreezeJS   BreezeSharp  

Breeze Server Technologies

ASP.NET   Java   Node MongoDB   Node Sequelize


Support

For technical questions, please go to StackOverflow with the tag “breeze”. StackOverflow is a fantastic site where thousands of developers help each other with their technical questions.

We monitor the [breeze] tag on the StackOverflow website and do our best to answer your questions. The advantage of StackOverflow over the GitHub Wiki is the sheer number of qualified developers able to help you with your questions, the visibility of the question itself, and the whole StackOverflow infrastructure (reputation, up- or down-vote, comments, etc).

For bug reports, please do use the GitHub Issues tab!

Please post your feature suggestions to our User Voice site

Learn about paid support.

Learn about IdeaBlade’s professional services from training through application development.

Have a non-technical question? Ask us at breeze@ideablade.com.