Yesterday, at the ongoing .NET Conference 2019, NET Core 3.0 was released along with ASP.NET Core 3.0 and Blazor updates. C#8 and F# 4.7 is also a part of this release. Entity Framework Core 3.0 and Entity Framework 6.3 are now generally available.
What’s new in .NET Core 3.0
.NET Core 3.0 now includes adding Windows Forms and WPF (Windows Presentation Foundation), adding new JSON APIs, support for ARM64, and improving performance across the board. Here are the key highlights:
Support for Windows Desktop apps
.NET Core supports Windows Desktop apps for both Windows Forms and WPF (and open source). The WPF designer is part of Visual Studio 2019 16.3, which was also released yesterday. This includes new templates and an updated XAML designer and XAML Hot Reload. The Windows Forms designer is still in preview and available as a VSIX download.
Support for C# 8 and F# 4.7
C# 8 was released last week and adds async streams, range/index, more patterns, and nullable reference types. F# 4.7 was released in parallel to .NET Core 3.0 with a focus on infrastructural changes to the compiler and core library and some relaxations on previously onerous syntax requirements. It also includes support for LangVersion and ships with nameof and opening of static classes in preview.
.NET Core apps now have executables by default
This means apps can now be launched with an app-specific executable, like myapp or ./myapp, depending on the operating system.
Support for new JSON APIs
High-performance JSON APIs have been added, for reader/writer, object model, and serialization scenarios. These APIs minimize allocations, resulting in faster performance, and much less work for the garbage collector.
Support for Raspberry Pi and Linux ARM64 chips
These chips enable IoT development with the remote Visual Studio debugger. You can deploy apps that listen to sensors, and print messages or images on a display, all using the new GPIO APIs. ASP.NET can be used to expose data as an API or as a site that enables configuring an IoT device.
.NET Core 3.0 is a ‘current’ release and will be available with RHEL 8. It will be superseded by .NET Core 3.1, targeted for November 2019. If you’re on .NET Core 2.2 you have until the end of the year to update to 3.1, which will be LTS. You can read a detailed report of all .NET Core 3.0 features.
What’s new in ASP.NET Core 3.0
Other updates in ASP.NET Core 3.0:
- You can now create high-performance backend services with gRPC.
- SignalR now has support for automatic reconnection and client-to-server streaming.
- 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.
- New generic host sets up common hosting services like dependency injection (DI), configuration, and logging.
- New Worker Service template for building long-running services.
For a full list of features, visit Microsoft Docs.
Entity Framework Core 3.0 and Entity Framework 6.3 are now generally available with C# 8
New updates in EF Core 3.0 include:
- Newly architectured LINQ provider to translate more query patterns into SQL, generating efficient queries in more cases, and preventing inefficient queries from going undetected.
- Cosmos DB support to help developers familiar with the EF programming model to easily target Azure Cosmos DB as an application database.
EF 6.3 brings the following new improvements to the table:
- With support for .NET Core 3.0, the EF 6.3 runtime package now targets .NET Standard 2.1 in addition to .NET Framework 4.0 and 4.5.
- Support for SQL Server hierarchyid
- Improved compatibility with Roslyn and NuGet PackageReference
- Added the ef6.exe utility for enabling, adding, scripting, and applying migrations from assemblies. This replaces migrate.exe
.NET Core 3.0 is a major new release of .NET Core. Developers have widely appreciated the announcement.
Trimmed single-exe deployments with .NET built-in is probably my favorite .NET Core 3.0 feature. Will be huge for desktop developers, allowing them to always use the latest and greatest, and not worry about prerequisites on users' PCs #dotnetconf pic.twitter.com/8tUdU2SJvK
— .Morten (@dotMorten) September 23, 2019
Congrats to Microsoft @dotnet @aspnet as well as @terrajobst @DamianEdwards @jongalloway @shanselman and the hundreds of employees responsible for getting .NET Core 3.0 out the door. A major milestone for the industry. Cross platform coding is about to take a major leap forward.
— Robert McLaws (@robertmclaws) September 23, 2019
— Jaypal Pachore (@JaypalPachore) September 23, 2019
Interested developers can start updating their existing projects to target .NET Core 3.0. The release is compatible with earlier .NET Core versions which makes updating easier.