Today, Microsoft has released a ton of new updated for its developer products, specifically revolving around .NET Core. For starters, .NET Core 3.0 is now available, after it was first mentioned almost a year ago.
The release comes with a ton of updates and changes, including performance improvements over the previous version. It also includes C# 8.0, F# 4.7 - which got its own separate blog post today detailing what's new - and .NET Standard 2.1. .NET Core now supports Windows Desktop apps through WPF and WinForms, and a WPF designer is included in Visual Studio 2019 16.3, while the WinForms designer is still in preview and available as a VSIX download.
Other news include executables for .NET Core apps, new high-performance JSON APIs, a more memory-efficient garbage collector, added support for ARM chipsets and Raspberry Pi, as well as "hardened" support for Docker, offering extra reliability.
It's worth noting that .NET Core 3.0 is a "current" release and will be superseded by .NET Core 3.1 in November, which will be long-term support release. It requires Visual Studio 2019 16.3 on Windows, Visual Studio for Mac 8.3, or the latest version of Visual Studio Code on any platform. It will also be available through RHEL 8 in Red Hat Application Streams.
Also aligning with the above releases, Entity Framework Core (EFCore) 3.0 and Entity Framework 6.3 are now generally available as NuGet packages on nuget.org. EFCore 3.0 introduces an overhaul for LINQ, including restricted client evaluation and single SQL statements for each LINQ query. It also adds Cosmos DB support and makes use of new features in C# 8.0, such as asynchronous streams. Just like .NET Core, this release will be superseded by EFCore 3.1 later this year, and that will be a long-term support release.
Entity Framework 6.3, for its part, adds support for .NET Core 3.0 as well as SQL Server hierarchyid. It improves compatibility with Roslyn and NuGet Package References, and it also includes a new ef6.exe utility for managing migrations with assemblies, replacing the previous migrate.exe tool.