The question is: “Microsoft ASP.NET vNext: evolution or revolution?“, the absolute answer is revolution. In this series of articles, I will try to describe in detail the latest technology for creating web applications, namely – ASP.NET vNext, which initially had the official name ASP.NET 5 and later was renamed to ASP.NET Core 1.0. There will be another series devoted to the development of a real application with examples describing the practical use of this technology.
I will start with describing the history of ASP.NET development. Back in 1996, Microsoft proposed a technology – Active Server Pages (ASP) for creating web applications. The basic idea of an ASP application was something like this: a web page on a server contained some VBScript or JScript server-side scripts, and when the page was requested, the scripts were launched and executed, followed by the generation of HTML. It was a big step forward when compared to CGI. With the release of Microsoft .NET Framework in 2002, a completely new platform for developing web applications, ASP.NET, has been delivered. In 2003, it was updated to version ASP.NET 1.1. This was the beginning of ASP.NET, back then, a completely new technology which had plenty of advantages over ASP. In fact, this was a full-fledged framework for web application development. Time passed by and ASP.NET had been developing along with .NET Framework – the major upgrade was released in 2005. The main new features were: themes, master page, globalization, etc. The web developed rapidly, web pages became more interactive and rich, the AJAX technology appeared. In 2007, another major update, ASP.NET 3.5, was released. It was then that such powerful tools like ASP.NET AJAX, LINQ, Dynamic Data, were supported. With the release of ASP.NET 3.5 SP1 in 2009, a new MVC-based approach for processing web pages requests appeared. Then there were two: Web Forms and MVC.
Simultaneously with the launch of .NET Framework 4, ASP.NET was updated to the fourth version. Another major platform update was released together with the release of ASP.NET 4.5. Such tools as Web API and SignalR appeared. With the release of Visual Studio 2013, a new concept appeared – “One ASP.NET”. All components of the platform were updated, and a new specification appeared – OWIN (Open Web Server Interface for .NET), which became the basis of ASP.NET vNext. Last year, Microsoft released a preliminary version of the fundamentally redesigned technology for developing web applications, which received the official name – ASP.NET 5. Among other things, there is a large number of updated and new technologies and products from Microsoft, the final versions of which will be released this year. And now let’s list the facts as they actually happened. I’ll start with the biggest and most important event — the update and improvement of .NET Framework. But first, let’s remember the course of .NET Framework development:
The .NET platform was introduced in 2002 and quickly gained popularity becoming one of the major modern software development tools. The main advantages of .NET platform over the predecessor (the COM technology) are flexibility and a simpleк and more reliable programming model. The platform has been developed, new versions, libraries, and technologies have been added to satisfy all the new requirements of the fast-growing world of information technology. Well, of course, Microsoft does not sit around idly and continues to improve .NET platform in order to keep up with the times. The platform released last year had been recently updated to version .NET Framework 4.6.2. So, what is the future of .NET? And the future is really interesting and promising.
As can be seen from the above drawing, there are basically two versions of .NET Framework. The first is a logical continuation of the current version .NET 4.5.2, which is officially named .NET 4.6 (the updated versions: .NET Framework 4.6.1 – 4.6.2). The second is now referred to as .NET Core 1.0 (previously known as .NET Core 5), and is a simplified version of the standard .NET Framework. The first one is self-explanatory, while the second raises a lot of questions. The most important one is why we need it? To meet the growing needs of today’s digital world that is developing rapidly. If you look at the .NET platform development scale provided above, we can see that the release cycle of the new versions covers a couple of years, or even more, which is a very long term at the current state of things. The situation needs to be changed for the better, the decision is .NET Core 1.0. The latter must satisfy the modern requirements for design, thereby new trends for promotion and development of the platform have been established: rapid development cycle and community participation. An independent organization .NET Foundation was established for these purposes. It will be involved in the development of .NET ecosystem. This link provides a list of all the current projects that will be developed under the supervision of the organization. That is, the .NET platform becomes open. Full modularity – that’s one of the main features that I like the most. This is especially useful for web applications, and later I will tell you why.
The following drawing shows a general model of an application that will use the .NET Core platform. The modularity of .NET Core means that the framework will be delivered in parts through NuGet, making it possible to deliver the application together with the platform that will be isolated from the other components. That is, there won’t be a common version of .NET for the entire machine.
More information about .NET 2015 and .NET Core is available on Channel 9. And what should we expect in the near future, what will happen to .NET tomorrow?
More information on the present and future of the platform is available in the reports of dotnetConf 2016. Now, let’s talk about ASP.NET Core. The image below demonstrates the general scheme of the platform.
As can be seen from the drawing, the key features of the new technology is that it is completely modular and cross-platform. That is, using the framework as part of the deployment package, you will no longer encounter the problems with the configuration of hosting environment for an application. Each application will have its own, independent version of the platform. Almost the entire platform is written from scratch using manageable code. All the source code of the latest version of the web-based platform is open and available on GiHub. The ASP.NET MVC and Web API technologies are combined into one, and Web Forms are no longer used in the version of ASP.NET Core. The new version of ASP.NET on Windows will run using one of the two versions of .NET Framework: .NET 4.6 and .NET Core 1.0, and only .NET Core will be used on Linux and Mac OS X. More information on ASP.NET Core is available on Channel 9 “What’s New with ASP.NET 5″, the same course is available on Microsoft Virtual Academy website (ASP.NET 5 was renamed to ASP.NET Core 1.0). Also, I recommend you to review the course “ASP.NET Core 1.0 Fundamentals” on Pluralsight. As for myself, I learned a lot of interesting and useful things from the report “ASP.NET vNext: What it means to you and what it means to Microsoft“, which I reviewed several times. The next part is devoted to the features offered by the latest version of .NET Framework in terms of web development plan.
Since 2011, Karen has been an active member of MSDN community and participated in MSDN forums as a moderator and leads his own blog about .NET Framework, software development, debugging, and diagnostic tools. Karen is a Microsoft MVP since 2014.
Karen is an active speaker in the events which Microsoft organizes in Armenia and Georgia.