In recent years, especially with the pandemic, everything has been moving very fast. The release of .NET 5 by Microsoft was only a year and a half ago (specifically on November 10, 2020) and we have to say goodbye to it.
Sadly, Microsoft’s deadline for developers to migrate to .NET 6 is ending and support for .NET 5 ends on May 10, 2022 (yes, dotnet 5 is at the end of its life).
It’s also common to reffer to the “End of Life” with the abbreviation EOL.
On the bright side, the new version of the Framework: .NET 6, will bring LTS (long term support) and according to Microsoft, it will last until the end of 2024.
The same happened with the .NET 3.1 version (wich was officially released on December 3, 2019) , support ended long ago and obviously there will still be projects and applications on Dotnet versions that are at the end of their life and their Long Term Support (LTS) has ended. These applications will continue to work but are exposed to vulnerabilities and zero-day because they will no longer receive updates and security patches officially from Microsoft.
What will happen with .NET 5 projects?
If your are asking why is .NET 5 out of support, one of the reasons why Microsoft is going to stop supporting .NET 5 (and other older versions) is because those versions must be signed with algorithms and currently they are signed with the SHA-1 algorithm. This algorithm has been vulnerable for some time and can affect from document signing, to HTTPS certificates, to backup systems and Version Controls (git).
As a curious fact, although this happened a couple of years ago, Google managed to break this algorithm by managing to have 2 different PDF files with the same Hash.
At first nothing will happen, but you will no longer receive security updates and support from Microsft. It is not the end of .NET 5 because this date simply refers to updates, patches, technical support or security fixes but this could leave many applications exposed to new (and not so new) vulnerabilities.
It is like a lifecycle, when a new version is born, another one must die (or simply be deprecated to put it in a more elegant way).
That is why any developer who has projects in .NET 3.1 or .NET 5, should migrate them to .NET 6 in order to continue receiving all the updates and support from Microsoft.
One of the good news is that Microsoft claims that all types of .NET applications (both .NET and .NET Core) are supported by different versions of operating systems (Windows, Linux, macOS). The advantage of this is that it is possible to automatically patch supported .NET versions using Microsoft Update (.NET Supported OS Policy).
What does .NET 6 bring?
The most expected from Microsoft, which has been trying to achieve this for years, is to make .NET a unified platform. And now according to Microsoft, .NET 6 will bring:
In addition, the console app project template is reduced to just 1 line, which makes it easier to create small programs. In .NET 5 was:
And with the arrival of .NET 6, this is reduced to just 1 line of code:
In addition, the new version 6 of the .NET Framework comes with a new language version: C# 10 (although previews of C# 11 are already being released). This version comes with many new features:
- File-scoped namespace declaration
- Constant interpolated strings
- Extended Property Patterns
Not only that, but it also comes with the new version of its IDE: Visual Studio 2022. This new version of Visual Studio brings great news, now its 64-bit version is available. This means that the main process
devenv.exe no longer has the limitation it had in the 32-bit version (4GB in memory).
Let’s not forget Hot Reload, the feature that allows you to make changes to the debugging project without having to stop and start it again.
How to upgrade to .NET 6?
Microsoft strongly recommends upgrading applications to .NET 6 and for that purpose leaves this article on how to do it: Upgrading to .NET 6.0
After saying goodbye to .NET 5 and enjoying .NET 6, we are still waiting for all the news and updates from Microsoft about .NET 7. Will they surprise us? Who knows. Let’s wait for major releases!