Prerequisites

This topic covers Breeze browser support, Breeze JavaScript library dependencies, and requirements for developing with Visual Studio.

Browsers

Supported Browsers

Breeze is written to the JavaScript standard known as ECMAScript 5 (ES5) and thus runs properly in all modern browsers on desktop and mobile devices.

Older browsers (such as IE 8, PhantomJS before v.2, and Safari before v.1.5.4) do not fully implement ES5 standards. Fortunately, you can enable ES5 syntax on these browsers by adding a JavaScript "shim" library to your page. We recommend es5-shim.js and es5-sham.js, a trusted tandem of open source, MIT licensed libraries.  Add json2.js for IE7 support. Place them on your web page above the BreezeJS script tag.

Because Object.defineProperty cannot be shimmed, the breeze 'backingStore' model library is not supported for older browsers such as IE8 and that precludes the combination of breeze and angular. However, the knockout and backbone model libraries are supported on older browsers.

To avoid compatability mode issues with IE browsers, we highly recommend adding the following to your HTML header:

<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"/>

Please contact us if you have any questions about browser support or the 3rd party libraries we recommend.

Promises

Breeze async methods return promises. There are numerous promise libraries and breeze can be adapted to use them. AngularJS applications can use $q promises. Other applications should load Q.js which is included in the NuGet and download packages. Q.js is a popular implementation of the Common.js promises standard for managing asynchronous JavaScript.

Breeze application dependencies

Breeze is communicates with a remote data service on your app's behalf. Part of that job involves translating between JSON service data and Breeze JavaScript entity objects that are bindable, change-tracked, and validated.

Breeze does not dictate the data service technology, the JavaScript component that performs AJAX requests, nor the model library for data binding. Those are all Breeze extension points. You'll find discussion of alternative implementations for each extension point elsewhere in the documentation.

Breeze out-of-the-box is configured for specific implementations:

The "Breeze.WebApiSample" NuGet package creates an example app with these dependencies in place in about 2 minutes. Except as noted, the other samples also require these libraries and they load the jQuery and Knockout scripts before the Q and Breeze scripts. Make sure you either follow their lead ... or know why you're doing it differently.

Visual Studio and the Samples

Many of the current samples demonstrate Breeze clients communicating with an ASP.NET Web API service that delegates data access to the Entity Framework. They were developed with Visual Studio 2013 and run on either .NET 4.0 or .NET 4.5 (both platforms are fine).

Most samples get their data from SQL Server Compact  4.0 databases with filenames ending in ".sdf". SQL Server Compact may have been installed on your machine automatically with Visual Studio. If you do not have it on your machine, you can download and install it yourself. Alternatively, you can use NuGet to install it for an individual sample solution.
 
While many of our samples are implemented in this fashion today, Breeze does not require .NET, Visual Studio, Entity Framework, SQL Server, or ASP.NET. Breeze is not handcuffed to Microsoft.

Many samples demonstrate breeze working with Node, Java, PHP, and Rails back-ends as well. Your feedback on UserVoice will help us prioritize additional samples for other server and storage technologies.

Visual Studio 2012, 2013, and 2015

Everything you need is installed by default.

Visual Studio 2010

Be sure to add the following Microsoft features to your Visual Studio installation:

  • ASP.NET MVC 4
  • Web Platform Installer
  • IIS Express
  • SQL Server Compact Edition 4.0 9

Enable NuGet package restore

The Breeze samples retrieve their dependent NuGet packages from official NuGet package sources on the web when you first build them.

Please confirm that Visual Studio has permission to restore NuGet packages from the web:

  1. Tools > Library Package Manager > Package Manager Settings > General
  2. Check "Allow Nuget to download missing packages during build"