MVC Project Template
Excerpt by Phil Ledgerwood
ASP.NET MVC 4 is available in Visual Studio 2012 without any additional installs. MVC 4 can easily be used in older versions of Visual Studio, but it requires a separate installation. In Visual Studio 2012, there are two, basic Project Templates: ASP.NET MVC 3 Web Application and ASP.NET MVC 4 Web Application. The MVC 3 template is included because of the relative newness of MVC 4. The templates are available for both Visual Basic and C#; other than language, the templates are identical. You can access the templates from the New Project dialog box that opens when you select File|New|Project from the Visual Studio menu. When you select the ASP.NET MVC 4 Web Application template, you have the choice of several, specific project templates.
The Internet Application template creates a basic but fully functional MVC application, complete with a model, a couple of controllers, and a few views. It uses best practice HTML with a CSS (Cascading Style Sheet) file to format the views. It also includes support for forms authentication and authorization, using the built-in features of ASP.NET. (This is one of many ways that you can see how MVC is built on top of ASP.NET, rather than being an alternative to it.) This template gives you the option of creating a test project in addition to the main application project, so that you can write unit tests. The Intranet Application template builds virtually the same project as the Internet Application template, but uses Windows forms authentication. It also gives you the option of creating a test project in the solution.
The Empty template sets up the project structure, including folders for models, views, and controllers, and sets references to use the MVC framework, but no default con trollers or models. It provides a great starting point for a new application that you'll develop from scratch, including building your own CSS styles for views. If you want to create a unit test project with a project created from this template, you'll need to add that manually after you create the empty web application. The Basic template is very similar to the Empty template but includes common Content an d Scripts that are useful to most MVC applications.
The Mobile Application template is almost exactly the same as the Internet Application template except it incorporates jQuery.mobile to adjust the application for delivery to mobile devices and does not use the built-in authentication mechanisms for .NET applications. The Web API Application is significantly different from the others in the sense that it isn't intended to produce a web site. Rather, it sets up a web services application that runs according to RESTful URLs. The processing model is very similar, but Web API Applications are used primarily to serve up data to other applications.
This template has no visual component to it. With the exception of the Web API Application, it really doesn't matter which template you use. All provide support for MVC applications, and all are much simpler than starting with a completely blank solution. In the following sections, you'll use the Internet Application template in order to explore the structure of an MVC application.