Skip to content

Breeze/breeze.server.net

Repository files navigation

Breeze Data Management for .NET Servers

Breeze is a library from IdeaBlade 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 or C# 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

Install from NuGet

.NET Core

For .NET Core (2 through 8) and Entity Framework Core (2 through 8), find the following packages in NuGet.

Note: Version 7.1 or later of each package is for .NET 5, 6, 7, and 8, whereas Version 3.x is for .NET Core 3 and Version 1.x is for .NET Core 2.

For a typical EFCore application, you would install the first two packages. For an NHibernate application, install the first package and Breeze.Persistence.NH. The last two packages are dependencies that are automatically installed by the other packages.

.NET Framework

See the docs for .NET 4.x NuGet packages

Documentation

See the docs for more info about what Breeze does and how to use it.

Set the release notes for changes in the latest version.

Examples

See some examples of how to use Breeze .NET server with clients written in Angular, Aurelia, React, and Vue in the Northwind-Demo.

See the TempHire application for a richer example showing proper architectural patterns.

Sources

The sources for this package are in the breeze.server.net repo. Please file issues and pull requests against that repo.

Source directories:

  • AspNet - Support for .NET Framework up to 4.8
  • AspNetCore-v3 - Support for .NET Core 3.1
  • AspNetCore - Support for .NET Core 2
  • DotNet - Support for .NET 5+
  • Old - Old code related to initial Core support
  • Tests - Test projects for running the client-driven test suite. Latest test projects are in Tests/Test.AspNetCore.EFCore.
  • build - Build scripts for .NET Framework and .NET Core up to 3.1. Build tools for .NET 5 and above are in DotNet/tools.

Upgrading from .NET Framework to Core

The underlying concepts are the same, but there are a few major changes

  • The ContextProvider class is now PersistenceManager.
  • The [BreezeController] and [EnableBreezeQuery] attributes have been replaced by [BreezeQueryFilter] attribute.
  • Breeze JSON query format is preferred over OData. You will need to use Breeze 2.x on the client, and use the UriBuilderJsonAdapter (not the UriBuilderOdataAdapter).

See the Northwind-Demo for steps to set up a new .NET Core server.

See the UPGRADE document for information on upgrading Breeze Client from 1.x to 2.x.

Building Breeze

The recent sources and solutions are in the breeze.server.net repo under the DotNet folder. Building is just a matter of:

  1. Installing the required version of .NET SDK
  2. Opening the appropriate solution in Visual Studio
  3. Restoring NuGet packages
  4. Rebuilding the solution

Test solutions are in the Tests/Test.AspNetCore.EFCore folder.


If you have discovered a bug or missing feature, please create an issue in the breeze.server.net github repo.

If you have questions about using Breeze, please ask on Stack Overflow.

If you need help developing your application, please contact us at IdeaBlade.