ASP.NET vNext Platform for Building Web Applications with .NET

Wednesday, June 11th, 2014

Most of you, probably already know about ASP.NET vNext,  a new open-source and cross-platform web development framework.  The .NET developers have been trying for years to have Microsoft release an open-source version, and now that they have joined forces with the other amazing programmers from the .NET core in-house development team. Some of the new features available in  ASP.Net took .NET development wizards across many remote teams and disciplines more than 10 years to design, develop and implement.

Some of the new .NET goodies at Build:

  • .NET Native – allows you to perform future-forward .NET compilation. Developing with .NET has got even faster.

  • .NET Compiler Platform – it’s an open-source product that introduces brand-new C# and VB compilers, compiler-as-a-service.

  • Nextgen JIT – it’s an optimized version of JITter that supports the latest processors.

PowerShell Based Deployments

Microsoft .NET developers worked hard to take ASP.NET to the next level of web application development and have you execute ASP.NET with the help of the desktop application  CLR. This version  is also cloud-optimized which meant ASP.NET vNEXT  performs well  in such server scenarios like low-memory and high-throughput. That, however does not mean that Microsoft decided to turn on Azure, as it still tries to make it into a standard way you deploy websites. But the discontent from .NET developers  community to have to publish websites directly from Visual Studio made Microsoft think of other ways too. .NET developers now will generate PowerShell scripts by default in the ASP.NET vNext. These scripts you can edit in Visual Studio that has basic tools support for PowerShell.

Cloud Optimized Framework with NuGet Packages references

Microsoft .NET developers is trying to remove their dependency on System.Web and gradually switching to so-called Cloud Optimized Framework. The main advantages of using it is that you are no longer required to each time upgrade .NET version on the entire machine when building a website.  Besides the cloud-optimized side ASP.NET vNext allows you to deploy .NET Framework in the vesion you like on an app-by-app-basis, which  means that one application that used new libraries will not break an application with another version libraries. ASP.NET vNext goes as far as to let your applications have their own cloud-optimized CLR of their own version. These functionalities, CLR and cloud-optimized libraries are part of  NuGet packages.

Now packages can have various versions of a library differentiated by target platform. So, when deciding at runtime what to load for a given library new ASP.NET will choose beween full .NET, Mono, or Core CLR. Mono is now an official cross-platform CLR for ASP.NET vNext. Microsoft’s .NET developers team works closely with the Mono community.

ASP.NET MVC 6

Part of the whole ASP.NET vNext initiative is a new and improved version of ASP.NET MVC, ASP.NET MVC that illustrates a new way Microsoft builds and deploys .NET web development frameworks. Their developers strive to design a host agnostic framework that has no dependencies on the legacy System.Web infrastructure.

Microsoft thinks that System.Web is too expensive to be used with ASP.NET vNEXT. If we take your usual HttpContext object graph, it will consume roughly 30K of memory per request. That means that working with small JSON-style requests is counterproductive. A new design of MVC 6 allows to drop the number to 2K per request.

MVC comes with Web API and Web Pages, thus removing overlapping issues. Furthermore, each individual MVC 6 library you need for a website will be referenced like a normal developer-created DLL. This eliminates the problem of affecting the applications on one server, when performing an update of some particular one.

Cross Platform Development

Microsoft decided that this version of .NET, namely ASP.NET vNext will be designed not only for cross-platform deployment, but cross-platform development. You will be provided with batch files for OS X and Linux platforms so that your .NET vNext projects won’t need Windows and Visual Studio to be packaged and deployed. You will have the KPM or the “Katana Packaged Modules” with the NuGet repository on your backend.

To summarize ASP.NET vNEXT is a new open-source cloud-optimized platform for faster web application development. ASP.NET vNext supports Mono, and can be run on Mac and Linux. ASP.NET MVC 6 comes with Web API, eliminating frameworks overlapping issues. It allows you to deploy the runtime and framework with your application side by side. Faster, easier, less work with versions support made  ASP.NET vNEXT ideal for your next web development project.