Announcing ASP.NET Core RC2

Edit:  ASP.NET Core RC2 is now available for use with Azure Web Applications

We are very pleased to announce the availability of ASP.NET Core RC2.  This release succeeds the ASP.NET 5 RC1 release and features a number of updates to enhance compatibility with other .NET frameworks and an improved runtime.  You can install the RC2 from http://dot.net.

What happened to ASP.NET 5?

This release features the rebranding of ASP.NET 5 to ASP.NET Core.  This renaming was made in order to clarify that this is a new framework built from the ground up and not a revision of the existing ASP.NET frameworks.  More details can be found on this blog.

The release contains the RC2 of the .NET Core runtime and libraries.  These libraries are everything that ends up in your ‘bin’ folder when you deploy an application.  The tooling included (command-line tools, project tools, and Visual Studio tools) has been declared as a preview 1 release.  This change allows those developers who are comfortable with using the runtime to move forward with their projects while the ASP.NET Core tools are completed.

Introducing the .NET CLI

A key change that occurred between RC1 and RC2 is the introduction of the .NET command-line interface.  This tool replaces the dnvm, dnx, and dnu utilities with a single tool that handles the responsibilities of these tools.  Get started by executing the command `dotnet` at a command-prompt:

dotnet CLI

You can learn more about the .NET CLI on the .NET team blog and their coverage of this update.

ASP.NET Core is a console app

In RC1 an ASP.NET application was a class library that contained a Startup.cs class. When the DNX toolchain run your application ASP.NET hosting libraries would find and execute the Startup.cs, booting your web application. Whilst the spirit of this way of running an ASP.NET Core application still exists in RC2, it is somewhat different.

As of RC2 an ASP.NET Core application is a .NET Core Console application that calls into ASP.NET specific libraries. What this means for ASP.NET Core apps is that the code that used to live in the ASP.NET Hosting libraries and automatically run your startup.cs now lives inside a Program.cs. This alignment means that a single .NET toolchain can be used for both .NET Core Console applications and ASP.NET Core applications. It also means that customers have more obvious control over the code that hosts and runs their ASP.NET Core app:

Program - Main in ASP.NET default template

In this code snippet, from the Main method of an ASP.NET Core RC2 app, is responsible for configuring and running the app. If, for example, you want your application to listen on a particular port or IP address then you can use the WebHostBuilder to do it.

This migration from a class library that is designed to be run on the DNX to a console application with a Program.cs and a Main method that can be run by a new .NET toolchain is one of the most significant changes that RC2 brings to ASP.NET Core.

IIS Support Baked In

IIS is a tremendous web server and we continue to provide first-class support for it.  Use the new ASP.NET Core Module in your web.config (it’s added in the new project templates) to configure IIS to launch and host your application.

<configuration>
<system.webServer>

  <handlers>
    <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
  </handlers>

  <aspNetCore processPath="%LAUNCHER_PATH%"
              arguments="%LAUNCHER_ARGS%"
              stdoutLogEnabled="false"
              stdoutLogFile=".\logs\stdout"
              forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>

How do I migrate from RC1 to RC2?

With these changes to the underlying framework and the branding changes, there are a number of updates that you will need to make to your applications to make them RC2-ready.  We have written the following guides to help you update:

Can I use RC2 with Azure Web Applications?

Yes, Azure Web Applications have full support for deploying ASP.NET Core RC2 apps.  More details are available on the Azure blog.

Summary

There are a number of other changes that occurred in order to clear up, fix, or simplify APIs during the RC2 development process.  There are also a number of performance enhancements that were committed in this release, most notable are those that significantly improve the throughput of the Kestrel web server.  As always, you can find clear documentation of all ASP.NET Core RC2 changes in our Announcements repository on GitHub.  Please download a copy of ASP.NET Core RC2 today and give it a try.