Skip to content
This repository has been archived by the owner on Sep 13, 2022. It is now read-only.

.NET Standard 2.0 vs. .NET Framework 4.6.1 #64

Closed
ygoe opened this issue Oct 14, 2016 · 7 comments
Closed

.NET Standard 2.0 vs. .NET Framework 4.6.1 #64

ygoe opened this issue Oct 14, 2016 · 7 comments

Comments

@ygoe
Copy link

ygoe commented Oct 14, 2016

I've read the updated details about not introducing breaking changes to .NET Standard 2.0 which I generally like, even though I don't know what APIs would be affected.

But if this can now work without these weird changes, why was it a problem in the first place? What will happen when a .NET Standard 2.0-targeted program runs on .NET Framework 4.6.1 which doesn't have all the capabilities? Will it crash? Will it find and download missing DLLs at runtime? Please explain.

Also, why is updating .NET Framework such a big issue? There's already .NET Framework 4.6.2 on all supported platforms (even included in probably the majority of Windows 10 systems, thanks to forced updates), and updating it isn't a big thing, is it?

@terrajobst
Copy link
Member

terrajobst commented Oct 14, 2016

This section should answer the first part of your question:

https://github.com/dotnet/standard/blob/release/2.0.0/docs/netstandard-20/README.md#net-framework-461-supporting-net-standard-20

Also, why is updating .NET Framework such a big issue?

.NET Framework is a machine wide installation. When you don't own the machine, you cannot necessarily and install a new version of the .NET Framework. Consider IT departments in larger companies, or hosted scenarios (e.g. Azure).

@mellinoe
Copy link

What will happen when a .NET Standard 2.0-targeted program runs on .NET Framework 4.6.1 which doesn't have all the capabilities? Will it crash?

Yes, the program will throw a MissingMemberException, if you call one of the ~40 members that aren't available there. If that's unhandled, the program will crash.

@Petermarcu
Copy link
Member

Note that we don't expect those members to be heavily used or impactful compared to the thousands that are there. We're looking to find a good solution to ensure people don't hit those problems.

@ygoe
Copy link
Author

ygoe commented Oct 15, 2016

Ah, so it's basically ".NET Framework 4.6.1 supports .NET Standard 2.0 but (intentionally/knowingly) violates this promise in these few members", could I say that? Not that I had any problem with that, I just like to know.

@Petermarcu
Copy link
Member

Yes, that's right. Wish we had a time machine but you could say that 4.6.1 has an extremely small setown of known issues.

@gulbanana
Copy link

@ygoe it's common for many enterprises to update .net very slowly, sometimes due to incompatibilities with other software (example: if you have Exchange installed, you cannot install .NET 4.6.2). until very recently even 4.6 did not have a lot of traction across some industries.

having net461 support netstandard2.0 therefore gets netstandard2.0 to wide availability years earlier. i think it would be worth the back-compat break that was originally proposed too, but either way it's still a good move.

@Mizux
Copy link

Mizux commented Aug 17, 2018

@terrajobst For the record the correct link is https://github.com/dotnet/standard/blob/release/2.0.0/docs/netstandard-20/README.md#net-framework-461-supporting-net-standard-20
i.e. on master branch the page has been wipe out -> 404 page not found

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants