LiteDB icon indicating copy to clipboard operation
LiteDB copied to clipboard

Update target frameworks.

Open Joy-less opened this issue 1 year ago • 0 comments

This pull request replaces support for .NET 4.5 and .NET Standard 1.3 with support for .NET Standard 2.0, .NET Standard 2.1, .NET 8.0 and .NET 9.0.

The justification is that .NET 4.5 and .NET Standard 1.3 are very old. .NET 4.5 has been end-of-life for 8 years (since 2016/01/12), and the only frameworks supported by .NET Standard 1.3 that aren't supported by .NET Standard 2.0 have also been dead for a long time.

They are so old in fact that System.Buffers (a dependency of LiteDB) has released an update not supported by .NET Standard 1.3.

While .NET Standard 2.1 only supports .NET, .NET Standard 2.0 supports all supported versions of .NET Framework, so there should be almost no one left out.

With the removal of .NET 4.5 and .NET Standard 1.3, I've been able to remove several instances of conditional compilation. In the future, LiteDB will have a larger range of APIs to work with.

Additionally, supporting .NET 8.0 and .NET 9.0 should give performance boosts when using those versions.

This pull request has created a number of warnings in LiteDB due to various APIs becoming obsolete. I think the team should look at each case individually and look to replace the APIs with newer alternatives.

Joy-less avatar Nov 17 '24 15:11 Joy-less