The .NET framework is an excellent platform if you’re a developer. Less so if you’re a system administrator. Deployment of .NET applications from the developer’s machines to a server environment just about always leads to a yellow screen of death while you sort out version and configuration issues. With ASP.NET vNext, things are about to get a whole lot better.
ASP.NET vNext is an upcoming major iteration of the .NET framework, basically a ground up rebuild. It aims to solve some of the key pain points from previous versions while also adding some handy new features, consolidating frameworks, and optimizing performance.
One of the biggest areas of improvement is with application packaging and deployment. Currently, when you want to run an ASP.NET MVC app on a server you need to go through the process of installing the complete .NET framework on the server, along with a reboot usually. If you’re setting this up for a legacy app running .NET 2.0 and in the future you want to also host a .NET 4.0+ application, you need to install the full .NET 4.0 framework as well. You now need to carefully configure each application in IIS to use the proper framework version and settings. It’s possibly (and likely) that when you install the requirements for your .NET 4.0+ app, something will break in your .NET 2.0 app.
With vNext, the .NET framework is contained within your application and is deployed in the bin directory along with your other libraries. Each application can have its own version of the .NET framework and each is isolated from one another. This effort was undertaken mostly to improve cloud deployment scenarios but it’s just as beneficial, if not more-so, on local servers.
The framework has also been trimmed down substantially from over 200MB to just 11MB. This is due to the fact that everything has been modularized and moved to NuGet, Microsoft’s package management system. Everything is now a package, even the .NET framework itself, and you only download the dependencies you need for your application instead of the whole thing.
vNext is also host agnostic now, meaning you can host your application using IIS or some other custom process, it’s your choice. You can even run multiple instances of the same application on the same server, each with different version of the .NET framework (not a lot of practical reasons for that but it illustrates the point).
vNext also includes a new real-time compiler called Roslyn. Roslyn dynamically compiles your code and you work on it, meaning you no longer need to build your project to get your code changes to take effect, simply refresh your browser. It also enabled new development opportunities such as cloud based IDE’s and a wider choice of local editors like Notepad++ or Sublime Text.
ASP.NET vNext is also putting a large focus on cross-platform capabilities. The .NET team is adding Mono to their general test scenarios in an effort to open hosting options up beyond Windows and into the Linux world without sacrificing functionality.
Finally, the web framework themselves are being unified. Instead of separate project types for Web Pages, MVC, and Web API, they are all being merged in a single framework called MVC 6. This will greatly simplify project maintenance, development, and deployment going forward.
There are many changes coming with vNext and a lot of them are items developers have been clamoring for. For a closer look into what vNext is all about, check out the introduction video below, along with the technical deep dive into vNext if you’re interested.