Announced in November 2019, .NET 5 was intended to unify the once fragmented .NET ecosystem that only got worse with Windows 8. It would by combining CoreCLR and Mono into a single runtime to be used and have the Windows and Xamarin APIs under one roof. However, COVID interrupted those plans and forced Microsoft to scale back their efforts. As a consequence, they were able to focus on refining server-side, AI and Windows desktop development, by finishing Blazor: WebAssembly, expanding upon ML.NET, and improving upon their existing Windows API ports, respectfully, while laying the foundations for cross-platform mobile and desktop development.
Announced in February of 2021, .NET 6 is the upcoming LTS scheduled to be released in November. It’s intended to continue where 5 left off but with one big change. As Microsoft began working on .NET 5, they were also experimenting with providing true cross-platform GUI development on the side called MAUI, Multi-platform App UI, which makes it possible to build desktop and mobile applications that uses the platform native GUI all while a using single codebase, and they were working on making it possible for Blazor to work as first class desktop application, known as “hybrid desktop,” which was already being experimented upon independently of MAUI, using Electron.NET, but is now based on it. These were never intended to make the 2020 deadline but they were already far enough in their development that Microsoft began previewing their progress during the .NET 5 launch. Now, instead of getting merged Windows desktop and Xamarin mobile development experience, we’re getting something better: MAUI, a unified toolkit.
So despite Microsoft’s initial plans for .NET 5 being derailed and scaled back, it actually turned out better since the new cross-platform desktop development toolkits all line up with .NET 6’s schedule.