-
Notifications
You must be signed in to change notification settings - Fork 294
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
Drop support for .NET Standard #2340
Comments
I agree, it would be nice to do this. I'm also trying to think about if/what we might impact if we do this. If anyone has comments for or against, please add them here. |
This combined with potentially splitting out the Azure dependency could be fantastic for the next major release. |
@NotTsunami make sure to add a thumbs up to each of the related issues. Why is this important? |
Gave a hearty thumbs up. I don't view it as important or required, but the biggest thing is for maintenance going forward. Fewer dependencies and code paths to worry about is great for both upstream and downstream projects. I'm not as familiar with the audience of this package outside of EF Core, so I'm not sure how this will affect those. In theory, they would be able to stick with 5.x and hopefully be fine. The only use-case I can think of for .NET Standard still is Unity. I doubt many Unity users are using this package directly and not a web service/API, but Unity defaults to .NET Standard 2.1, last I recall. |
@David-Engel @JRahnama I have a PR ready, but I assume the CI pipeline must be updated first (to skip .NET Standard) Is that anything I can assist with? |
@ErikEJ, I would suggest pushing the PR. This will enable us to review it first and adjust the pipelines accordingly. Of course, we may expect it to fail initially. |
Where is it documented that .NET Standard 2.0 is EOL? This is an important target for folks who are migrating from .NET Framework to .NET Core. We often tell them to get their projects on .NET Standard 2.0 (2.1 is a worthless target in this scenario) and then they can be ready to move on. Multitargeting is a possibility, but has proven to be a more difficult one in practice for many customers with large code bases. Please see: |
https://devblogs.microsoft.com/dotnet/the-future-of-net-standard/ .NET Standard isn't EOL. It's just not needed for SqlClient anymore. Your links actually describe exactly why we can drop .NET Standard. SqlClient already multitargets to support everything we need. Currently we target .NET Framework, .NET 6, and .NET Standard.
We already have a .NET Framework target for .NET Framework support. No need for .NET Standard for that.
Xamarin and .NET Core 3.x are essentially EOL'd by .NET 5+. Mono is not getting future investments (it's in the same position as .NET Framework). Eliminating the .NET Standard target from SqlClient eliminates a lot of complexity and maintenance costs. The .NET Standard API wasn't sufficient for all SqlClient needs, so we were never going to be able to eliminate either of the other two targets. With .NET 5 unifying things, it just doesn't make sense to keep our .NET Standard target around. |
@ErikEJ I created the same issue at runtime. |
I have a team that made a library with common code and some of them are to manipulate database operations, and this package is .net standard. It's not a problem for us to change it to .net 7, or even 8, but I wanted to ask if you know of any potential performance issue this could cause. |
This one also rubs me a bit the wrong way. Even a Microsoft .NET PM suggests to keep using netstandard:
From @terrajobst:
|
And here's the .NET Standard Targeting Recommendations document:
|
@MichelZ Do you truly have to multi-target? I know you get a warning in Visual Studio, but when deploying, you have to target .NET or .NET Framework anyway, so you will ultimately get the correct MDS DLL. I was wondering if we simply generate a ref DLL for .NET Standard, if that would be sufficient to avoid the warning in VS. One of the difficulties of maintaining a .NET Standard implementation was actually testing it. Because we multi-target to make sure we can provide the best/widest implementation on both .NET and .NET Framework and we test those on the appropriate targets. It was hacky to swap in the .NET Standard DLL to one or both of those targets instead. |
If I'm building a library that wants to use SqlClient that is .NET Standard 2.0 today (and is used by both .NET Framework and .NET Core projects) then yes, I'd have to multi-target if SqlClient drops .NET Standard 2.0. |
Wonder if any platforms will suffer from this?
The text was updated successfully, but these errors were encountered: