Introduction of ASP.NET vNext

Microsoft has announced new relase of ASP.NET for next generation which is called ASP.NET vNext. ASP.NET vNext provides an optimized development framework for apps that are either deployed to the cloud or run on-premises. It consists of modular components with minimal overhead, so you retain flexibility while constructing your solutions.

I have tried to summarize the features of ASP.NET vNext from Microsoft Release Note. ASP.NET 5 (ASP.NET vNext) includes the following features:

  1. Host anywhere
    ASP.NET vNext enables you to host your app on IIS or self-host your app in your own process.
  2. Use different versions of .NET side-by-side
    When apps on a server depend on a single, system-wide installation of the .NET Framework, all of the apps have to run the same version of .NET. In ASP.NET vNext, you can define the dependencies within your deployment package so you can specify for each application which version of .NET to use.
  3. Simplify dependency management
    In ASP.NET vNext, you no longer add assembly references to your project; instead, you manage dependencies by referencing NuGet packages. You can add NuGet packages through the NuGet Package Manager or you can edit the JSON file (project.json) that lists the NuGet packages and versions used in your project. To add other dependencies, you simply type the name and version number of the NuGet package into your project.json file.

  4. Eliminate duplication in MVC, Web API and Web Pages
    Previously MVC, Web API, and Web Pages contained common features but the implementations of those features were separate. For example, MVC and Web API both provided routing but the MVC routing classes resided in the System.Web.Mvc.Routing namespace while similar classes for Web API resided in the System.Web.Http.Routing namespace. Or, Web Pages and MVC both used Razor syntax, but some NuGet packages were compatible with only one or the other.

    In ASP.NET vNext, MVC, Web API, and Web Pages will be merged into a single framework called MVC 6. This merging removes duplication from the framework and makes it easier for you to develop apps that use these programming frameworks. You no longer need to write slightly different code depending on whether you are within an MVC, Web API, or Web Pages context.
  5. Cloud-ready configuration
    ASP.NET vNext applications are cloud ready by design. Services such as session state and caching will adjust their behavior depending on hosting environment either it is cloud or a traditional hosting environment. It uses dependency injection behind the scenes to provide your app with the correct implementation for these services for cloud or a traditional hosting environment. In this way, it will easy to move your application from on-premises to the cloud, since you need not to change your code.

    In ASP.NET 5, the need to use of Web.config file for configuration values is eliminated. The new system enables you to request named values from a variety of sources (such as JSON, XML, or environment variables). You can decide which formats work best in your situation. It makes easier for you to deploy your app to the cloud and have the app automatically read the correct configuration values for that environment.
  6. New flexible and cross-platform runtime
    Previously .NET Framework was delivered as a single, all-encompassing installation. With each release of .NET, features were added but rarely removed, so the size of the framework continually grew. This approach ensured that a Windows machine with .NET installed could support every type of .NET app, but it also meant that each app depended on features which were not actually being used. ASP.NET vNext gives you greater flexibility by being able to run on three runtimes:

    Full .NET CLR
    The full .NET CLR is the default runtime for projects in Visual Studio. It provides the entire API set and is your best option for backwards compatibility.

    Core CLR
    This CLR has been re-designed into components so you have the flexibility to include only those features that you need in your app. You add the components as NuGet packages. When you are finished, your app is dependent only on required features. Each component can be updated separately.

    You can select, which CLR you want to use:

  7. Improve HTTP performance
    ASP.NET vNext introduces a new HTTP request pipeline that is lean and fast. This pipeline is modular so you can add only the components that you need. By reducing the overhead in the pipeline, your application will experience better throughput.
  8. Integrate dependency injection
    Dependency injection is built into ASP.NET vNext. You can use your preferred Inversion of Control (IoC) container to register dependencies. Dependency injection facilitates providing the right services for the environment.
  9. Make it open source and transparent
    All of the code for .NET vNext is available through GitHub. Not only is the code available, but GitHub repository is used for all of the development. You can see exactly which changes were made and when they were made.
  10. Provide agile development environment
    Visual Studio 2015 provides a lightweight developer experience for ASP.NET applications. You simply make changes in your code, save the changes, and refresh the browser. You can see code changes in the web browser without re-building the project.