.NET Core gives two support options: Long Term Support (LTS) and Current. .NET Core adapted behaviors similar with other open source frameworks and platforms. What does this mean, what should you do on selecting the best .NET Core version for you?
Support Length with other frameworks and platforms
NPM has a LTS and Current version as well. Version 8.11.3 is LTS, while 10.5.0 offers new features but is only on the Current track. With NPM, every LTS version is maintained for 18 months, and from there on it’s in maintenance mode for additional 12 months. As soon as a NPM version enters LTS, no new features are added, only bug fixes and security updates. The current versions have a shorter life-span, and get new features faster.
Using Ubuntu, standard releases are supported for 9 months, LTS versions supported for five years.
With Jenkins, every 12 weeks a release is selected that moves into LTS.
The Joomla! CMS defines a stable release with major versions and a 2 years, 3 months support length.
With the browser Mozilla Firefox, the LTS release is known as Extended Support Release with support lengths of 1 year.
LTS and Current with .NET Core
With .NET Core, the LTS version means long time support. What’s long time? Depending on when the next versions are available, this can result in a different end of support time.
LTS is supported for one of these two options – whatever is shorter:
- 3 years after its release or
- 12 months after the next LTS version
Current is supported for one of these three options – whatever is shorter:
* 12 months after the next LTS version or
* 3 months after the next Current version
.NET Core Versions Supported
With .NET Core, we now have 1.0, 1.1, 2.0, and 2.1 releases. Versions 1.0 and 1.1 are LTS versions, and 2.0 is a Current version. Current versions can change to LTS – which happened with 1.1. and 2.1. Starting with .NET Core 2.1.3, .NET Core 2.1 switched to LTS.
In the following table you can see the release dates of the .NET Core versions, and their planned date for end of support:
|Version||Release Date||Support level||End of support|
|2.1||May 30, 2018||LTS||At least until May 30, 2021|
|2.0||Aug 14, 2017||Current||Oct 1, 2018|
|1.1||Nov 16, 2016||LTS*||Jun 27, 2019 or 12 months after next LTS|
|1.0||Jun 27, 2016||LTS||Jun 27, 2019 or 12 months after next LTS|
.NET Core 1.0 started as a LTS version with a 3-year support which will end June 27, 2016. However, if the next LTS version is available earlier, the support ends 1 year after the next LTS. .NET Core 2.1 is an LTS version since the release of .NET Core 2.1.3. Because the LTS version after .NET Core 1.1 was not released before June 27, 2018, LTS support for .NET Core 1.0 and 1.1 ends at June 27, 2019.
.NET Core 1.1 was at Current support previously. To better support users with the last 1.x release, .NET Core changed to an LTS version with the same support length as .NET Core 1.0. This is the reason why .NET Core 1.1 doesn’t have later support end dates than .NET Core 1.0. With the normal LTS rule, support would be until Nov 16, 2016. Just because its current status was changed to the same LTS times as .NET Core 1.0, the rules do not apply completely.
.NET Core 2.0 has many new APIs, that’s why it was decided to be at the Current support level. Support ends 3 months after the next Current version. At the time of this writing, the next Current version is .NET Core 2.1 – that’s why support for .NET Core 2.0 support end was first announced a few days later for Sep 1, 2018. However, because of an issue with .NET Core 2.1, BadImageFormatException the support for .NET Core 2.0 was extended until October 1, 2018.
.NET Core 2.1 currently lists as a Current release, but with a time frame at least until May 30, 2021 – 3 years. This Current release is expected to switch to LTS before 2018 CYQ3 as mentioned in Microsoft Support for .NET Core. This document lists support for .NET Core 2.1 for at least 3 years. The normal LTS release cycle mentions 3 years – unless the next LTS release is earlier, then it’s 12 months after the next LTS.
Then suport for .NET Core 2.1 will be extended until May 30, 2021 unless the next LTS version is released earlier, then support of .NET Core 2.1 will end 1 year after the next LTS.
End of support for .NET Core can be a little confusing both with the different end of support lengths depending on the release of the next version, and also because of the changes to LTS afterwards. However, it never happened that end of support was shortened. When changed, support length was always extended. As .NET Core becomes more mature, I also think support times will be extended overall.
What you really need to know is that the Current version gets new features added faster but has a shorter lifetime. The LTS version will be supported longer – wich can be up to 3 years. Here you don’t get new features that often, and your application still gets security and bug fixes staying on the LTS version.
In my book Professional C# 7 and .NET Core 2.0, the .NET Core versions and support level is covered in Chapter 1, .NET Applications and Tools. When .NET Core 2.1 is LTS, all the code samples for the book will be updated to .NET Core 2.1.
More information can be found here:
Enjoy programming and learning,