UPDATE 16 September 2019 – I’ve updated this and now maintain it with the C# Guild in the UKHO GitHub https://github.com/UKHO/csharp-guild/blob/master/dotnetverstions.md **
I’ve had a few queries about decisions on .NET Core versions. Here’s some key points to help you make an informed decision. Remember, no support means no security updates! Microsoft’s ‘Modern Lifecycle Policy’ is going to keep us on our toes and require a little more forward planning than Framework did, I think.
Please do comment if I make any factual errors – easy to do so during this transition in policies.
The Long-Term Support Path
.NET Core 2.1 is the stable Long-Term Support (LTS) release, supported to around August 2021. It is recommended for all new projects, particularly applications that won’t be updated often. .NET 3.1 will be the next LTS release, dropping around November 2019, with 2.1 support cover until August 2021 to upgrade.
Note that ASP .NET Core 3.x is not going to run on Framework, so definitely do not upgrade anything to 2.2 that you wish to continue running on Framework.
There might be implications for Core applications currently running on Framework when 2.1 goes out of support. Not sure yet – there is extended support for running ASP.NET Core 2.1 on Framework that would see ASP.NET Core 2.1 related packages being supported indefinitely. We’ll have to wait and see; the intention is still for everyone to full migrate.
The ‘Current’ Path
.NET Core 2.2 is a ‘Current’ release, expected to end support in December 2019. Only use this if you really need the latest features on the ‘current train’ and can resource the manual update cadence that follows. Based on known dates from MS, to remain in support, 2.2 applications would need to be upgraded to 3.0 by around December 2019, 3 months after release; and again, around February 2020 up to 3.1.
Versions you should not be using
.NET Core 1.0 and 1.1 will end support 27 June 2019 so needs upgrading to either 2.1 or 2.2 asap.
.NET Core 2.0 ended support 1 October 2018 and should now be on either 2.1 or 2.2.