.NET Core 3.0 Preview 4 Ships, GA Release Date Revealed Soon
Microsoft's .NET Core 3.0 is out in a fourth preview as it nears general availability, with the exact release date to be revealed by the company at its Build developer conference starting May 6.
.NET Core is Microsoft's cross-platform, open source, modernization remake of the 17-year-old .NET Framework that's tightly coupled to Windows.
In .NET Core 3 Preview 4, new functionality has been added to support desktop application development, one of the last parts of .NET Framework to be moved to the new platform, considering the tightly coupled nature of desktop apps and Windows.
Support for creating Windows Presentation Foundation (WPF) and Windows Forms (WinForms) applications was a major part of the .NET Core 3 previews and continues in the new release.
Microsoft exec Richard Lander said preview 4 includes a new WinForms Chart control -- the absence of which hindered some project migrations -- and new components published by the WPF team. The latter include:
Besides those desktop-related enhancements, other things new in preview 4 include:
- HTTP/2 support in HttpClient: HTTP/2 is a requirement for some APIs, including gRPC and Apple Push Notification Service. "We expect more services to require HTTP/2 in the future," Roth said.
- GC updates to use less memory: "While working on improving support for docker memory limits as part of Preview 3, we were inspired to make more general GC policy updates to improve memory usage for a broader set of applications (even when not running in a container). The changes better align the generation 0 allocation budget with modern processor cache sizes and cache hierarchy."
- Support for CPU limits with Docker: "The Docker client allows limiting memory and CPU. We improved support for memory limits in Preview 3, and have now started improving CPU limits support."
- The addition of PowerShell in .NET Core SDK Docker container images: "PowerShell Core has been added to the .NET Core SDK Docker container images, per requests from the community. PowerShell Core is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework that works well with your existing tools and is optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models. It includes a command-line shell, an associated scripting language and a framework for processing cmdlets."
- Improving .NET Core Version APIs: "We have improved the .NET Core version APIs in .NET Core 3.0. They now return the version information you would expect. These changes while they are objectively better are technically breaking and may break applications that rely on version APIs for various information."
- Tiered Compilation (TC) Update: "Tiered compilation (TC) is a runtime feature that is able to control the compilation speed and quality of the JIT to achieve various performance outcomes. It is enabled by default in .NET Core 3.0 builds. The fundamental benefit and capability of TC is to enable (re-)jitting methods with slower but faster to produce or higher quality but slower to produce code in order to increase performance of an application as it goes through various stages of execution, from startup through steady-state. This contrasts with the non-TC approach, where every method is compiled a single way (the same as the high-quality tier), which is biased to steady-state over startup performance."
The preview 4 release notes include more information on all of the above -- and many more new features -- along with download links, known issues, Docker images and more.
Microsoft also detailed new ASP.NET Core functionality in the .NET Core 3.0 Preview 4 (including the first Blazor preview), along with Entity Framework Core 3.0 Preview 4 and .NET Framework 4.8.
Microsoft has said the GA release of .NET Core 3.0 will ship in the latter half of the year, with the exact date to be announced at its Build 2019 developer conference slated to start May 6.
David Ramel is the editor of Visual Studio Magazine.