.NET 8, the next planned release of Microsoft’s open source software development platform, will emphasize porting of Linux as well as cloud development and containers.
A first preview of .NET 8 is available to download at dot.microsoft.com for Windows, Linux and macOS, Microsoft said on February 21. A long-term support (LTS) release that will be supported for three years, .NET 8 should be available for production in November, one year after the release of the predecessor .NET 7.
The new version of .NET will be buildable on Linux directly from the dotnet/dotnet repository, using dotnet/source-build to build the .NET runtimes, tools, and SDKs. This is the same build used by Red Hat and Canonical to build .NET. Over time, this capability will be extended to support Windows and macOS. Previously, .NET could be compiled from source, but a dotnet/installer “source tarball” was required.
.NET 8 will also feature Ubuntu Chiseled images for appliance-style computing. And the minimum baselines for Linux are being updated; the .NET product will be built targeting Ubuntu 16.04, for all architectures. For Red Hat Enterprise Linux, .NET 8 will support RHEL 8 and remove RHEL 7.
For cloud-native development, .NET 8 introduces improvements to the way container images can be used for .NET applications, including publishing container images without root capability. This is introduced in .NET 8 Preview 1. Microsoft explained that while container base images are typically configured to run with the
root user, this is not always the best. The .NET 8 container images will use Debian 12 (Bookworm) Linux, which will be available mid-year.
Previews and release candidates for .NET 8 will be released on a monthly basis. Other capabilities set for .NET 8 include:
- NativeAOT (ahead-of-time) compilation, which provides benefits such as lower memory footprint and faster startup time, is expanding to more target application scenarios. In .NET 7, NativeAOT-specific console applications.
- JSON improvements in preview 1 include handling of missing members, with .NET able to configure object deserialization behavior when the underlying JSON payload includes properties that cannot be assigned to members of the deserialized POCO type. In addition, the source generator for JSON now supports serialization types with starting and required properties, and
System.Text.Jsonnow supports serialization of properties of interface hierarchies.
- New types have been added to the core libraries to allow developers to improve code performance in common scenarios. He
System.Collections.Frozennamespace, for example, provides
FrozenSet<T>. These types provide an immutable surface area in which changes to keys or values are not allowed. Performance-focused hash algorithms have also been added, including the XxHash3 and XxHash128 types.
- For the .NET SDK,
dotnet packproduce launch assets by default.
Plans for the .NET MAUI (Multi-platform App UI) development framework for the .NET 8 development time frame involve improving the upgrade path from Xamarin to .NET, speeding up UI rendering, and reduce the developer’s internal loop time. With .NET MAUI, developers can build native desktop and mobile apps with C# and XAML.
Copyright © 2023 IDG Communications, Inc.
Be First to Comment