--- uid: single-page-application/overview/templates/hottowel-template title: "Hot Towel template | Microsoft Docs" author: madskristensen description: "HotTowel template" ms.author: aspnetcontent manager: wpickett ms.date: 02/09/2013 ms.topic: article ms.assetid: 75af2e17-6ed3-4d24-8ea1-bc340027c318 ms.technology: ms.prod: .net-framework msc.legacyurl: /single-page-application/overview/templates/hottowel-template msc.type: authoredcontent --- Hot Towel template ==================== by [Mads Kristensen](https://github.com/madskristensen) > The Hot Towel MVC Template is written by John Papa > > Choose which version to download: > > [Hot Towel MVC Template for Visual Studio 2012](https://visualstudiogallery.msdn.microsoft.com/1f68fbe8-b4e9-4968-9fd3-ddc7cbc52dca) > > [Hot Towel MVC Template for Visual Studio 2013](https://visualstudiogallery.msdn.microsoft.com/1eb8780d-d522-4dcf-bf56-56f0eab305c2) > Hot Towel: Because you don't want to go to the SPA without one! Want to build a SPA but can't decide where to start? Use Hot Towel and in seconds you'll have a SPA and all the tools you need to build on it! Hot Towel creates a great starting point for building a Single Page Application (SPA) with ASP.NET. Out of the box you it provides a modular structure for your code, view navigation, data binding, rich data management and simple but elegant styling. Hot Towel provides everything you need to build a SPA, so you can focus on your app, not the plumbing. > Learn more about building a SPA from [John Papa's videos, tutorials and Pluralsight courses](http://johnpapa.net/spa?vsix). ## Application Structure Hot Towel SPA provides an App folder which contains the JavaScript and HTML files that define your application. Inside the App folder: - durandal - services - viewmodels - views The App folder contains a collection of modules. These modules encapsulate functionality and declare dependencies on other modules. The views folder contains the HTML for your application and the viewmodels folder contains the presentation logic for the views (a common MVVM pattern). The services folder is ideal for housing any common services that your application may need such as HTTP data retrieval or local storage interaction. It is common for multiple viewmodels to re-use code from the service modules. ## ASP.NET MVC Server Side Application Structure Hot Towel builds on the familiar and powerful ASP.NET MVC structure. - App\_Start - Content - Controllers - Models - Scripts - Views ## Featured Libraries - ASP.NET MVC - ASP.NET Web API - ASP.NET Web Optimization - bundling and minification - [Breeze.js](http://Breezejs.com) - rich data management - [Durandal.js](http://Durandaljs.com) - navigation and View composition - [Knockout.js](http://Knockoutjs.com) - data bindings - [Require.js](http://requirejs.org) - Modularity with AMD and optimization - [Toastr.js](http://jpapa.me/c7toastr) - pop-up messages - [Twitter Bootstrap](http://twitter.github.com/bootstrap/) - robust CSS styling ## Installing via the Visual Studio 2012 Hot Towel SPA Template Hot Towel can be installed as a Visual Studio 2012 template. Just click `File` | `New Project` and choose `ASP.NET MVC 4 Web Application`. Then select the 'Hot Towel Single Page Application" template and run! ## Installing via the NuGet Package Hot Towel is also a NuGet package that augments an existing empty ASP.NET MVC project. Just install using Nuget and then run! [!code-powershell[Main](hottowel-template/samples/sample1.ps1)] ## How Do I Build On Hot Towel? Simply start adding code! 1. Add your own server-side code, preferably Entity Framework and WebAPI (which really shine with Breeze.js) 2. Add views to the `App/views` folder 3. Add viewmodels to the `App/viewmodels` folder 4. Add HTML and Knockout data bindings to your new views 5. Update the navigation routes in `shell.js` ## Walkthrough of the HTML/JavaScript ### Views/HotTowel/index.cshtml index.cshtml is the starting route and view for the MVC application. It contains all the standard meta tags, css links, and JavaScript references you would expect. The body contains a single `