Replies: 10 comments 39 replies
-
Compared with MySQL, PgSQL, Oracle and other driven frameworks, it is too radical |
Beta Was this translation helpful? Give feedback.
-
I think there's a misunderstanding here; .NET applications target either .NET Framework or modern .NET (Cone), rather than .NET Standard. Microsoft.Data.SqlClient still targets .NET Framework, so is usable from all .NET Framework applications.
FYI the .NET PostgreSQL driver - Npgsql - has done something much more radical, and entirely dropped support for .NET Framework in the latest version (9.0). In contrast, SqlClient still supports .NET Framework - just not via .NET Standard. |
Beta Was this translation helpful? Give feedback.
-
CentOS7 (GLIBC) is not supported since .NET8, so .NET7 is still used |
Beta Was this translation helpful? Give feedback.
-
Posting here as well: Just hit this as well, considering that .NET 4.6.2 implements netstandard2.0 and how old 4.6.2 is compared, what is making it more difficult to target netstandard2.0 instead of .NET 4.6.2? (I understand that 4.6.2 can have features not being parts of the standard, so that was a genuine question, not a witty remark) .netstanard2.0 (or below) is generally still very usefull when developing frameworks/packages for both platforms. (Sadly not everyone has moved on). Multi target builds are still annoying, especially if it hits on a low trancient dependency, then it has a nasty ripple effect. |
Beta Was this translation helpful? Give feedback.
-
From issue #3139 they have stated the following
So the work around I have for this for now. <ItemGroup Condition=" '$(TargetFramework)' != 'netstandard2.0' AND '$(TargetFramework)' != 'netstandard2.1'">
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.0.1" />
<PackageReference Include="Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider" Version="6.0.0" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' OR '$(TargetFramework)' == 'netstandard2.1'">
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.2.2" />
<PackageReference Include="Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider" Version="5.1.0" />
</ItemGroup> Hopefully this will help others targeting .Net Standard. |
Beta Was this translation helpful? Give feedback.
-
This deprecation + drop of .NET Standard support was a nasty combo to wake up to.
|
Beta Was this translation helpful? Give feedback.
-
Here's the original issue and discussion started a year ago: #2340 Subsequent PR is here: #2386 Both of those include good discussion of the pros/cons of dropping .NET Standard as a target. The community has had a year to collaborate and voice concerns related to this change. Ultimately, we decided that multi-targeting .NET Framework 4.6.2 and .NET 8.0 provide the best balance between breadth of support and access to modern APIs and features. We realize that changes like this will always have casualties, and we don't make these decisions on a whim. The .NET ecosystem continues to evolve, and we must set ourselves up move forward with it. If you still need target support for .NET Standard, it will remain in the MDS 5.1 and 5.2 releases, which are currently receiving security fixes, critical bug fixes, and backports of select functionality. The support lifecycle is maintained here: https://learn.microsoft.com/en-us/sql/connect/ado-net/sqlclient-driver-support-lifecycle |
Beta Was this translation helpful? Give feedback.
-
I'm trying to understand the level of frustration here. Maybe I'm missing something. .NET Standard was created to bridge all the various .NET implementations (Framework, Core, Mono, Xamarin, etc.). But the majority of those implementations have been rendered obsolete starting with .NET 5 in 2020. Now that those implementations have largely dropped out of support, There's just .NET and .NET Framework. So, for modern applications and libraries supporting runtimes that are not EOL, there are only two targets an application might run on. It stands to reason that libraries would support and test those targets moving forward, too. Now, when you create a .NET Standard library that depends on MDS 6.0.0, yes, you get a build warning:
And we all hate warnings. But what's the end result? Ignore the warning for a moment. Create an application that depends on your .NET Standard library. What does that application target? If the developer cares at all about security, it's targeting a runtime that's not EOL - .NET 8, 9, or .NET Framework. Build it. No warning. It works. I see two simple solutions to the warning in the .NET Standard library:
What am I missing? |
Beta Was this translation helpful? Give feedback.
-
Is there any way to get this Issue 2340 updated? The very first line in it is factually incorrect and causing problems. ".NET Standard is EOL" So now when clients are getting the error building any .Net Standard libs they are getting the warning about SqlClient. They research and upon finding this are to put it very politely concerned that they need to convert all libs, etc. due to this statement. |
Beta Was this translation helpful? Give feedback.
-
Because i created a lot off extensions for multiple projects the choice for using .net standard 2.0 was easy. Build once and use it in all projects that do classic .Net or all new ones. In my opinion it should still support .Net Standard regardless of EOL comming or not. Then it could drop support for .Net 4.6.1. But offcourse can create a sdk project that uses multiple targets.. |
Beta Was this translation helpful? Give feedback.
-
I'm puzzled by the decision to drop support for .NET Standard in the 6.0 release. This change leaves anyone with a .NET application using .NET Standard in a bind. They are now forced to choose between the deprecated System.Data.SqlClient 4.9.0 or Microsoft.Data.SqlClient 5.2, which can't be upgraded or patched due to the lack of support for .NET Standard beyond that version. It's hard to believe that, despite .NET Framework and .NET Core being maintained concurrently, the connection between the two is gradually fading away.
Beta Was this translation helpful? Give feedback.
All reactions