Unifying .NET 5 Arrives in Preview 1
Microsoft released .NET 5 Preview 1, the first iteration of what will become one framework to handle all .NET development projects.
The company is jumping from .NET Core 3.1 directly to .NET 5 to signify the clean break from the past -- including the traditional Windows-only .NET Framework -- and focus on unifying everything under one cross-platform, open-source, "game-changing" platform based on one single Base Class Library (BCL). "Having a version 5 that is higher than both .NET Core and .NET Framework also makes it clear that .NET 5 is the future of .NET, which is a single unified platform for building any type of application," Microsoft exec Scott Hunter said in a March 16 post.
As the first part of this unification scheme, Microsoft's Xamarin mobile development platform will switch from using the Mono BCL to join other components leveraging the .NET Core BCL. With that move, Xamarin mobile development will be folded into .NET 5. That means that for the first time, one BCL-based framework will handle all app models:
- ASP.NET Core
- Entity Framework Core
The first preview consists of the NET 5.0 Preview 1 SDK and .NET 5.0 Preview 1 Runtime. A separate announcement explains that the ASP.NET Core component -- used for web development, including Blazor projects -- received bug fixes but no new features in .NET 5 Preview 1.
"Preview 1 includes support for Windows ARM64 for the first time," Hunter said. "Today's release includes the .NET Core runtime. We expect Preview 2 to include the SDK (ASP.NET Core but not WPF or Windows Forms). A later preview will include WPF and Windows Forms. Support for Windows ARM64 will also be back-ported to .NET Core 3.1. We will share more information on that with the Preview 2 post."
The company did share work done for Preview 1 to improve many areas of the framework, including:
- Regular expression performance improvements
- Code quality improvements in RyuJIT
- Assembly load diagnostics added to event pipe
- Event pipe profiler APIs
- GitHub repo consolidation
Microsoft also provided more information about ongoing development of .NET 5, listing its future high-level goals as:
Unified .NET SDK experience:
- Single BCL across all .NET 5 applications. Today Xamarin applications use the Mono BCL but will move to use the.NET Core BCL, improving compatibility across our application models.
- Mobile development (Xamarin) is integrated into .NET 5. This means the .NET SDK will support mobile. For example, you can use "dotnet new XamarinForms" to create a mobile application.
- Native Applications supporting multiple platforms: Single Device project that supports an application that can work across multiple devices for example Window Desktop, Microsoft Duo (Android), and iOS using the native controls supported on those platforms.
- Web Applications supporting multiple platforms: Single Blazor project that supports an application that can work in browsers, on mobile devices and as a native desktop application (Windows 10x for example)
- Cloud Native Applications: High performance, single file (.exe) < 50MB microservices and support for building multiple project (API, web front ends, containers) both locally and in the cloud.
- Continuous Improvements, such as: faster algorithms in the BCL, better support for containers in the runtime, support for HTTP3.
Hunter advised developers that the best way to prepare for .NET 5 would be to move all of their .NET Core applications to 3.1, noting that coders building traditional .NET Framework applications can continue to target that legacy platform that will be maintained but not improved with new features. Thus, developers creating new applications should consider targeting .NET Core 3.1.
.NET 5 is scheduled for general availability in November.
David Ramel is an editor and writer for Converge360.