-
Notifications
You must be signed in to change notification settings - Fork 471
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support .NET Standard 2.0 directly #407
Comments
Speaking for DynamicProxy...
I'm undecided, but I'd perhaps vote for "let's wait a little longer and see how Microsoft's plans for Reflection.Emit develop". |
Speaking for Moq 4, also undecided at this point (see devlooped/moq#630). We'll probably follow DynamicProxy's lead. |
That is exactly my position after #374. I wanted to see how the reflection emit functionality is exposed in .NET Standard before making a decision, that corefx thread seems to have gone quiet for now.
The funny part is that at the time of that tweet the official documentation actually said to do the opposite, I haven't checked if it has been updated since though. |
.NET Standard 2.1 has been announced today. Here's the relevant quote regarding Reflection Emit:
Regarding the platforms that support .NET Standard 2.1:
|
P.S. (but off-topic here), according to the .NET Standard 2.1 vs 2.0 API diff, there still won't be a |
@stakx I saw that blog post this morning too, great news we can look at moving forward on this and maybe get .NET Standard 2.1 added to Windsor too to reduce the dependences. I think |
To keep everyone informed, we are obviously waiting for .NET Standard 2.1 to be released, not sure when that will be. |
Some news & thoughts regarding .NET Standard 2.x support. netstandard2.1:
netstandard2.0:
My personal suggestion (DISCLAIMER: I'm not a multi-targeting guru):
|
I think you'd have to. netstandard2.1 will only be supported on .NET Core 3.0, so unless you want to drop all older platforms, you'd have to keep netstandard2.0.
Agreed, waiting for the stable package is better. |
Thanks for the detailed research. I too have been watching the announcements waiting for something that looks like what we need to be released out of preview. I also agree we need a stable package, not much point trying to use a preview here for a library. With .NET Core 1.0 and 1.1 will reach End of Life on June 27, 2019 the stable release will probably coincide with us dropping .NET Standard 1.x support. Is that what you guys are thinking? |
Yes. I would even feel comfortable dropping our .NET Standard 1.x targets before the official .NET Core 1.x end of life, if we happened to release earlier than June 27th. The sooner we're rid of it, the better, IMHO. (My main motivation for moving forward here is that the large dependency graphs caused by |
Yep, exactly what I meant my words to say if they didn't. |
We currently support:
With .NET Standard 2.1 supporting System.Reflection.Emit I think we should add a .NET Standard 2.1 target when .NET Core 3.0 ships. The API surface in .NET Standard 2.1 is not the full API supported by .NET Framework. We should consider our position for .NET Core 2.x support since .NET Core 1.x is now end of life. Do we just leave things and keep using .NET Standard 1.3/1.5 for now until .NET Core 2.x is end of life? With .NET Framework never supporting .NET Standard 2.1, I think we should continue to target .NET Framework 4.5 directly, at least dropping .NET Framework 3.5 (that runtime is so old and I doubt our AppVeyor build is actually testing that CLR version anymore). |
Any updates on this Issue? Direct support of .NET Standard 2.0 and/or 2.1 would be quite handy. |
I think we should go with the following targets:
And |
It's true, but .NET Core 2.1 is still going to be supported for some time (August 2021). |
@thomaslevesque - I understand that... your argument is the realistic one, while I'm pushing for a more idealistic goal. Realistically, while we all rely on System.Reflection.Emit, noone really cares that Another option might be to add an explicit P.S.: To make my position on this clear: I'm OK with |
@stakx I'm starting to agree that likely no one really cares that .NET Standard 2.0 doesn't really support reflection emit, and we should just drop .NET Standard 1.x support and add .NET Standard 2.0 to get rid of all the cruft of every BCL package being listed. At the same time add .NET Standard 2.1 because that is the target we want people to use, as we'll drop .NET Standard 2.0 in a couple of years. We should still keep explicit .NET 4.5 for now because there are some features we've got in .NET 4.5 target that are conditionally compiled in, and this is the only platform we can perform IL verification (until we investigate the ILVerify tool). What I think we should do:
Thoughts? |
Sounds great to me! |
I think we can close this issue, now that #485 has been merged. 🎆 |
In the twitter guys from MS ask projects to target to netstandard 2.0 directly, so people with new runtime don't need to install set of packages previously installed.
https://twitter.com/davidfowl/status/1025434242832945154
If people target older version of .NET Runtime - they are still fine as we are not removing the old targets.
CC @stakx @blairconrad You might want to do the same with your mocking libraries 😉
The text was updated successfully, but these errors were encountered: