22
33## Preview Release 7.0.0-preview1.25257.1 - 2025-09-12
44
5+ ## Changes Since [ 6.1.0] ( ../6.1/6.1.0.md )
6+
57This update brings the following changes since the [ 6.1.0] ( ../6.1/6.1.0.md )
68release:
79
@@ -62,6 +64,219 @@ release:
6264- Updated ` Azure.Identity ` dependency to v1.14.2.
6365 ([ #3538 ] ( https://github.com/dotnet/SqlClient/pull/3538 ) )
6466
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+
65280## Contributors
66281
67282We thank the following public contributors. Their efforts toward this project
@@ -70,13 +285,26 @@ are very much appreciated.
70285- [ edwardneal] ( https://github.com/edwardneal )
71286- [ emmanuel-ferdman] ( https://github.com/emmanuel-ferdman )
72287- [ ErikEJ] ( https://github.com/ErikEJ )
288+ - [ MichelZ] ( https://github.com/MichelZ )
73289- [ twsouthwick] ( https://github.com/twsouthwick )
74290- [ Wraith2] ( https://github.com/Wraith2 )
75291
76292### New Contributors
77293
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 )
80308
81309## Target Platform Support
82310
0 commit comments