Skip to content

Commit 0f7b53b

Browse files
Address feedback
1 parent 9933c7f commit 0f7b53b

4 files changed

Lines changed: 22 additions & 20 deletions

File tree

docs/connect/ado-net/appcontext-switches.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ dev_langs:
1212
ms.custom: sfi-ropc-nochange
1313
ai-usage: ai-assisted
1414
---
15+
1516
# AppContext switches in SqlClient
1617

1718
[!INCLUDE [dotnet-all](../../includes/products/applies-full/dotnet-all.md)]
@@ -26,7 +27,7 @@ The AppContext class allows SqlClient to provide new functionality while continu
2627

2728
(Available starting with version 7.0)
2829

29-
To set `MultiSubnetFailover=true` globally without modifying individual connection strings, you can enable the AppContext switch **"Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault"** to `true` at application startup:
30+
To set `MultiSubnetFailover=true` globally without modifying individual connection strings, you can set the AppContext switch **"Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault"** to `true` at application startup:
3031

3132
```csharp
3233
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault", true);
@@ -63,7 +64,7 @@ By default, both switches are `true`, which preserves the existing (compatible)
6364

6465
(Available starting with version 7.0)
6566

66-
When the AppContext switch **"Switch.Microsoft.Data.SqlClient.EnableUserAgent"** is enabled, the driver sends more detailed user agent strings during connection. This information assists with troubleshooting and quantifying driver usage by version and operating system. This switch is disabled by default. To enable it, set the AppContext switch to `true` at application startup:
67+
When the AppContext switch **"Switch.Microsoft.Data.SqlClient.EnableUserAgent"** is enabled, the driver sends user agent details to the server as part of the connection. This information assists with troubleshooting and quantifying driver usage by version and operating system. This switch is disabled by default. To enable it, set the AppContext switch to `true` at application startup:
6768

6869
```csharp
6970
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.EnableUserAgent", true);

docs/connect/ado-net/introduction-microsoft-data-sqlclient-namespace.md

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ ms.custom:
1212
- sfi-ropc-nochange
1313
- ignite-2025
1414
---
15+
1516
# Introduction to Microsoft.Data.SqlClient namespace
1617

1718
[!INCLUDE [Driver_ADONET_Download](../../includes/driver_adonet_download.md)]
@@ -26,7 +27,7 @@ The Microsoft.Data.SqlClient API details can be found in the [.NET API Browser](
2627

2728
## Stable Release 7.0.0 - 2026-03-17
2829

29-
This is the general availability release of **Microsoft.Data.SqlClient 7.0**, a major milestone for the .NET data provider for SQL Server. This release addresses the most upvoted issue in the repository's history — extracting Azure dependencies from the core package — introduces pluggable SSPI authentication, adds enhanced routing for Azure SQL Hyperscale, and delivers async read performance improvements.
30+
This is the general availability release of **Microsoft.Data.SqlClient 7.0**, a major milestone for the .NET data provider for SQL Server. This release addresses the most upvoted issue in the repository's history — extracting Azure dependencies from the core package — introduces pluggable SSPI authentication, adds enhanced routing for Azure, and delivers async read performance improvements.
3031

3132
Also released as part of this milestone:
3233

@@ -35,9 +36,9 @@ Also released as part of this milestone:
3536
- Released Microsoft.Data.SqlClient.Internal.Logging 1.0.0. See [release notes](https://github.com/dotnet/SqlClient/tree/main/release-notes/Internal/Logging/1.0/1.0.0.md).
3637
- Released Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 7.0.0. See [release notes](https://github.com/dotnet/SqlClient/tree/main/release-notes/add-ons/AzureKeyVaultProvider/7.0/7.0.0.md).
3738

38-
### Breaking Changes
39+
### Breaking changes in 7.0
3940

40-
#### Azure Dependencies Removed from Core Package
41+
#### Azure dependencies removed from core package
4142

4243
*What Changed:*
4344

@@ -51,7 +52,7 @@ Also released as part of this milestone:
5152
[#3982](https://github.com/dotnet/SqlClient/pull/3982),
5253
[#3978](https://github.com/dotnet/SqlClient/pull/3978),
5354
[#3986](https://github.com/dotnet/SqlClient/pull/3986))
54-
- Two additional packages were introduced to support this separation: `Microsoft.Data.SqlClient.Extensions.Abstractions` (shared types between the core driver and extensions) and `Microsoft.Data.SqlClient.Internal.Logging` (shared ETW tracing infrastructure).
55+
- Two additional packages are introduced to support this separation: `Microsoft.Data.SqlClient.Extensions.Abstractions` (shared types between the core driver and extensions) and `Microsoft.Data.SqlClient.Internal.Logging` (shared ETW tracing infrastructure).
5556
([#3626](https://github.com/dotnet/SqlClient/pull/3626),
5657
[#3628](https://github.com/dotnet/SqlClient/pull/3628),
5758
[#3967](https://github.com/dotnet/SqlClient/pull/3967),
@@ -74,14 +75,14 @@ dotnet add package Microsoft.Data.SqlClient.Extensions.Azure
7475
- No code changes are required beyond adding the package reference.
7576
- If an Entra ID authentication method is used without the Azure package installed, the driver now provides an actionable error message guiding users to install the correct package.
7677

77-
#### Other breaking changes
78+
#### Other breaking changes in 7.0
7879

7980
- Reverted public visibility of internal interop enums (`IoControlCodeAccess` and `IoControlTransferType`) that were accidentally made public during the project merge.
8081
([#3900](https://github.com/dotnet/SqlClient/pull/3900))
8182

82-
### Added
83+
### Added in 7.0
8384

84-
#### Pluggable Authentication with SspiContextProvider
85+
#### Pluggable authentication with SspiContextProvider
8586

8687
*What Changed:*
8788

@@ -106,9 +107,9 @@ connection.Open();
106107
```
107108

108109
- The provider handles the authentication token exchange during integrated authentication. Existing authentication behavior is unchanged when no custom provider is set. See [SspiContextProvider_CustomProvider.cs](https://github.com/dotnet/SqlClient/tree/main/doc/samples/SspiContextProvider_CustomProvider.cs) for a sample implementation.
109-
- **Note:** The `SspiContextProvider` is part of the connection pool key. Care should be taken when using this property to ensure the implementation returns a stable identity per resource.
110+
- **Note:** The `SspiContextProvider` is part of the connection pool key. Ensure the implementation returns a consistent identity per resource.
110111

111-
#### Async Read Performance: Packet Multiplexing (Preview)
112+
#### Async read performance: Packet multiplexing (preview)
112113

113114
*What Changed:*
114115

@@ -144,7 +145,7 @@ AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseCompatibilityProcessSni
144145

145146
*Who Benefits:*
146147

147-
- Users connecting to Azure SQL Hyperscale environments that use named read replicas and gateway-based load balancing.
148+
- Users connecting to Azure environments that use named read replicas and gateway-based load balancing.
148149

149150
*Impact:*
150151

@@ -165,7 +166,7 @@ AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseCompatibilityProcessSni
165166

166167
- SqlClient 7.0 compiles and tests against .NET 10, ensuring compatibility.
167168

168-
#### Strongly-Typed Diagnostic Events on .NET Framework
169+
#### Strongly-typed diagnostic events on .NET Framework
169170

170171
*What Changed:*
171172

@@ -201,7 +202,7 @@ listener.Subscribe(new Observer<KeyValuePair<string, object?>>(kvp =>
201202

202203
- The types implement `IReadOnlyList<KeyValuePair<string, object>>` for backward compatibility with code that iterates properties generically.
203204

204-
#### Other Additions
205+
#### Other additions in 7.0
205206

206207
- Added `SqlConfigurableRetryFactory.BaselineTransientErrors` static property exposing the default transient error codes list as a `ReadOnlyCollection<int>`, making it easier to extend the default list with application-specific error codes.
207208
([#3903](https://github.com/dotnet/SqlClient/pull/3903))
@@ -215,7 +216,7 @@ listener.Subscribe(new Observer<KeyValuePair<string, object?>>(kvp =>
215216
- Enabled User Agent Feature Extension (opt-in via `Switch.Microsoft.Data.SqlClient.EnableUserAgent`).
216217
([#3606](https://github.com/dotnet/SqlClient/pull/3606))
217218

218-
### Changed
219+
### Changed in 7.0
219220

220221
#### Deprecation of `SqlAuthenticationMethod.ActiveDirectoryPassword`
221222

@@ -241,7 +242,7 @@ listener.Subscribe(new Observer<KeyValuePair<string, object?>>(kvp =>
241242

242243
- See [Connect to Azure SQL with Microsoft Entra authentication](/connect/ado-net/sql/azure-active-directory-authentication) for more information.
243244

244-
## Target Platform Support
245+
## Target Platform Support for 7.0
245246

246247
- .NET Framework 4.6.2+ (Windows x86, Windows x64, Windows ARM64)
247248
- .NET 8.0+ (Windows x86, Windows x64, Windows ARM, Windows ARM64, Linux, macOS)

docs/connect/ado-net/sql/azure-active-directory-authentication.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ This article describes how to connect to Azure SQL data sources by using Microso
2828
Microsoft Entra authentication uses identities in Microsoft Entra ID to access data sources such as Azure SQL Database, Azure SQL Managed Instance, and Azure Synapse Analytics. The **Microsoft.Data.SqlClient** namespace allows client applications to specify Microsoft Entra credentials in different authentication modes when they're connecting to Azure SQL Database and Azure SQL Managed Instance. To use Microsoft Entra authentication with Azure SQL, you must [configure and manage Microsoft Entra authentication with Azure SQL](/azure/azure-sql/database/authentication-aad-configure).
2929

3030
> [!IMPORTANT]
31-
> Starting with **Microsoft.Data.SqlClient 7.0**, Azure and Microsoft Entra ID dependencies are no longer included in the core `Microsoft.Data.SqlClient` package. If your application uses any Microsoft Entra authentication mode (such as `Active Directory Default`, `Active Directory Managed Identity`, `Active Directory Interactive`, etc.) with driver implementation, you must install the **Microsoft.Data.SqlClient.Extensions.Azure** NuGet package separately. For migration steps, see [Migrate to Microsoft.Data.SqlClient 7.0](#migrate-to-microsoftdatasqlclient-70).
31+
> Starting with **Microsoft.Data.SqlClient 7.0**, Azure and Microsoft Entra ID dependencies are no longer included in the core `Microsoft.Data.SqlClient` package. If your library or application supports any Microsoft Entra authentication mode (such as `Active Directory Default`, `Active Directory Managed Identity`, `Active Directory Interactive`, etc.), you must include a dependency on the **Microsoft.Data.SqlClient.Extensions.Azure** NuGet package. For migration steps, see [Migrate to Microsoft.Data.SqlClient 7.0](#migrate-to-microsoftdatasqlclient-70).
3232
3333
When you set the `Authentication` connection property in the connection string, the client can choose a preferred Microsoft Entra authentication mode according to the value provided:
3434

@@ -37,7 +37,7 @@ When you set the `Authentication` connection property in the connection string,
3737

3838
A new `Active Directory Service Principal` authentication mode is also added in SqlClient 2.0.0. It makes use of the client ID and secret of a service principal identity to accomplish authentication.
3939
- More authentication modes are added in **Microsoft.Data.SqlClient** 2.1.0, including `Active Directory Device Code Flow` and `Active Directory Managed Identity` (also known as `Active Directory MSI`). These new modes enable the application to acquire an access token to connect to the server.
40-
- Starting with **Microsoft.Data.SqlClient** 7.0.0, all Microsoft Entra authentication implementation is delivered through the separate `Microsoft.Data.SqlClient.Extensions.Azure` package. The core driver package no longer carries Azure dependencies.
40+
- Starting with **Microsoft.Data.SqlClient** 7.0.0, Microsoft Entra authentication support is provided through the separate `Microsoft.Data.SqlClient.Extensions.Azure` package. The core driver package no longer carries Azure dependencies.
4141

4242
For information about Microsoft Entra authentication beyond what the following sections describe, see [Use Microsoft Entra authentication](/azure/azure-sql/database/authentication-aad-overview).
4343

@@ -452,7 +452,7 @@ Or by using the NuGet Package Manager in Visual Studio, search for **Microsoft.D
452452
> No code changes are required beyond adding the package reference. The extension package registers its authentication providers automatically.
453453
454454
> [!NOTE]
455-
> You are not required to include the **Microsoft.Data.SqlClient.Extensions.Azure** package reference if your application references code that implements the Entra ID Authentication modes or you connect to Azure SQL using token-based authentication. This package reference is only needed to utilize driver-provided implementation of Entra ID authentication modes.
455+
> You are not required to include the **Microsoft.Data.SqlClient.Extensions.Azure** package reference if your application implements the Entra ID Authentication modes itself or you connect to Azure SQL using token-based authentication. This package reference is only required for the driver-provided implementation of Entra ID authentication modes.
456456
457457
### Step 2: Replace deprecated authentication modes
458458

docs/connect/ado-net/sqlclient-driver-support-lifecycle.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ New stable (GA) releases for `Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyV
6969
| 2.x | March 3, 2021 | 2.0.0 | March 3, 2021 | LTS | March 4, 2024 |
7070
| 1.x | November 19, 2019 | 1.2.0 | December 01, 2020 | LTS | November 21, 2022 |
7171

72-
## Microsoft.Data.SqlClient Extensions
72+
## Microsoft.Data.SqlClient extensions
7373

7474
The major versions of extensions NuGet packages shipped starting with Microsoft.Data.SqlClient v7.0 onwards follow an LTS support cycle:
7575

0 commit comments

Comments
 (0)