Microsoft has published the first preview of .NET 6, the next generation of the company's software development platform that will finish the parts of the .NET unification begun in .NET 5.
Due as a production release in November, .NET 6 is set to deliver improvements for cloud, desktop, and mobile apps. The initial preview, which became available February 17, can be downloaded from dot.net.microsoft.com. Multiple previews are planned between now and the production release, which will be supported for three years.
Microsoft .NET 6 will integrate capabilities for Android, iOS, and MacOS that currently reside in the Xamarin open source mobile .NET platform. Microsoft also is extending the Blazor client web app development tool, so developers can build a hybrid client app that combines web and native UIs for desktop and mobile usage. Blazor WebAssembly was the first unified platform deliverable in .NET 5.
With .NET 5, published in November 2020, Microsoft marked the beginning of unification, emphasising migration of .NET Framework code and apps to .NET 5, and laying the groundwork for Xamarin developers to use the unified .NET platform when version 6.0 arrived.
The .NET unification creates one .NET from the separate .NET Core, .NET Framework, and Xamarin/Mono technologies. Parts of .NET Framework already had moved to .NET Core; .NET 5 began the journey of combining .NET Core and Mono/Xamarin on a base class library and toolchain.
Preview 1 of .NET 6 introduces Android and iOS as the first two platforms supported in Multi-Platform App UI (MAUI), which is a modern UI toolkit that builds upon Xamarin. Future previews will add MacOS and Windows desktop support. Blazor, which is built on top of MAUI, relies on the UI stack for a native application container and native application container controls.
Also in the works in and around .NET 6 are plans to enable fast builds and faster operations for code changes as a standard feature of .NET, Microsoft is defining a new hot code reload model for all app types. Anchoring the effort is a new project called fast inner loop, for fast, iterative development. Part of the project entails enabling code edits to be applied to a live process without restarting, thus skipping a build.
For ARM64 hardware, .NET 6 will focus on functional enablement. On Windows, Preview 1 will support Windows Forms and Windows Presentation Framework. On the Mac, Preview 1 will add support for Apple Silicon (Arm64) chips.
Multiple efforts are also afoot to improve containers in .NET 6, including improving scaling, reducing container size, and increasing startup and throughput performance. Meanwhile, the .NET thread pool has been reimplemented as a managed implementation and is now the default thread pool in .NET 6.
Delving deeper, Microsoft aims to improve start-up and runtime throughput in .NET 6 using runtime execution information. This will be done via Profile Guided Optimisation (PGO), the beginnings of which are in Preview 1. With .NET 6, single file apps have been enabled for Windows and MacOS. They had been limited to Linux in .NET 5.