The long-term-support (LTS) version 3.1 of Microsoft .NET Core Framework is slated to go out of support on December 13th, 2022. Microsoft recommends upgrading .NET Core 3.1 applications to .NET 6.0 to stay supported for the future, while the developers have mixed feelings about the .NET support policy.
Microsoft .NET Core Framework version 3.1, released in 2019, is approaching the end of its support date. According to Dominique Whittaker, senior program manager at Microsoft, customers using the 3.1 version should move to .NET 6 or 7 to still receive official support and security patches.
Whittaker explains that the .NET Core 3.1 applications will still run after the end of support date, but that customers can be exposed to potential security flaws that will be patched only for supported versions.
Version 3.1 is what Microsoft calls a long-term-support (LTS) release, having a support lifecycle of three years since the release date. Non-LTS (or "current") releases, such as .NET 7.0, have a shorter support lifecycle of 18 months, as Microsoft will support them for six months after the release of the next LTS version. Microsoft schedules .NET versions to launch one major version of .NET a year, alternating between LTS and current versions.
The latest LTS version of .NET is 6.0, which Microsoft plans to support until November 12, 2024. Microsoft expects to release .NET 7.0, a non-LTS version, in November 2022, meaning that the current .NET Core 3.1 customers can choose between upgrading to .NET 6 or 7 before the end of the .NET Core 3.1 support date.
Upgrading to .NET 6.0 involves a change of one line in the project file to change the target framework version. However, there might be runtime or source-code incompatibilities between .NET Core 3.1 and .NET 6.0.
Microsoft recommends that developers check the official compatibility guide for any issues when upgrading their applications and provides an open-source upgrade tool called upgrade-assistant. The tool analyzes the application code, updates the project files, checks for breaking changes, and does some automatic code fixes - but developers will still have to do some manual fixes.
The developer community's reactions on social networks were mixed. Some developers argue that a three-year support cycle is too short for corporate projects, while others recognize that the growing complexity of code dependencies makes frequent version upgrades a necessity and a new way of work. Rockford Lhotka, the creator of the widely used CSLA.NET application framework, explains that most of the pain in .NET code upgrades comes from moving the old .NET Framework into the modern .NET framework, while upgrades between .NET Core versions are substantially less work-intensive.
Microsoft regularly publishes summarised telemetry information derived from the usage of .NET SDK. According to the data for June 2022, the most used version of .NET Framework for applications is precisely the .NET Core 3.1, accounting for 31% of the telemetry data.