Prerequisites

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

Browsers

Supported Browsers

Breeze works out-of-the-box with all modern browsers on desktop and mobile devices. These browsers implement the current JavaScript standard, known as ECMAScript 5 (ES5), which Breeze uses internally.

Older browsers (such as IE 8) implement the prior ES3 standard. 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.

Note: Because of IE8 and shim limitations having to do with Object.defineProperty, the breeze 'backingStore' model library is not supported under IE8, however, the 'knockout' and 'backbone' libraries are supported. 

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.

Breeze dependencies

Breeze depends on one 3rd party JavaScript library, 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 responsible for communicating with a remote data service on your 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 2012 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 should have been installed on your machine automatically with VS2012. 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 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.

We intend to demonstrate other back-ends as well as show IDEs other than Visual Studio. Your feedback on UserVoice will help us prioritize these plans.

Visual Studio 2012

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

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"