Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
232 changes: 230 additions & 2 deletions release-notes/7.0/7.0.0-preview1.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down Expand Up @@ -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<byte>`.
([#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
Expand All @@ -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

Expand Down