Orleans: Update .NET dependency to 4.6.1

Created on 5 Apr 2017  路  3Comments  路  Source: dotnet/orleans

In the past we were holding off from updating since .NET 4.6 was newish, and also a large customer base deploys to Cloud Services, which didn't have out-of-the-box support for .NET 4.6.2 without the use of a startup task (but now it has it pre-installed).
.NET 4.6.2 brings a few useful features that we can start leveraging:

  • Better compatibility with Orleans vNext, as .NET Core is closer to .NET 4.6.2 (a lot of #ifdef can go away)
  • Support for AsyncLocal<T>
  • Can get rid of hacky workarounds such as ConvertTaskViaTcs (see #875)

And potentially more that I'm not remembering right now.

UPDATE: I suggest we update to 4.6.1 instead, based on the thread here (and downgrade our vNext solution from 4.6.2 to 4.6.1 also, where we are targeting .NET)

help wanted

Most helpful comment

Hi @kogir, thanks for the feedback! I didn't know they updated the .NET Standard compatibility table and crossed out vNext in favor of 4.6.1. I still had the impression that it was going to be replaced with 4.6.2 when I looked at it a few months back. I thought that .NET Standard 2.0 was going to dial compatibility back to 4.6.1, but that 1.5 would still map to 4.6.2.
Since compatibility with .NET Standard 1.5 was the main driver for me to pick 4.6.2 as opposed to any 4.6.X release, I think I'm fine if we just go for v4.6.1. I certainly prefer to be on a version that was not recently released, so that our users are not forced to update, but instead might already be using that .NET version for some time.
Any other input on why we should move to either version?

All 3 comments

We've been successfully running Orleans on .NET 4.6.1 and Cloud Services for a few months now. We chose it over 4.6.2 because in practice it plays nicer with NuGet and .NET Standard. Perhaps more NuGet packages have updated, but some popular ones wouldn't even install on 4.6.2.

Hi @kogir, thanks for the feedback! I didn't know they updated the .NET Standard compatibility table and crossed out vNext in favor of 4.6.1. I still had the impression that it was going to be replaced with 4.6.2 when I looked at it a few months back. I thought that .NET Standard 2.0 was going to dial compatibility back to 4.6.1, but that 1.5 would still map to 4.6.2.
Since compatibility with .NET Standard 1.5 was the main driver for me to pick 4.6.2 as opposed to any 4.6.X release, I think I'm fine if we just go for v4.6.1. I certainly prefer to be on a version that was not recently released, so that our users are not forced to update, but instead might already be using that .NET version for some time.
Any other input on why we should move to either version?

Was this page helpful?
0 / 5 - 0 ratings