Templates used in Visual Studio for web applications were updated a lot recently.
Imagine we need to create ASP.NET Web Application using .NET Framework 4.5, Visual Studio 2013 with the latest Update 4 (available since November 12, 2014 http://www.visualstudio.com/news/vs2013-update4-rtm-vs#CodeLens).
Here we can add Application Insights feature to your project which should help us to understand what users are doing with our application, how often they launch it, in what environments, etc. For our test application we don't need it by now.
We will select Web Forms now (we will select MVC template next time for our investigation). We don't need unit tests and hosting in the cloud for this project. In Change Authentication window we can change authentication from Individual User Accounts (default) to No Authentication, Organizational Accounts (i.e. Active Directory) or Windows Authentication (Intranet application).
So pressing OK and our template is being generated, actually got a lot of files!
We have Home, About, Contact, Register, Log in pages though we haven't written a single line of code yet. But what is more important we notice we have clean URLs without .aspx – like in MVC. This is achieved with the help of Microsoft.AspNet.FriendlyUrls library which was described by Scott Hanselman https://aspnetfriendlyurls.codeplex.com/ . Together with this library we have ViewSwitcher control allowing to switch between desktop and mobile views of the page.
Another techniques we should pay attention to are bundling and minification. Rick Anderson described them for Web Forms here:
Main target of using these techniques is to improve request load time. Code for creating bundles in in Global.asax.cs file. Look at Bundle.config file, there you can add your own files as well.
ASP.NET identity (logging in / registration of user) uses Microsoft OWIN Authentication middleware for forms authentication. OWIN (Open Web Interface for .NET) is an open source project which defines interactions between web servers and application components (owin.org). In References of our solution there are several assemblies related to OWIN, for example:
- Microsoft.Owin.Host.System.Web - contains an OWIN server that enables OWIN-based applications to run on IIS using the ASP.NET request pipeline
- Microsoft.AspNet.Identity.Owin - contains a set of OWIN extension classes to manage and configure OWIN authentication middleware