Learn ASP.NET MVC, ASP.NET Core, and Design Patterns through our online training programs. Courses conducted by Bipin Joshi on weekends. Read more details here.

Prepare Yourself for ASP.NET 5 - Part 5 (Framework Versions)

In Part 1, Part 2, Part 3 and Part 4 of this series I discussed Less, Sass, NuGet, Npm, Bower, Grunt / Gulp and Application Startup respectively. These parts would have given you some idea as to what background is needed to begin your ASP.NET 5 journey. In this part I am going to discuss where exactly ASP.NET 5 fits in the whole picture of .NET framework. Remember, however, that ASP.NET 5 is still a work in progress. Whatever I mention below may change in the future releases. My aim is just to make you aware of the big picture and the role ASP.NET 5 is going to play.

In order to understand the versions involved in the next release of .NET you need to consider:

  • .NET framework versions
  • ASP.NET versions
  • Web Forms version
  • MVC versions

Have a look at the following figure that shows this big picture:

.NET 4.6 and .NET Core 5

Today when you decide to develop a web application you don't need to make any decision about the underlying .NET framework. This is because there is just one .NET framework available today. Going forward, you need to give some thought about the kind of .NET framework you wish to target. Two flavors of .NET framework will be available - Full and Core. For the sake of this article, I am going to call the former as .NET Full and the later as .NET Core.

The .NET Full is basically the next version of what we have today. It includes everything that we use today for building desktop based applications, console applications and web applications. So, things such as WinForms, WPF, WCF as well ASP.NET will go into this framework. The version number for .NET Full is 4.6.

There is another, brand new flavor of .NET framework - .NET Core - that is a subset of the .NET full. The .NET Core is intended for applications that are targeted at modern cloud based and cross platform development. As you might have guessed .NET Core is a lean framework that includes only the essential components. Using .NET Core you can develop console applications and web applications. Now, a bit confusing part - Although .NET core is a subset of .NET Full, its version number starts directly at 5.

ASP.NET 4.6 / Web Forms 4.6

These two flavors of .NET come with their own flavors of ASP.NET - ASP.NET 4.6 and ASP.NET 5. The ASP.NET 4.6 is the next version of what we use today. That's why I have called it ASP.NET Existing in the diagram. It includes Web Forms, MVC and Web API. The version of Web Forms included in .NET Full is 4.6 and is a minor upgrade to the existing Web Forms engine. You can, of course, use MVC 5 and Web API 2 to build applications using the respective technologies. Your existing ASP.NET applications should run on .NET Full with little or no changes. If you decide to ignore ASP.NET 5 and wish to continue your development using ASP.NET 4.6 then your stack will look like this: 

Your ASP.NET 4.6 applications can use Web Forms 4.6 / MVC 5 / Web API 2 and they will run only on .NET Framework 4.6 (Full). Development using this stack follows the same model that we use today.

You will find that many people use the term Web Forms 4.6 to mean ASP.NET 4.6. I prefer to use ASP.NET 4.6 because it not only includes Web Forms but also other items such as handlers, modules and can also run MVC 5 applications. Additionally, template selection dialog of Visual Studio 2015 classifies the templates as "ASP.NET 4.6 templates" and "ASP.NET 5 templates".

ASP.NET 5 / MVC 6

The other flavor of ASP.NET (vNext in the figure) is ASP.NET 5. You will be able to develop ASP.NET 5 applications using MVC only (No Web Forms). The version of MVC included in ASP.NET 5 is 6. MVC 6 is a complete rewrite of MVC engine we use today. Although the concepts such as models, views, controllers and actions remain the same under the hood MVC 6 is an improved and rewritten engine. Moreover, Web API (and also Web Pages) is now an integral part of MVC 6 rather than a separate framework as we have today.

It is important to keep in mind that an ASP.NET 5 application can target .NET Full or .NET Core depending on your need. This is shown by the dotted line in the first figure. If you target .NET Full then your ASP.NET 5 application can use all the features of the framework that you use today. Web applications developed this way are primarily targeted at traditional server hosted environments. If you target .NET Core your ASP.NET 5 applications can't use all the features that you use today. This is so because .NET Core includes only bare minimum essential components. You need to add additional components as NuGet packages depending on your need. The stack in this case is shown below:

When you use ASP.NET 5 you develop applications using MVC 6 and then target them at .NET 4.6 (Full) or .NET Core 5 depending on your requirements.

When you see terms ASP.NET 5 and ASP.NET Core 5 used together it simply means that the former is referring to ASP.NET 5 applications targeting .NET Full whereas the later is referring to ASP.NET 5 applications targeting .NET Core. The References folder of Solution Explorer in VS 2015, for example, uses these terms to group assemblies.

The following table summarizes what we discussed in this article:

Item Version(s)
.NET Framework 4.6
.NET Framework Core 5
ASP.NET 4.6 - traditional development targeting .NET 4.6
5 - cloud optimized / cross platform development targeting .NET Core 5 or .NET 4.6
Web Forms 4.6 - for ASP.NET 4.6 only
MVC 5 - for ASP.NET 4.6
6 - for ASP.NET 5 (includes Web API)

That's it! I hope this series has given you some insight into the technologies ASP.NET 5 applications use. As I said earlier, ASP.NET 5 is still a work in progress and things can change. However, your existing skills coupled with the topics discussed in this series will help you to take a plunge into ASP.NET 5.




Bipin Joshi is a software consultant, trainer, author and a yogi having 21+ years of experience in software development. He conducts online courses in ASP.NET MVC / Core, jQuery, AngularJS, and Design Patterns. He is a published author and has authored or co-authored books for Apress and Wrox press. Having embraced Yoga way of life he also teaches Ajapa Meditation to interested individuals. To know more about him click here.

Get connected : Twitter  Facebook  Google+  LinkedIn

Posted On : 27 Apr 2015



Tags : ASP.NET MVC C# Visual Studio