September 23rd, 2019
0 reactions

ASP.NET Core and Blazor updates in .NET Core 3.0

Principal Product Manager

ASP.NET Core and Blazor updates in .NET Core 3.0

Today we are thrilled to announce the release of .NET Core 3.0! .NET Core 3.0 is ready for production use, and is loaded with lots of great new features for building amazing web apps with ASP.NET Core and Blazor.

Some of the big new features in this release of ASP.NET Core include:

  • Build rich interactive client-side web apps using C# instead of JavaScript using Blazor).
  • Create high-performance backend services with gRPC.
  • SignalR now has support for automatic reconnection and client-to-server streaming.
  • Generate strongly typed client code for Web APIs with OpenAPI documents.
  • Endpoint routing integrated through the framework.
  • HTTP/2 now enabled by default in Kestrel.
  • Authentication support for Web APIs and single-page apps integrated with IdentityServer
  • Support for certificate and Kerberos authentication.
  • Integrates with the new System.Text.Json serializer.
  • New generic host sets up common hosting services like dependency injection (DI), configuration, and logging.
  • New Worker Service template for building long-running services.
  • New EventCounters created for requests per second, total requests, current requests, and failed requests.
  • Startup errors now reported to the Windows Event Log when hosted in IIS.
  • Request pipeline integrated with with System.IO.Pipelines.
  • Performance improvements across the entire stack.

You can find all the details about what’s new in ASP.NET Core in .NET Core 3.0 in the What’s new in ASP.NET Core 3.0 topic.

See the .NET Core 3.0 release notes for additional details and known issues.

Get started

To get started with ASP.NET Core in .NET Core 3.0 install the .NET Core 3.0 SDK.

If you’re on Windows using Visual Studio, install Visual Studio 2019 16.3, which includes .NET Core 3.0.

Note: .NET Core 3.0 requires Visual Studio 2019 16.3 or later.

There is also a Blazor WebAssembly preview update available with this release. This update to Blazor WebAssembly still has a Preview 9 version, but carries an updated build number. Blazor WebAssembly is still in preview and is not part of the .NET Core 3.0 release.

To install the latest Blazor WebAssembly template run the following command:

dotnet new -i Microsoft.AspNetCore.Blazor.Templates::3.0.0-preview9.19465.2

Upgrade an existing project

To upgrade an existing ASP.NET Core app to .NET Core 3.0, follow the migrations steps in the ASP.NET Core docs.

See the full list of breaking changes in ASP.NET Core 3.0.

To upgrade an existing ASP.NET Core 3.0 RC1 project to 3.0:

  • Update all Microsoft.AspNetCore.* and Microsoft.Extensions.* package references to 3.0.0
  • Update all Microsoft.AspNetCore.Blazor.* package references to 3.0.0-preview9.19465.2

That’s it! You should now be all set to use .NET Core 3.0!

Join us at .NET Conf!

Please join us at .NET Conf to learn all about the new features in .NET Core 3.0 and to celebrate the release with us! .NET Conf is a live streaming event open to everyone, and features talks from many talented speakers from the .NET team and the .NET community. Check out the schedule and attend a local event near you. Or join the Virtual Attendee Party for the chance to win prizes!

Give feedback

We hope you enjoy the new features in this release of ASP.NET Core and Blazor in .NET Core 3.0! We are eager to hear about your experiences with this latest .NET Core release. Let us know what you think by filing issues on GitHub.

Thanks for using ASP.NET Core and Blazor!

Author

Daniel Roth
Principal Product Manager

Daniel Roth is a Program Manager on the ASP.NET team at Microsoft.

43 comments

Discussion is closed. Login to edit/delete existing comments.

Sort by :
  • John Rummell

    Where can we find more information about “Generate strongly typed client code for Web APIs with OpenAPI documents”? Is this similar to Refit or is there a way to generate client code?

  • Linh Nguyen

    I tried blazor with simple Timer so it executes every few seconds..

    The timer object does kick in, however the UI not updated?

    For example,

    on the server side, I have count++;

    but @count not updated on the UI?

    Thanks

  • Andrew Stephens

    I've only had a very quick play with Blazor, and was particularly interested to see how easy a "standalone" deployment would be; I might not want to pay for IIS or Azure hosting, or there might be no need for it (e.g. a website with no server-side functionality).

    I immediately hit an issue whereby my hosting company (and I'm sure most others that offer this kind of basic hosting) don't permit DLLs to be uploaded to their servers, so the files in the _framework\bin\ folder get deleted as soon as I upload them.

    I don't know if this is even possible, but...

    Read more
    • Daniel RothMicrosoft employee Author

      Hi Andrew,

      Yes, we’ve seen variants of this issue with Blazor WebAssembly apps and we are tracking providing a solution here: https://github.com/aspnet/AspNetCore/issues/5477. Could you please share with us on the GitHub issue which hosting company you hit this issue with so that we can make sure we test and address your scenario?

      • Andrew Stephens

        Done. Thanks for the quick reply.

  • Jan Wesseler

    While upgrading to ASP.NET 3.0 I´ve encountered a problem while migrating the Startup.cs.
    Since UseMvc is not available anymore, how do I migrate my use-case scenario?

    Code used for ASP.NET 2.2:
    app.UseMiddleware(app.ApplicationServices.GetService())
    .UseMvc()