Today we’re happy to announce the first release candidate of ASP.NET Core 2.1! This release should be very close to the final stable release of ASP.NET Core 2.1 and includes primarily bug fixes and polish for the features that we shipped in earlier previews. This is a "go live" release that can be used in production with the understanding that you will need to update to the final stable release once it is available.
Also, be sure to read about .NET Core 2.1.0-rc1 and Entity Framework Core 2.1.0-rc1.
Get started
To get started with ASP.NET Core 2.1.0-rc1 download the .NET Core 2.1.0-rc1 SDK
Customers using Visual Studio should also install Visual Studio 2017 Update 7 or Visual Studio for Mac 7.5.
Migrating an ASP.NET Core 2.0.x project to 2.1.0-rc1
To migrate an existing ASP.NET Core 2.0.x project to 2.1.0-rc1:
- Open the project’s .csproj file and change the value of the
<TargetFramework>
element to netcoreapp2.1- Projects targeting .NET Framework rather than .NET Core, e.g. net471, don’t need to do this
- In the same file, update the versions of the various
<PackageReference>
elements for any Microsoft.AspNetCore, Microsoft.Extensions, and Microsoft.EntityFrameworkCore packages to 2.1.0-rc1-final - In the same file, remove any references to
<DotNetCliToolReference>
elements for any Microsoft.AspNetCore, Microsoft.VisualStudio, and Microsoft.EntityFrameworkCore packages. These tools are now deprecated and are replaced by global tools.
That should be enough to get the project building and running against 2.1.0-preview2. The following steps will change your project to use new code-based idioms that are recommended in 2.1
- Open the Program.cs file
- Rename the
BuildWebHost
method toCreateWebHostBuilder
, change its return type toIWebHostBuilder
, and remove the call to.Build()
in its body - Update the call in Main to call the renamed
CreateWebHostBuilder
method like so:CreateWebHostBuilder(args).Build().Run();
- Open the Startup.cs file
- In the
ConfigureServices
method, change the call to add MVC services to set the compatibility version to 2.1 like so:services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
- In the Configure method, add a call to add the HSTS middleware after the exception handler middleware:
app.UseHsts();
- Staying in the
Configure
method, add a call to add the HTTPS redirection middleware before the static files middleware:app.UseHttpsRedirection();
- Open the project property pages (right-mouse click on project in Visual Studio Solution Explorer and select “Properties”)
- Open the “Debug” tab and in the IIS Express profile, check the “Enable SSL” checkbox and save the changes
- In you project file change any package reference to Microsoft.AspNetCore.All package to Microsoft.AspNetCore.App and add additional packages as needed to restore the your required dependency graph
Note that some projects might require more steps depending on the options selected when the project was created and modifications made to the project.
Deploying to Azure
Azure App Service will start deploying .NET Core 2.1.0-rc1 with the next week or so. In the meantime you can still deploy apps using ASP.NET Core 2.1.0-rc1 by deploying as stand-alone applications.
New features and enhancements
This release primarily contains refinements and bug fixes to the features we shipped in earlier previews, but there are a couple of new features and enhancements worth calling out. You can find a complete list of the features and enhancements in this release in the release notes.
New Razor UI Class Library template
The new Razor Class Library project template makes it easy to build reusable Razor UI class libraries. Razor class library projects are already setup with the Razor SDK to enable building Razor files (.cshtml) like MVC views and Razor Pages.
To create a new Razor class library project from the command-line:
dotnet new razorclasslib -o RazorClassLib1
You can also create Razor class library projects in Visual Studio from the "New ASP.NET Core Web Application" dialog.
Improvements to MVC test infrastructure
You can now derive from WebApplicationFactory
to create a custom factory that configures the HttpClient
by overriding ConfigureClient
. This enables testing scenarios that requrie specific HttpClient
configuration, like adding specific HTTP headers.
We also update the default environment setup by the WebApplicationFactory
to be development to simplify scenarios like accessing user secrets and other development resources.
SignalR updates
- The MessagePack protocol library for SignalR was renamed to Microsoft.AspNetCore.SignalR.Protocols.MessagePack
- The JavaScript/TypeScript client Hub connection API changed to use the HubConnectionBuilder (similar to the C# client)
-
Sticky sessions are now required when using the WebSockets transport unless the
skipNegotiation
flag is set totrue
:var connection = new signalR.HubConnectionBuilder() .withUrl("/chat", { skipNegotiation: true, transport: signalR.HttpTransportType.WebSockets }) .build();
Summary
Thank you for trying out ASP.NET Core 2.1.0-rc1! Assuming everything goes smoothly with this release we should have a stable release of ASP.NET Core 2.1 shortly. If you have any questions or find any issues with this release please let us know by filing issues on GitHub.
0 comments