As announced earlier, Microsoft released .NET 5
on Nov. 10 during .NET Conf 2020. It’s a major release with many new features and improvements to .NET Core 3. Keeping cross platform support and open source development as key base, going forward it kind of merges off .NET Framework
and .NET Core
.
Plan
Microsoft started it’s journey of cross platform and open source in 2015. .NET 5
is a major milestone of this transition as .NET Framework 4.8 was the last major version of .NET Framework
. Microsoft published a blog to explain how .NET 5
relates to .NET Framework
.
.NET 5.0
is the main implementation of .NET going forward and.NET Framework 4.x
is still supported.
.NET 5
has been called as .NET Core vNext
for quite some time now. It has following key principles:
– Produce a single
.NET runtime and framework
that can be used everywhere and that has uniform runtime behaviors and developer experiences.– Expand the capabilities of .NET by taking the best of
.NET Core
,.NET Framework
,Xamarin
andMono
.– Build that product out of a single code-base that developers (Microsoft and the community) can work on and expand together and that improves all scenarios.
Microsoft
Highlights
There are many improvements in .NET 5
like:
- Performance across many components
- Performance in .NET Libraries
- Language
C# 9
&F# 5
- Application deployment options
- Platform scope (includes
Windows Arm64
&WebAssembly
)
Details about these enhancements are here.
dot.net and Bing.com are already running on
.NET 5
for months now
References
- What’s new in .NET 5, the next major release of
.NET Core
following 3.1 - Download .NET 5.0 installers and binaries, for Windows, macOS, and Linux, for x86, x64, Arm32, Arm64
- Container images, all .NET Docker images
- .NET 5.0 Examples to learn more about new C# 9 and libraries features
- Linux packages with Install instructions
- Release notes, .NET 5.0.0 – November 10, 2020
- .NET 5 known issues that can be encountered during usage
- GitHub issue tracker to report any issues found with
.NET 5
IDE
You need Visual Studio 16.8 or later to use .NET 5.0
on Windows and the latest version of Visual Studio for Mac on macOS. Latest C# extension for Visual Studio Code already supports .NET 5.0
and C# 9
.
Impacts
There are few breaking changes with upgrade to .NET 5
:
- while migrating from version 3.1 of
.NET Core
,ASP.NET Core
, orEF Core
to version 5.0 of.NET
,ASP.NET Core
, orEF Core
are captured here. - in
Roslyn
inC# 9.0
introduced with.NET 5
are captured here. - for migration from
.NET Framework
to.NET Core
are captured here. - obsolete features in
.NET 5
are captured here.
Deprecated
.NET 5 does not have few of the known technologies:
- ASP.NET WebForms – Microsoft’s recommendation is to move to Blazor
- Windows Communication Foundation (WCF) – Microsoft’s recommendation is to use gRPC
- Windows Workflow Foundation (WWF) – recommendation is to look at CoreWF, a form of WF runtime
Advantages
.NET 5 helps if you have cross-platform needs or targeting microservices or want to use Docker containers. Based on how it is setup underlying, it helps in designing high-performance and scalable systems.
.NET 5 supports side-by-side installation of different versions of the .NET 5 runtime on the same machine. This allows multiple services or applications on the same server running on their own version of .NET 5 variant.
A detailed analysis and shareout can be read here.
Wrap Up
.NET 5
is a major step of the .NET journey planned ahead. Next would be .NET 6
next year (late in 2021), which will also be a long term (multi year) supported (LTS) version.
Microsoft is working towards a defined vision – same .NET API and languages working across operating system, application types and architectures.
With active support to previous .NET versions, we have time to assess, plan and adapt the new path.
Keep exploring!