2
2
3
3
## Preview Release 7.0.0-preview1.25257.1 - 2025-09-12
4
4
5
+ ## Changes Since [ 6.1.0] ( ../6.1/6.1.0.md )
6
+
5
7
This update brings the following changes since the [ 6.1.0] ( ../6.1/6.1.0.md )
6
8
release:
7
9
@@ -62,6 +64,219 @@ release:
62
64
- Updated ` Azure.Identity ` dependency to v1.14.2.
63
65
([ #3538 ] ( https://github.com/dotnet/SqlClient/pull/3538 ) )
64
66
67
+ ## Changes Since [ 6.0.2] ( ../6.0/6.0.2.md )
68
+
69
+ This update brings the following changes since the [ 6.0.2] ( ../6.0/6.0.2.md )
70
+ release. Changes already noted above are omitted:
71
+
72
+ ### Additions
73
+
74
+ #### Added dedicated SQL Server vector datatype support
75
+
76
+ * What Changed:*
77
+
78
+ - Optimized vector communications between MDS and SQL Server 2025, employing a
79
+ custom binary format over the TDS protocol.
80
+ ([ #3433 ] ( https://github.com/dotnet/SqlClient/pull/3433 ) ,
81
+ [ #3443 ] ( https://github.com/dotnet/SqlClient/pull/3443 ) )
82
+ - Reduced processing load compared to existing JSON-based vector support.
83
+ - Initial support for 32-bit single-precision floating point vectors.
84
+
85
+ * Who Benefits:*
86
+
87
+ - Applications moving large vector data sets will see beneficial improvements
88
+ to processing times and memory requirements.
89
+ - Vector-specific APIs are ready to support future numeric representations with
90
+ a consistent look-and-feel.
91
+
92
+ * Impact:*
93
+
94
+ - Reduced transmission and processing times for vector operations versus JSON
95
+ using SQL Server 2025 preview:
96
+ - Reads: 50x improvement
97
+ - Writes: 3.3x improvement
98
+ - Bulk Copy: 19x improvement
99
+ - (Observed with vector column of max 1998 size, and 10,000 records for each
100
+ operation.)
101
+ - Improved memory footprint due to the elimination of JSON
102
+ serialization/deserialization and string representation bloat.
103
+ - For backwards compatibility with earlier SQL Server Vector implementations,
104
+ applications may continue to use JSON strings to send/receive vector data,
105
+ although they will not see any of the performance improvements noted above.
106
+
107
+ #### Revived .NET Standard 2.0 target support
108
+
109
+ * What Changed:*
110
+
111
+ - Support for targeting .NET Standard 2.0 has returned.
112
+ ([ #3381 ] ( https://github.com/dotnet/SqlClient/pull/3381 ) )
113
+ - Support had previously been removed in the 6.0 release, with the
114
+ [ community voicing concerns] ( https://github.com/dotnet/SqlClient/discussions/3115 ) .
115
+
116
+ * Who Benefits:*
117
+
118
+ - Libraries that depend on MDS may seamlessly target any of the following
119
+ frameworks:
120
+ - .NET Standard 2.0
121
+ - .NET Framework 4.6.2 and above
122
+ - .NET 8.0
123
+ - .NET 9.0
124
+ - Applications should continue to target runtimes.
125
+ - The MDS .NET Standard 2.0 target framework support does not include an
126
+ actual implementation, and cannot be used with a runtime.
127
+ - An application's build/publish process should always pick the appropriate
128
+ MDS .NET/.NET Framework runtime implementation.
129
+ - Custom build/publish actions that incorrectly try to deploy the MDS .NET
130
+ Standard 2.0 reference DLL at runtime are not supported.
131
+
132
+ * Impact:*
133
+
134
+ - Libraries targeting .NET Standard 2.0 will no longer receive warnings like
135
+ this:
136
+ - ` warning NU1701: Package 'Microsoft.Data.SqlClient 6.0.2' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project. `
137
+
138
+ #### Other Additions
139
+
140
+ - Added packet multiplexing support to improve large data read performance.
141
+ ([ #2714 ] ( https://github.com/dotnet/SqlClient/pull/2714 ) ,
142
+ [ #3161 ] ( https://github.com/dotnet/SqlClient/pull/3161 ) ,
143
+ [ #3202 ] ( https://github.com/dotnet/SqlClient/pull/3202 ) )
144
+ - Added support for special casing with Fabric endpoints.
145
+ ([ #3084 ] ( https://github.com/dotnet/SqlClient/pull/3084 ) )
146
+
147
+ ### Fixed
148
+
149
+ - Fixed distributed transactions to be preserved during pooled connection resets.
150
+ ([ #3019 ] ( https://github.com/dotnet/SqlClient/pull/3019 ) )
151
+ - Fixed application crash when the ` Data Source ` parameter begins with a comma.
152
+ ([ #3250 ] ( https://github.com/dotnet/SqlClient/pull/3250 ) )
153
+ - Resolved synonym count discrepancies in debug mode.
154
+ ([ #3098 ] ( https://github.com/dotnet/SqlClient/pull/3098 ) )
155
+ - Addressed warnings for down-level SSL/TLS versions.
156
+ ([ #3126 ] ( https://github.com/dotnet/SqlClient/pull/3126 ) )
157
+ - Fixed missing < ; NeutralLanguage> ; property.
158
+ ([ #3325 ] ( https://github.com/dotnet/SqlClient/pull/3325 ) )
159
+ - Fixed injection of UTF-8 BOM during bulk copy.
160
+ ([ #3399 ] ( https://github.com/dotnet/SqlClient/pull/3399 ) )
161
+ - Fixed ` SqlCachedBuffer ` async read edge case.
162
+ ([ #3329 ] ( https://github.com/dotnet/SqlClient/pull/3329 ) )
163
+ - Fixed ` SqlSequentialTextReader ` edge case with single-byte reads.
164
+ ([ #3383 ] ( https://github.com/dotnet/SqlClient/pull/3383 ) )
165
+ - Fixed an incorrect error message when parsing connection string ` PoolBlockingPeriod ` .
166
+ ([ #3411 ] ( https://github.com/dotnet/SqlClient/pull/3411 ) )
167
+ - Added missing ` ToString() ` override to ` SqlJson ` .
168
+ ([ #3427 ] ( https://github.com/dotnet/SqlClient/pull/3427 ) )
169
+ - Fixed missing socket error codes on non-Windows platforms.
170
+ ([ #3475 ] ( https://github.com/dotnet/SqlClient/pull/3475 ) )
171
+ - Fixed primary/secondary server SPN handling during SSPI negotiation.
172
+ ([ #3478 ] ( https://github.com/dotnet/SqlClient/pull/3478 ) )
173
+ - Fixed AzureKeyVaultProvider package key caching to serialize Azure key fetch
174
+ operations.
175
+ ([ #3477 ] ( https://github.com/dotnet/SqlClient/pull/3477 ) )
176
+ - Fixed a rare error related to multi-packet async text reads.
177
+ ([ #3474 ] ( https://github.com/dotnet/SqlClient/pull/3474 ) )
178
+ - Fixed some spelling errors in the API docs.
179
+ ([ #3500 ] ( https://github.com/dotnet/SqlClient/pull/3500 ) )
180
+ - Fixed a rare multi-packet string corruption bug.
181
+ ([ #3513 ] ( https://github.com/dotnet/SqlClient/pull/3513 ) )
182
+
183
+ ### Changed
184
+
185
+ #### SqlDecimal type workarounds conversions
186
+
187
+ * What Changed:*
188
+
189
+ - Changed how SqlDecimal type workarounds perform conversions to meet
190
+ compliance policies.
191
+ ([ #3467 ] ( https://github.com/dotnet/SqlClient/pull/3467 ) )
192
+
193
+ * Who Benefits:*
194
+
195
+ - Microsoft products must not use undocumented APIs on other Microsoft products.
196
+ This change removes calls to undocumented APIs and replaces them with
197
+ compliant API use.
198
+
199
+ * Impact:*
200
+
201
+ - These changes impose an observed 5% decrease in performance on .NET Framework.
202
+
203
+ #### SqlVector API improvements (since [ 6.1.0-preview2] ( 6.1.0-preview2.md ) )
204
+
205
+ * What Changed:*
206
+
207
+ - Several changes were made to the SqlVector API published in the
208
+ [ 6.1.0-preview2] ( 6.1.0-preview2.md ) release
209
+ ([ #3472 ] ( https://github.com/dotnet/SqlClient/pull/3472 ) ):
210
+ - The SqlVector class was changed to a readonly struct.
211
+ - The null value constructor was changed to a static ` CreateNull() ` method.
212
+ - The ` Size ` property was removed.
213
+
214
+ * Who Benefits:*
215
+
216
+ - SqlVector instances gain the efficiencies of struct handling.
217
+
218
+ * Impact:*
219
+
220
+ - Early-adopter applications may require updates if they rely on the old APIs
221
+ and any class-specific behaviour.
222
+
223
+ #### Other Changes
224
+
225
+ - Reduced allocations when opening a connection.
226
+ ([ #3364 ] ( https://github.com/dotnet/SqlClient/pull/3364 ) )
227
+ - Various performance improvements related to TDS parsing.
228
+ ([ #3337 ] ( https://github.com/dotnet/SqlClient/pull/3337 ) ,
229
+ [ #3377 ] ( https://github.com/dotnet/SqlClient/pull/3377 ) ,
230
+ [ #3422 ] ( https://github.com/dotnet/SqlClient/pull/3422 ) )
231
+ - Improved native AOT support.
232
+ ([ #3364 ] ( https://github.com/dotnet/SqlClient/pull/3364 ) ,
233
+ [ #3369 ] ( https://github.com/dotnet/SqlClient/pull/3369 ) ,
234
+ [ #3401 ] ( https://github.com/dotnet/SqlClient/pull/3401 ) )
235
+ - Progress towards [ SSPI extensibility] ( https://github.com/dotnet/SqlClient/issues/2253 ) .
236
+ ([ #2454 ] ( https://github.com/dotnet/SqlClient/pull/2454 ) )
237
+ - Progress towards [ connection pooling improvements] ( https://github.com/dotnet/SqlClient/issues/3356 ) .
238
+ ([ #3352 ] ( https://github.com/dotnet/SqlClient/pull/3352 ) ,
239
+ [ #3396 ] ( https://github.com/dotnet/SqlClient/pull/3396 ) )
240
+ - Expanded/clarified SqlConnection's
241
+ [ AccessToken] ( https://learn.microsoft.com/en-us/dotnet/api/microsoft.data.sqlclient.sqlconnection.accesstoken ) and
242
+ [ AccessTokenCallback] ( https://learn.microsoft.com/en-us/dotnet/api/microsoft.data.sqlclient.sqlconnection.accesstokencallback )
243
+ documentation.
244
+ ([ #3339 ] ( https://github.com/dotnet/SqlClient/pull/3339 ) )
245
+ - Fixed some poorly formatted tables in the API docs.
246
+ ([ #3391 ] ( https://github.com/dotnet/SqlClient/pull/3391 ) )
247
+ - Optimized binary size for AOT.
248
+ ([ #3091 ] ( https://github.com/dotnet/SqlClient/pull/3091 ) )
249
+ - Refined bulk copy operations to handle unmatched column names more effectively.
250
+ ([ #3205 ] ( https://github.com/dotnet/SqlClient/pull/3205 ) )
251
+ - Enhanced ` SqlBulkCopy ` to explicitly identify mismatched column names.
252
+ ([ #3183 ] ( https://github.com/dotnet/SqlClient/pull/3183 ) )
253
+ - Optimized outgoing SSPI blob handling using ` IBufferWriter<byte> ` .
254
+ ([ #2452 ] ( https://github.com/dotnet/SqlClient/pull/2452 ) )
255
+ - Replaced ` byte[] ` with ` string ` for SNI to improve efficiency.
256
+ ([ #2790 ] ( https://github.com/dotnet/SqlClient/pull/2790 ) )
257
+ - Code cleanup to remove SQL 2000 support.
258
+ ([ #2839 ] ( https://github.com/dotnet/SqlClient/pull/2839 ) ,
259
+ [ #3206 ] ( https://github.com/dotnet/SqlClient/pull/3206 ) ,
260
+ [ #3217 ] ( https://github.com/dotnet/SqlClient/pull/3217 ) )
261
+ - Connection pool design refactor for a modular connection pool design.
262
+ ([ #3199 ] ( https://github.com/dotnet/SqlClient/pull/3199 ) )
263
+ - Added dependency on ` System.Text.Json `
264
+ [ 8.0.5] ( https://www.nuget.org/packages/System.Text.Json/8.0.5 ) (.NET 8.0) and
265
+ [ 9.0.5] ( https://www.nuget.org/packages/System.Text.Json/9.0.5 ) (.NET Standard 2.0, .NET 9.0)
266
+ to avoid transitive vulnerabilities ([ CVE-2024 -43485] ( https://github.com/advisories/GHSA-8g4q-xg66-9fp4 ) ).
267
+ ([ #3403 ] ( https://github.com/dotnet/SqlClient/pull/3403 ) )
268
+ - Updated various dependencies [ #3229 ] ( https://github.com/dotnet/SqlClient/pull/3229 ) , primarily:
269
+ - System.Text.Encodings.Web to v8.0.0
270
+ - System.Text.Json to v8.0.5
271
+ - Azure.Identity to v1.13.2
272
+ - Microsoft.Identity.Model.Json.Web.Tokens to v7.7.1
273
+ - Microsoft.Identity.Model.Protocols.OpenIdConnect to v7.7.1
274
+ - Code merge towards a unified SqlClient project, aligning .NET Framework and .NET Core implementations.
275
+ (Many PRs - see [ 6.1.0-preview1] ( 6.1.0-preview1.md ) and [ 6.1.0-preview2] ( 6.1.0-preview2.md ) for details.)
276
+ - Test improvements include a new unit test project, updates to test
277
+ dependencies, removal of hardcoded credentials, and improved robustness.
278
+ (Many PRs - see [ 6.1.0-preview1] ( 6.1.0-preview1.md ) and [ 6.1.0-preview2] ( 6.1.0-preview2.md ) for details.)
279
+
65
280
## Contributors
66
281
67
282
We thank the following public contributors. Their efforts toward this project
@@ -70,13 +285,26 @@ are very much appreciated.
70
285
- [ edwardneal] ( https://github.com/edwardneal )
71
286
- [ emmanuel-ferdman] ( https://github.com/emmanuel-ferdman )
72
287
- [ ErikEJ] ( https://github.com/ErikEJ )
288
+ - [ MichelZ] ( https://github.com/MichelZ )
73
289
- [ twsouthwick] ( https://github.com/twsouthwick )
74
290
- [ Wraith2] ( https://github.com/Wraith2 )
75
291
76
292
### New Contributors
77
293
78
- - [ frankbuckley] ( https://github.com/frankbuckley ) made their first contribution
79
- in [ #3521 ] ( https://github.com/dotnet/SqlClient/pull/3521 )
294
+ - [ BradBarnich] ( https://github.com/BradBarnich ) made their first contribution in
295
+ [ #3325 ] ( https://github.com/dotnet/SqlClient/pull/3325 )
296
+ - [ deusanyjunior] ( https://github.com/deusanyjunior ) made their first contribution in
297
+ [ #3310 ] ( https://github.com/dotnet/SqlClient/pull/3310 )
298
+ - [ emmanuel-ferdman] ( https://github.com/emmanuel-ferdman ) made their first contribution in
299
+ [ #3041 ] ( https://github.com/dotnet/SqlClient/pull/3041 )
300
+ - [ frankbuckley] ( https://github.com/frankbuckley ) made their first contribution in
301
+ [ #3521 ] ( https://github.com/dotnet/SqlClient/pull/3521 )
302
+ - [ JNjenga] ( https://github.com/JNjenga ) made their first contribution in
303
+ [ #3183 ] ( https://github.com/dotnet/SqlClient/pull/3183 )
304
+ - [ MaceWindu] ( https://github.com/MaceWindu ) made their first contribution in
305
+ [ #3134 ] ( https://github.com/dotnet/SqlClient/pull/3134 )
306
+ - [ Midhunnnk] ( https://github.com/Midhunnnk ) made their first contribution in
307
+ [ #3250 ] ( https://github.com/dotnet/SqlClient/pull/3250 )
80
308
81
309
## Target Platform Support
82
310
0 commit comments