diff --git a/release-notes/7.0/7.0.0-preview1.md b/release-notes/7.0/7.0.0-preview1.md index 045d3e9857..869217eb11 100644 --- a/release-notes/7.0/7.0.0-preview1.md +++ b/release-notes/7.0/7.0.0-preview1.md @@ -2,6 +2,8 @@ ## Preview Release 7.0.0-preview1.25257.1 - 2025-09-12 +## Changes Since [6.1.0](../6.1/6.1.0.md) + This update brings the following changes since the [6.1.0](../6.1/6.1.0.md) release: @@ -62,6 +64,219 @@ release: - Updated `Azure.Identity` dependency to v1.14.2. ([#3538](https://github.com/dotnet/SqlClient/pull/3538)) +## Changes Since [6.0.2](../6.0/6.0.2.md) + +This update brings the following changes since the [6.0.2](../6.0/6.0.2.md) +release. Changes already noted above are omitted: + +### Additions + +#### Added dedicated SQL Server vector datatype support + +*What Changed:* + +- Optimized vector communications between MDS and SQL Server 2025, employing a + custom binary format over the TDS protocol. + ([#3433](https://github.com/dotnet/SqlClient/pull/3433), + [#3443](https://github.com/dotnet/SqlClient/pull/3443)) +- Reduced processing load compared to existing JSON-based vector support. +- Initial support for 32-bit single-precision floating point vectors. + +*Who Benefits:* + +- Applications moving large vector data sets will see beneficial improvements + to processing times and memory requirements. +- Vector-specific APIs are ready to support future numeric representations with + a consistent look-and-feel. + +*Impact:* + +- Reduced transmission and processing times for vector operations versus JSON + using SQL Server 2025 preview: + - Reads: 50x improvement + - Writes: 3.3x improvement + - Bulk Copy: 19x improvement + - (Observed with vector column of max 1998 size, and 10,000 records for each + operation.) +- Improved memory footprint due to the elimination of JSON + serialization/deserialization and string representation bloat. +- For backwards compatibility with earlier SQL Server Vector implementations, + applications may continue to use JSON strings to send/receive vector data, + although they will not see any of the performance improvements noted above. + +#### Revived .NET Standard 2.0 target support + +*What Changed:* + +- Support for targeting .NET Standard 2.0 has returned. + ([#3381](https://github.com/dotnet/SqlClient/pull/3381)) +- Support had previously been removed in the 6.0 release, with the + [community voicing concerns](https://github.com/dotnet/SqlClient/discussions/3115). + +*Who Benefits:* + +- Libraries that depend on MDS may seamlessly target any of the following + frameworks: + - .NET Standard 2.0 + - .NET Framework 4.6.2 and above + - .NET 8.0 + - .NET 9.0 +- Applications should continue to target runtimes. + - The MDS .NET Standard 2.0 target framework support does not include an + actual implementation, and cannot be used with a runtime. + - An application's build/publish process should always pick the appropriate + MDS .NET/.NET Framework runtime implementation. + - Custom build/publish actions that incorrectly try to deploy the MDS .NET + Standard 2.0 reference DLL at runtime are not supported. + +*Impact:* + +- Libraries targeting .NET Standard 2.0 will no longer receive warnings like + this: + - `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.` + +#### Other Additions + +- Added packet multiplexing support to improve large data read performance. + ([#2714](https://github.com/dotnet/SqlClient/pull/2714), + [#3161](https://github.com/dotnet/SqlClient/pull/3161), + [#3202](https://github.com/dotnet/SqlClient/pull/3202)) +- Added support for special casing with Fabric endpoints. + ([#3084](https://github.com/dotnet/SqlClient/pull/3084)) + +### Fixed + +- Fixed distributed transactions to be preserved during pooled connection resets. + ([#3019](https://github.com/dotnet/SqlClient/pull/3019)) +- Fixed application crash when the `Data Source` parameter begins with a comma. + ([#3250](https://github.com/dotnet/SqlClient/pull/3250)) +- Resolved synonym count discrepancies in debug mode. + ([#3098](https://github.com/dotnet/SqlClient/pull/3098)) +- Addressed warnings for down-level SSL/TLS versions. + ([#3126](https://github.com/dotnet/SqlClient/pull/3126)) +- Fixed missing <NeutralLanguage> property. + ([#3325](https://github.com/dotnet/SqlClient/pull/3325)) +- Fixed injection of UTF-8 BOM during bulk copy. + ([#3399](https://github.com/dotnet/SqlClient/pull/3399)) +- Fixed `SqlCachedBuffer` async read edge case. + ([#3329](https://github.com/dotnet/SqlClient/pull/3329)) +- Fixed `SqlSequentialTextReader` edge case with single-byte reads. + ([#3383](https://github.com/dotnet/SqlClient/pull/3383)) +- Fixed an incorrect error message when parsing connection string `PoolBlockingPeriod`. + ([#3411](https://github.com/dotnet/SqlClient/pull/3411)) +- Added missing `ToString()` override to `SqlJson`. + ([#3427](https://github.com/dotnet/SqlClient/pull/3427)) +- Fixed missing socket error codes on non-Windows platforms. + ([#3475](https://github.com/dotnet/SqlClient/pull/3475)) +- Fixed primary/secondary server SPN handling during SSPI negotiation. + ([#3478](https://github.com/dotnet/SqlClient/pull/3478)) +- Fixed AzureKeyVaultProvider package key caching to serialize Azure key fetch + operations. + ([#3477](https://github.com/dotnet/SqlClient/pull/3477)) +- Fixed a rare error related to multi-packet async text reads. + ([#3474](https://github.com/dotnet/SqlClient/pull/3474)) +- Fixed some spelling errors in the API docs. + ([#3500](https://github.com/dotnet/SqlClient/pull/3500)) +- Fixed a rare multi-packet string corruption bug. + ([#3513](https://github.com/dotnet/SqlClient/pull/3513)) + +### Changed + +#### SqlDecimal type workarounds conversions + +*What Changed:* + +- Changed how SqlDecimal type workarounds perform conversions to meet + compliance policies. + ([#3467](https://github.com/dotnet/SqlClient/pull/3467)) + +*Who Benefits:* + +- Microsoft products must not use undocumented APIs on other Microsoft products. + This change removes calls to undocumented APIs and replaces them with + compliant API use. + +*Impact:* + +- These changes impose an observed 5% decrease in performance on .NET Framework. + +#### SqlVector API improvements (since [6.1.0-preview2](6.1.0-preview2.md)) + +*What Changed:* + +- Several changes were made to the SqlVector API published in the + [6.1.0-preview2](6.1.0-preview2.md) release + ([#3472](https://github.com/dotnet/SqlClient/pull/3472)): + - The SqlVector class was changed to a readonly struct. + - The null value constructor was changed to a static `CreateNull()` method. + - The `Size` property was removed. + +*Who Benefits:* + +- SqlVector instances gain the efficiencies of struct handling. + +*Impact:* + +- Early-adopter applications may require updates if they rely on the old APIs + and any class-specific behaviour. + +#### Other Changes + +- Reduced allocations when opening a connection. + ([#3364](https://github.com/dotnet/SqlClient/pull/3364)) +- Various performance improvements related to TDS parsing. + ([#3337](https://github.com/dotnet/SqlClient/pull/3337), + [#3377](https://github.com/dotnet/SqlClient/pull/3377), + [#3422](https://github.com/dotnet/SqlClient/pull/3422)) +- Improved native AOT support. + ([#3364](https://github.com/dotnet/SqlClient/pull/3364), + [#3369](https://github.com/dotnet/SqlClient/pull/3369), + [#3401](https://github.com/dotnet/SqlClient/pull/3401)) +- Progress towards [SSPI extensibility](https://github.com/dotnet/SqlClient/issues/2253). + ([#2454](https://github.com/dotnet/SqlClient/pull/2454)) +- Progress towards [connection pooling improvements](https://github.com/dotnet/SqlClient/issues/3356). + ([#3352](https://github.com/dotnet/SqlClient/pull/3352), + [#3396](https://github.com/dotnet/SqlClient/pull/3396)) +- Expanded/clarified SqlConnection's + [AccessToken](https://learn.microsoft.com/en-us/dotnet/api/microsoft.data.sqlclient.sqlconnection.accesstoken) and + [AccessTokenCallback](https://learn.microsoft.com/en-us/dotnet/api/microsoft.data.sqlclient.sqlconnection.accesstokencallback) + documentation. + ([#3339](https://github.com/dotnet/SqlClient/pull/3339)) +- Fixed some poorly formatted tables in the API docs. + ([#3391](https://github.com/dotnet/SqlClient/pull/3391)) +- Optimized binary size for AOT. + ([#3091](https://github.com/dotnet/SqlClient/pull/3091)) +- Refined bulk copy operations to handle unmatched column names more effectively. + ([#3205](https://github.com/dotnet/SqlClient/pull/3205)) +- Enhanced `SqlBulkCopy` to explicitly identify mismatched column names. + ([#3183](https://github.com/dotnet/SqlClient/pull/3183)) +- Optimized outgoing SSPI blob handling using `IBufferWriter`. + ([#2452](https://github.com/dotnet/SqlClient/pull/2452)) +- Replaced `byte[]` with `string` for SNI to improve efficiency. + ([#2790](https://github.com/dotnet/SqlClient/pull/2790)) +- Code cleanup to remove SQL 2000 support. + ([#2839](https://github.com/dotnet/SqlClient/pull/2839), + [#3206](https://github.com/dotnet/SqlClient/pull/3206), + [#3217](https://github.com/dotnet/SqlClient/pull/3217)) +- Connection pool design refactor for a modular connection pool design. + ([#3199](https://github.com/dotnet/SqlClient/pull/3199)) +- Added dependency on `System.Text.Json` + [8.0.5](https://www.nuget.org/packages/System.Text.Json/8.0.5) (.NET 8.0) and + [9.0.5](https://www.nuget.org/packages/System.Text.Json/9.0.5) (.NET Standard 2.0, .NET 9.0) + to avoid transitive vulnerabilities ([CVE-2024-43485](https://github.com/advisories/GHSA-8g4q-xg66-9fp4)). + ([#3403](https://github.com/dotnet/SqlClient/pull/3403)) +- Updated various dependencies [#3229](https://github.com/dotnet/SqlClient/pull/3229), primarily: + - System.Text.Encodings.Web to v8.0.0 + - System.Text.Json to v8.0.5 + - Azure.Identity to v1.13.2 + - Microsoft.Identity.Model.Json.Web.Tokens to v7.7.1 + - Microsoft.Identity.Model.Protocols.OpenIdConnect to v7.7.1 +- Code merge towards a unified SqlClient project, aligning .NET Framework and .NET Core implementations. + (Many PRs - see [6.1.0-preview1](6.1.0-preview1.md) and [6.1.0-preview2](6.1.0-preview2.md) for details.) +- Test improvements include a new unit test project, updates to test + dependencies, removal of hardcoded credentials, and improved robustness. + (Many PRs - see [6.1.0-preview1](6.1.0-preview1.md) and [6.1.0-preview2](6.1.0-preview2.md) for details.) + ## Contributors We thank the following public contributors. Their efforts toward this project @@ -70,13 +285,26 @@ are very much appreciated. - [edwardneal](https://github.com/edwardneal) - [emmanuel-ferdman](https://github.com/emmanuel-ferdman) - [ErikEJ](https://github.com/ErikEJ) +- [MichelZ](https://github.com/MichelZ) - [twsouthwick](https://github.com/twsouthwick) - [Wraith2](https://github.com/Wraith2) ### New Contributors -- [frankbuckley](https://github.com/frankbuckley) made their first contribution - in [#3521](https://github.com/dotnet/SqlClient/pull/3521) +- [BradBarnich](https://github.com/BradBarnich) made their first contribution in + [#3325](https://github.com/dotnet/SqlClient/pull/3325) +- [deusanyjunior](https://github.com/deusanyjunior) made their first contribution in + [#3310](https://github.com/dotnet/SqlClient/pull/3310) +- [emmanuel-ferdman](https://github.com/emmanuel-ferdman) made their first contribution in + [#3041](https://github.com/dotnet/SqlClient/pull/3041) +- [frankbuckley](https://github.com/frankbuckley) made their first contribution in + [#3521](https://github.com/dotnet/SqlClient/pull/3521) +- [JNjenga](https://github.com/JNjenga) made their first contribution in + [#3183](https://github.com/dotnet/SqlClient/pull/3183) +- [MaceWindu](https://github.com/MaceWindu) made their first contribution in + [#3134](https://github.com/dotnet/SqlClient/pull/3134) +- [Midhunnnk](https://github.com/Midhunnnk) made their first contribution in + [#3250](https://github.com/dotnet/SqlClient/pull/3250) ## Target Platform Support