From 2bbef0ee59571fc7cd41f1ebb0f5379a917eeb44 Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Wed, 18 Nov 2020 17:24:33 -0800 Subject: [PATCH 1/3] Release notes for v2.1.0 --- CHANGELOG.md | 18 ++ release-notes/2.1/2.1.0.md | 355 ++++++++++++++++++++++++++++++++++++ release-notes/2.1/2.1.md | 6 + release-notes/2.1/README.md | 6 + release-notes/README.md | 2 +- 5 files changed, 386 insertions(+), 1 deletion(-) create mode 100644 release-notes/2.1/2.1.0.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 28464418f6..c744331013 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,24 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +## [Stable Release 2.1.0] - 2020-11-19 + +### Added +- Microsoft.Data.SqlClient symbols are now source-linked [#789](https://github.com/dotnet/SqlClient/pull/789) +- Added new API to clear cached access tokens from token provider [#800](https://github.com/dotnet/SqlClient/pull/800) +- Added implementation of `SqlFacetAttribute` [#757](https://github.com/dotnet/SqlClient/pull/757) + +### Fixed +- Fixed `InvalidOperationException` and `NotSupportedException` errors from driver due to `WriteAsync` collisions [#796](https://github.com/dotnet/SqlClient/pull/796) +- Fixed bug in `ExecuteXmlReaderAsync` implementation [#782](https://github.com/dotnet/SqlClient/pull/782) +- Fix a regression in Windows Integrated authentication when using managed networking [#777](https://github.com/dotnet/SqlClient/pull/777) +- Fixed Bulk Copy Async deadlock issues with custom `IDataReader` when using `SqlDataReader` internally [#779](https://github.com/dotnet/SqlClient/pull/779) +- Fix serialization issue with `SqlException` in .NET Core [#780](https://github.com/dotnet/SqlClient/pull/780) + +### Changes +- Updated versions of `Microsoft.IdentityModel` package dependencies [#794](https://github.com/dotnet/SqlClient/pull/794) + + ## [Preview Release 2.1.0-preview2.20297.7] - 2020-10-23 ### Added diff --git a/release-notes/2.1/2.1.0.md b/release-notes/2.1/2.1.0.md new file mode 100644 index 0000000000..52392536c0 --- /dev/null +++ b/release-notes/2.1/2.1.0.md @@ -0,0 +1,355 @@ +# Release Notes + +## Microsoft.Data.SqlClient 2.1.0 released 19 November 2020 + +This update brings the below changes over the previous release: + +### Added +- Microsoft.Data.SqlClient symbols are now source-linked [#789](https://github.com/dotnet/SqlClient/pull/789) [[Read more](#Source-Linking-of-Microsoft.Data.SqlClient-symbols)] +- Added new API to clear cached access tokens from token provider [#800](https://github.com/dotnet/SqlClient/pull/800) +- Added implementation of `SqlFacetAttribute` [#757](https://github.com/dotnet/SqlClient/pull/757) + +### Fixed +- Fixed `InvalidOperationException` and `NotSupportedException` errors from driver due to `WriteAsync` collisions [#796](https://github.com/dotnet/SqlClient/pull/796) +- Fixed bug in `ExecuteXmlReaderAsync` implementation [#782](https://github.com/dotnet/SqlClient/pull/782) +- Fix a regression in Windows Integrated authentication when using managed networking [#777](https://github.com/dotnet/SqlClient/pull/777) +- Fixed Bulk Copy Async deadlock issues with custom `IDataReader` when using `SqlDataReader` internally [#779](https://github.com/dotnet/SqlClient/pull/779) +- Fix serialization issue with `SqlException` in .NET Core [#780](https://github.com/dotnet/SqlClient/pull/780) + +### Changes +- Updated versions of `Microsoft.IdentityModel` package dependencies [#794](https://github.com/dotnet/SqlClient/pull/794) + + +## Summary of changes in 2.1 + +All changes in Microsoft.Data.SqlClient v2.1 over v2.0: + +### Added +- Added support for Always Encrypted on all supported platforms for .NET Standard 2.0 [#756](https://github.com/dotnet/SqlClient/pull/756) [[Read more](#Cross-Platform-support-for-Always-Encrypted-v1)] +- Added support for Always Encrypted with secure enclaves on Unix for .NET Core 2.1+ and on all supported platforms for .NET Standard 2.1+ [#676](https://github.com/dotnet/SqlClient/pull/676) [[Read more](#Cross-Platform-support-for-Always-Encrypted-with-Secure-Enclaves)] +- Added support for Azure Active Directory Device Code Flow authentication [#597](https://github.com/dotnet/SqlClient/pull/597) [[Read more](#Azure-Active-Directory-Device-Code-Flow-authentication)] +- Added support for Azure Active Directory Managed Identity authentication [#730](https://github.com/dotnet/SqlClient/pull/730) [[Read more](#Azure-Active-Directory-Managed-Identity-authentication)] +- Added new APIs to enable customizations for "Active Directory Interactive" authentication experience [#597](https://github.com/dotnet/SqlClient/pull/597) [Read more](#Azure-Active-Directory-Interactive-authentication-enhancements) +- Added support to provide a user-defined application client ID when using Active Directory authentication [#740](https://github.com/dotnet/SqlClient/pull/740) [[Read more](#Azure-Active-Directory-authentication-using-an-application-client-ID)] +- Added Sensitivity Rank support in Sensitivity Classification information [#626](https://github.com/dotnet/SqlClient/pull/626) [[Read more](#Data-Classification-v2-support)] +- Added support to obtain `ServerProcessId()` (SPID) information on an active `SqlConnection` instance [#660](https://github.com/dotnet/SqlClient/pull/660) [[Read more](#Server-Process-Id-for-active-SqlConnection)] +- Added support for a new Configuration Section, `SqlClientAuthenticationProviders` (duplicate of existing `SqlAuthenticationProviders`), to allow co-existence of configurations for both drivers, "System.Data.SqlClient" and "Microsoft.Data.SqlClient" [#702](https://github.com/dotnet/SqlClient/pull/702) [[Read more](#SqlClientAuthenticationProviders-configuration-section)] +- Added TraceLogging in Native SNI to extend `SqlClientEventSource` support [#650](https://github.com/dotnet/SqlClient/pull/650) [[Read more](#Trace-Logging-support-in-Native-SNI)] +- Updated Microsoft.Data.SqlClient.SNI (.NET Framework dependency) and Microsoft.Data.SqlClient.SNI.runtime (.NET Core/Standard dependency) version to v2.1.0 with trace logging implementation [#705](https://github.com/dotnet/SqlClient/pull/705) +- Added the "Command Timeout" connection string property to set a default timeout for all commands executed with the connection [#722](https://github.com/dotnet/SqlClient/pull/722) [[Read more](#Command-Timeout-connection-string-property)] +- Microsoft.Data.SqlClient symbols are now source-linked [#789](https://github.com/dotnet/SqlClient/pull/789) [[Read more](#Source-Linking-of-Microsoft.Data.SqlClient-symbols)] +- Added new API to clear cached access tokens from token provider [#800](https://github.com/dotnet/SqlClient/pull/800) +- Added implementation of `SqlFacetAttribute` [#757](https://github.com/dotnet/SqlClient/pull/757) + +### Fixed +- Fixed Enclave session cache issue with Azure Database [#686](https://github.com/dotnet/SqlClient/pull/686) +- Fixed pooled connection re-use on access token expiry issue when using Active Directory authentication modes [#635](https://github.com/dotnet/SqlClient/pull/635) +- Fixed transient fault handling for Pooled connections [#637](https://github.com/dotnet/SqlClient/pull/637) +- Fixed SPN generation issue when no port is provided [#629](https://github.com/dotnet/SqlClient/pull/629) +- Fixed missing null checks for `SqlErrors` in `SqlException` for .NET Framework implementation [#698](https://github.com/dotnet/SqlClient/pull/698) +- Fixed unobserved exception issue when a timeout occurs before a faulted task completes with an exception [#688](https://github.com/dotnet/SqlClient/pull/688) [#773](https://github.com/dotnet/SqlClient/pull/773) +- Fixed an issue where driver continues to prompt for credentials when using Azure Active Directory authentication [#770](https://github.com/dotnet/SqlClient/pull/770) +- Fixed `InvalidOperationException` and `NotSupportedException` errors from driver due to `WriteAsync` collisions [#796](https://github.com/dotnet/SqlClient/pull/796) +- Fixed bug in `ExecuteXmlReaderAsync` implementation [#782](https://github.com/dotnet/SqlClient/pull/782) +- Fix a regression in Windows Integrated authentication when using managed networking [#777](https://github.com/dotnet/SqlClient/pull/777) +- Fixed Bulk Copy Async deadlock issues with custom `IDataReader` when using `SqlDataReader` internally [#779](https://github.com/dotnet/SqlClient/pull/779) +- Fix serialization issue with `SqlException` in .NET Core [#780](https://github.com/dotnet/SqlClient/pull/780) + +### Changes +- Performance improvements by fixing unnecessary allocations with EventSource implementation [#684](https://github.com/dotnet/SqlClient/pull/684) +- Reverted changes to return empty `DataTable` from `GetSchemaTable` to return null as before. [#696](https://github.com/dotnet/SqlClient/pull/696) +- Removed multiple `CacheConnectionStringProperties` calls when setting `ConnectionString` properties [#683](https://github.com/dotnet/SqlClient/pull/683) +- Code Improvements by only checking inexact match when no exact match is found for an embedded resource [#668](https://github.com/dotnet/SqlClient/pull/668) +- Changed `_SqlMetaData` to lazy initialize hidden column map [#521](https://github.com/dotnet/SqlClient/pull/521) +- Renamed internal string resource file and helpers for .NET Core implementation [#671](https://github.com/dotnet/SqlClient/pull/671) +- Performance improvements by reworking `ExecuteReaderAsync` to minimize allocations [#528](https://github.com/dotnet/SqlClient/pull/528) +- Performance improvements by moving `DataReader` caches to internal connection [#499](https://github.com/dotnet/SqlClient/pull/499) +- Moved common files to shared folder between .NET Framework and .NET Core implementation [#618](https://github.com/dotnet/SqlClient/pull/618) [#625](https://github.com/dotnet/SqlClient/pull/625) +- Updated `Microsoft.Data.SqlClient.SNI` (.NET Framework dependency) and `Microsoft.Data.SqlClient.SNI.runtime` (.NET Core/Standard dependency) version to `v2.1.1` and removed symbols from `Microsoft.Data.SqlClient.SNI.runtime`, which are now published to Microsoft Symbols Server [#764](https://github.com/dotnet/SqlClient/pull/764) [[Read more](#Removal-of-symbols-from-Native-SNI)] +- Updated `Microsoft.Identity.Client` dependency version to `v4.21.1` [#765](https://github.com/dotnet/SqlClient/pull/765) +- Performance improvements when establishing an encrypted channel by removing sync over async method calls [#541](https://github.com/dotnet/SqlClient/pull/541) +- Performance improvements by replacing heap-allocated arrays with Spans [#667](https://github.com/dotnet/SqlClient/pull/667) +- Moved common files to shared folder between .NET Framework and .NET Core implementation [#734](https://github.com/dotnet/SqlClient/pull/734) [#753](https://github.com/dotnet/SqlClient/pull/753) +- Updated versions of `Microsoft.IdentityModel` package dependencies [#794](https://github.com/dotnet/SqlClient/pull/794) + + +### Cross-Platform support for Always Encrypted v1 +Microsoft.Data.SqlClient v2.1 extends support for Always Encrypted on the following platforms: + +| Target Framework | Platform | New Feature support | +|------------------|----------|----| +| .NET Framework v4.6+ | Windows | *No changes* | +| .NET Core 2.1+ | All Operating Systems | **Yes, Support on Linux/MacOS** | +| .NET Standard 2.0+ | All Operating Systems | **Yes, Support on All Operating Systems** | + + +### Cross-Platform support for Always Encrypted with Secure Enclaves +Microsoft.Data.SqlClient v2.1 extends support for Always Encrypted (including with secure enclaves) on the following platforms: + +| Target Framework | Platform | New Feature support | +|------------------|----------|----| +| .NET Framework v4.6+ | Windows | *No changes* | +| .NET Core 2.1+ | All Operating Systems | **Yes, Support on Linux/MacOS** | +| .NET Standard 2.1+ | All Operating Systems | **Yes, Support on All Operating Systems** | + +> .NET Standard 2.0 does not support Always Encrypted with Secure Enclaves. + +### Azure Active Directory Device Code Flow authentication +Microsoft.Data.SqlClient v2.1 provides support for "Device Code Flow" authentication with MSAL.NET. +Reference documentation: [OAuth2.0 Device Authorization Grant flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code) + +Connection string example: + +`Server=.database.windows.net; Authentication=Active Directory Device Code Flow; Database=Northwind;` + +The following API enables customization of the Device Code Flow callback mechanism: + +```csharp +public class ActiveDirectoryAuthenticationProvider +{ + // For .NET Framework, .NET Core and .NET Standard targeted applications + public void SetDeviceCodeFlowCallback(Func deviceCodeFlowCallbackMethod) +} +``` + +### Azure Active Directory Managed Identity authentication +This preview release introduces support for Azure Active Directory authentication using [managed identities](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview). + +The following authentication mode keywords are supported: +- Active Directory Managed Identity +- Active Directory MSI (for cross MS SQL drivers compatibility) + +Connection string examples: + +```cs +// For System Assigned Managed Identity +"Server:{serverURL}; Authentication=Active Directory MSI; Initial Catalog={db};" + +// For System Assigned Managed Identity +"Server:{serverURL}; Authentication=Active Directory Managed Identity; Initial Catalog={db};" + +// For User Assigned Managed Identity +"Server:{serverURL}; Authentication=Active Directory MSI; User Id={ObjectIdOfManagedIdentity}; Initial Catalog={db};" + +// For User Assigned Managed Identity +"Server:{serverURL}; Authentication=Active Directory Managed Identity; User Id={ObjectIdOfManagedIdentity}; Initial Catalog={db};" +``` + +### Azure Active Directory Interactive authentication enhancements +Microsoft.Data.SqlClient v2.1 provides the following new APIs to enable customizations for the "Active Directory Interactive" authentication experience: + +```csharp +public class ActiveDirectoryAuthenticationProvider +{ + // For .NET Framework targeted applications only + public void SetIWin32WindowFunc(Func iWin32WindowFunc); + + // For .NET Standard targeted applications only + public void SetParentActivityOrWindowFunc(Func parentActivityOrWindowFunc); + + // For .NET Framework, .NET Core and .NET Standard targeted applications + public void SetAcquireAuthorizationCodeAsyncCallback(Func> acquireAuthorizationCodeAsyncCallback); + + // For .NET Framework, .NET Core and .NET Standard targeted applications + public void ClearUserTokenCache(); +} +``` + +### `SqlClientAuthenticationProviders` configuration section +Microsoft.Data.SqlClient v2.1 introduces a new configuration section, `SqlClientAuthenticationProviders` (a clone of the existing `SqlAuthenticationProviders`). The existing configuration section, `SqlAuthenticationProviders`, is still supported for backwards compatibility when the appropriate type is defined. + +The new section allows application config files to contain both a SqlAuthenticationProviders section for System.Data.SqlClient and a SqlClientAuthenticationProviders section for Microsoft.Data.SqlClient. + + +### Azure Active Directory authentication using an application client ID +This preview release introduces support for passing a user-defined application client ID to the Microsoft Authentication Library, which will be used when authenticating with Azure Active Directory. + +The following new APIs are introduced: + +1. A new constructor has been introduced in ActiveDirectoryAuthenticationProvider:\ +_[Applies to all .NET Platforms (.NET Framework, .NET Core and .NET Standard)]_ + +```csharp +public ActiveDirectoryAuthenticationProvider(string applicationClientId) +``` + +Usage: +```csharp +string APP_CLIENT_ID = ""; +SqlAuthenticationProvider customAuthProvider = new ActiveDirectoryAuthenticationProvider(APP_CLIENT_ID); +SqlAuthenticationProvider.SetProvider(SqlAuthenticationMethod.ActiveDirectoryInteractive, customAuthProvider); + +using (SqlConnection sqlConnection = new SqlConnection("") +{ + sqlConnection.Open(); +} +``` + +2. A new configuration property has been introduced under `SqlAuthenticationProviderConfigurationSection` and `SqlClientAuthenticationProviderConfigurationSection`:\ +_[Applies to .NET Framework and .NET Core]_ + +```csharp +internal class SqlAuthenticationProviderConfigurationSection : ConfigurationSection +{ + ... + [ConfigurationProperty("applicationClientId", IsRequired = false)] + public string ApplicationClientId => this["applicationClientId"] as string; +} + +// Inheritance +internal class SqlClientAuthenticationProviderConfigurationSection : SqlAuthenticationProviderConfigurationSection +{ ... } +``` + +Usage: +```xml + + +
+ + + + + + + + +
+ + + +``` + +### Data Classification v2 support +Microsoft.Data.SqlClient v2.1 introduces support for Data Classification's "Sensitivity Rank" information. The following new APIs are now available: + +```csharp +public class SensitivityClassification +{ + public SensitivityRank SensitivityRank; +} + +public class SensitivityProperty +{ + public SensitivityRank SensitivityRank; +} + +public enum SensitivityRank +{ + NOT_DEFINED = -1, + NONE = 0, + LOW = 10, + MEDIUM = 20, + HIGH = 30, + CRITICAL = 40 +} +``` + +### Server Process Id for an active `SqlConnection` +Microsoft.Data.SqlClient v2.1 introduces a new `SqlConnection` property, `ServerProcessId`, on an active connection. + +```csharp +public class SqlConnection +{ + // Returns the server process Id (SPID) of the active connection. + public int ServerProcessId; +} +``` + +### Trace Logging support in Native SNI +Microsoft.Data.SqlClient v2.1 extends the existing `SqlClientEventSource` implementation to enable event tracing in SNI.dll. Events must be captured using a tool like Xperf. + +Tracing can be enabled by sending a command to `SqlClientEventSource` as illustrated below: + +```csharp +// Enables trace events: +EventSource.SendCommand(eventSource, (EventCommand)8192, null); + +// Enables flow events: +EventSource.SendCommand(eventSource, (EventCommand)16384, null); + +// Enables both trace and flow events: +EventSource.SendCommand(eventSource, (EventCommand)(8192 | 16384), null); +``` + + +### "Command Timeout" connection string property +This preview release introduces the "Command Timeout" connection string property to override the default of 30 seconds. The timeout for individual commands can be overridden using the `CommandTimeout` property on the SqlCommand. + +Connection string examples: + +`"Server:{serverURL}; Initial Catalog={db}; Integrated Security=true; Command Timeout=60"` + +### Removal of symbols from Native SNI +We've removed the symbols introduced in [v2.0.0](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI/2.0.0) from [Microsoft.Data.SqlClient.SNI.runtime](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI.runtime) NuGet starting with [v2.1.1](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI.runtime/2.1.1). The public symbols are now published to Microsoft Symbols Server for tools like BinSkim that require access to public symbols. + +### Source-Linking of Microsoft.Data.SqlClient symbols +Microsoft.Data.SqlClient symbols are now source-linked and published to Microsoft Symbols Server for enhanced debugging experience without the need to download source code. + + +### Target Platform Support + +- .NET Framework 4.6+ (Windows x86, Windows x64) +- .NET Core 2.1+ (Windows x86, Windows x64, Windows ARM64, Windows ARM, Linux, macOS) +- .NET Standard 2.0+ (Windows x86, Windows x64, Windows ARM64, Windows ARM, Linux, macOS) + +### Dependencies + +#### .NET Framework + +- Microsoft.Data.SqlClient.SNI 2.1.1 +- Microsoft.Identity.Client 4.21.1 +- Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0 +- Microsoft.IdentityModel.JsonWebTokens 6.8.0 + +#### .NET Core 2.1 + +- Microsoft.Data.SqlClient.SNI.runtime 2.1.1 +- Microsoft.Win32.Registry 4.7.0 +- System.Security.Principal.Windows 4.7.0 +- System.Text.Encoding.CodePages 4.7.0 +- System.Diagnostics.DiagnosticSource 4.7.0 +- System.Configuration.ConfigurationManager 4.7.0 +- System.Runtime.Caching 4.7.0 +- Microsoft.Identity.Client 4.21.1 +- Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0 +- Microsoft.IdentityModel.JsonWebTokens 6.8.0 + +#### .NET Core 3.1 + +- Microsoft.Data.SqlClient.SNI.runtime 2.1.1 +- Microsoft.Win32.Registry 4.7.0 +- System.Security.Principal.Windows 4.7.0 +- System.Text.Encoding.CodePages 4.7.0 +- System.Diagnostics.DiagnosticSource 4.7.0 +- System.Configuration.ConfigurationManager 4.7.0 +- System.Runtime.Caching 4.7.0 +- Microsoft.Identity.Client 4.21.1 +- Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0 +- Microsoft.IdentityModel.JsonWebTokens 6.8.0 + +#### .NET Standard 2.0 + +- Microsoft.Data.SqlClient.SNI.runtime 2.1.1 +- Microsoft.Win32.Registry 4.7.0 +- System.Buffers 4.5.1 +- System.Memory 4.5.4 +- System.Security.Principal.Windows 4.7.0 +- System.Text.Encoding.CodePages 4.7.0 +- Microsoft.Identity.Client 4.21.1 +- Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0 +- Microsoft.IdentityModel.JsonWebTokens 6.8.0 + +#### .NET Standard 2.1 + +- Microsoft.Data.SqlClient.SNI.runtime 2.1.1 +- Microsoft.Win32.Registry 4.7.0 +- System.Buffers 4.5.1 +- System.Memory 4.5.4 +- System.Security.Principal.Windows 4.7.0 +- System.Text.Encoding.CodePages 4.7.0 +- Microsoft.Identity.Client 4.21.1 +- Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0 +- Microsoft.IdentityModel.JsonWebTokens 6.8.0 diff --git a/release-notes/2.1/2.1.md b/release-notes/2.1/2.1.md index 572179ea3e..1be1be4fb0 100644 --- a/release-notes/2.1/2.1.md +++ b/release-notes/2.1/2.1.md @@ -1,5 +1,11 @@ # Microsoft.Data.SqlClient 2.1 Releases +The following Microsoft.Data.SqlClient 2.1 stable releases have been shipped: + +| Release Date | Version | Notes | +| :-- | :-- | :--: | +| 2020/11/19 | 2.1.0 | [release notes](2.1.0.md) | + The following Microsoft.Data.SqlClient 2.1 preview releases have been shipped: | Release Date | Version | Notes | diff --git a/release-notes/2.1/README.md b/release-notes/2.1/README.md index 572179ea3e..1be1be4fb0 100644 --- a/release-notes/2.1/README.md +++ b/release-notes/2.1/README.md @@ -1,5 +1,11 @@ # Microsoft.Data.SqlClient 2.1 Releases +The following Microsoft.Data.SqlClient 2.1 stable releases have been shipped: + +| Release Date | Version | Notes | +| :-- | :-- | :--: | +| 2020/11/19 | 2.1.0 | [release notes](2.1.0.md) | + The following Microsoft.Data.SqlClient 2.1 preview releases have been shipped: | Release Date | Version | Notes | diff --git a/release-notes/README.md b/release-notes/README.md index 43621a5da7..fc3dcf3315 100644 --- a/release-notes/README.md +++ b/release-notes/README.md @@ -1,6 +1,6 @@ # Microsoft.Data.SqlClient Release Notes -The latest stable release is [Microsoft.Data.SqlClient 2.0](2.0). +The latest stable release is [Microsoft.Data.SqlClient 2.1](2.1). ## Release Information From ce9b56b3ce32c54c81dc420db43c35f7489f41a1 Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Thu, 19 Nov 2020 12:14:19 -0800 Subject: [PATCH 2/3] Updates --- release-notes/2.1/2.1.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/release-notes/2.1/2.1.0.md b/release-notes/2.1/2.1.0.md index 52392536c0..b02341e110 100644 --- a/release-notes/2.1/2.1.0.md +++ b/release-notes/2.1/2.1.0.md @@ -113,7 +113,7 @@ public class ActiveDirectoryAuthenticationProvider ``` ### Azure Active Directory Managed Identity authentication -This preview release introduces support for Azure Active Directory authentication using [managed identities](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview). +Microsoft.Data.SqlClient v2.1 introduces support for Azure Active Directory authentication using [managed identities](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview). The following authentication mode keywords are supported: - Active Directory Managed Identity @@ -162,7 +162,7 @@ The new section allows application config files to contain both a SqlAuthenticat ### Azure Active Directory authentication using an application client ID -This preview release introduces support for passing a user-defined application client ID to the Microsoft Authentication Library, which will be used when authenticating with Azure Active Directory. +Microsoft.Data.SqlClient v2.1 introduces support for passing a user-defined application client ID to the Microsoft Authentication Library, which will be used when authenticating with Azure Active Directory. The following new APIs are introduced: @@ -276,17 +276,17 @@ EventSource.SendCommand(eventSource, (EventCommand)(8192 | 16384), null); ### "Command Timeout" connection string property -This preview release introduces the "Command Timeout" connection string property to override the default of 30 seconds. The timeout for individual commands can be overridden using the `CommandTimeout` property on the SqlCommand. +Microsoft.Data.SqlClient v2.1 introduces the "Command Timeout" connection string property to override the default of 30 seconds. The timeout for individual commands can be overridden using the `CommandTimeout` property on the SqlCommand. Connection string examples: `"Server:{serverURL}; Initial Catalog={db}; Integrated Security=true; Command Timeout=60"` ### Removal of symbols from Native SNI -We've removed the symbols introduced in [v2.0.0](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI/2.0.0) from [Microsoft.Data.SqlClient.SNI.runtime](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI.runtime) NuGet starting with [v2.1.1](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI.runtime/2.1.1). The public symbols are now published to Microsoft Symbols Server for tools like BinSkim that require access to public symbols. +With Microsoft.Data.SqlClient v2.1, we've removed the symbols introduced in [v2.0.0](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI/2.0.0) from [Microsoft.Data.SqlClient.SNI.runtime](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI.runtime) NuGet starting with [v2.1.1](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI.runtime/2.1.1). The public symbols are now published to Microsoft Symbols Server for tools like BinSkim that require access to public symbols. ### Source-Linking of Microsoft.Data.SqlClient symbols -Microsoft.Data.SqlClient symbols are now source-linked and published to Microsoft Symbols Server for enhanced debugging experience without the need to download source code. +Starting with Microsoft.Data.SqlClient v2.1, Microsoft.Data.SqlClient symbols are source-linked and published to Microsoft Symbols Server for enhanced debugging experience without the need to download source code. ### Target Platform Support From 16dfd25ba3ec26fe22f6148b24078f52542ed578 Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Thu, 19 Nov 2020 13:45:56 -0800 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: David Engel --- CHANGELOG.md | 12 ++++++------ release-notes/2.1/2.1.0.md | 38 +++++++++++++++++++------------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c744331013..dceaa7c412 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,15 +8,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Added - Microsoft.Data.SqlClient symbols are now source-linked [#789](https://github.com/dotnet/SqlClient/pull/789) -- Added new API to clear cached access tokens from token provider [#800](https://github.com/dotnet/SqlClient/pull/800) -- Added implementation of `SqlFacetAttribute` [#757](https://github.com/dotnet/SqlClient/pull/757) +- Added an API to clear cached access tokens from the token provider [#800](https://github.com/dotnet/SqlClient/pull/800) +- Added `SqlFacetAttribute` implementation [#757](https://github.com/dotnet/SqlClient/pull/757) ### Fixed -- Fixed `InvalidOperationException` and `NotSupportedException` errors from driver due to `WriteAsync` collisions [#796](https://github.com/dotnet/SqlClient/pull/796) -- Fixed bug in `ExecuteXmlReaderAsync` implementation [#782](https://github.com/dotnet/SqlClient/pull/782) -- Fix a regression in Windows Integrated authentication when using managed networking [#777](https://github.com/dotnet/SqlClient/pull/777) +- Fixed `InvalidOperationException` and `NotSupportedException` errors due to `WriteAsync` collisions [#796](https://github.com/dotnet/SqlClient/pull/796) +- Fixed incorrect Settings.Async flag in `ExecuteXmlReaderAsync` [#782](https://github.com/dotnet/SqlClient/pull/782) +- Fixed a regression in Windows Integrated authentication when using managed networking [#777](https://github.com/dotnet/SqlClient/pull/777) - Fixed Bulk Copy Async deadlock issues with custom `IDataReader` when using `SqlDataReader` internally [#779](https://github.com/dotnet/SqlClient/pull/779) -- Fix serialization issue with `SqlException` in .NET Core [#780](https://github.com/dotnet/SqlClient/pull/780) +- Fixed a serialization issue with `SqlException` in .NET Core [#780](https://github.com/dotnet/SqlClient/pull/780) ### Changes - Updated versions of `Microsoft.IdentityModel` package dependencies [#794](https://github.com/dotnet/SqlClient/pull/794) diff --git a/release-notes/2.1/2.1.0.md b/release-notes/2.1/2.1.0.md index b02341e110..8fac6cb7a2 100644 --- a/release-notes/2.1/2.1.0.md +++ b/release-notes/2.1/2.1.0.md @@ -6,15 +6,15 @@ This update brings the below changes over the previous release: ### Added - Microsoft.Data.SqlClient symbols are now source-linked [#789](https://github.com/dotnet/SqlClient/pull/789) [[Read more](#Source-Linking-of-Microsoft.Data.SqlClient-symbols)] -- Added new API to clear cached access tokens from token provider [#800](https://github.com/dotnet/SqlClient/pull/800) -- Added implementation of `SqlFacetAttribute` [#757](https://github.com/dotnet/SqlClient/pull/757) +- Added an API to clear cached access tokens from the token provider [#800](https://github.com/dotnet/SqlClient/pull/800) +- Added `SqlFacetAttribute` implementation [#757](https://github.com/dotnet/SqlClient/pull/757) ### Fixed -- Fixed `InvalidOperationException` and `NotSupportedException` errors from driver due to `WriteAsync` collisions [#796](https://github.com/dotnet/SqlClient/pull/796) -- Fixed bug in `ExecuteXmlReaderAsync` implementation [#782](https://github.com/dotnet/SqlClient/pull/782) -- Fix a regression in Windows Integrated authentication when using managed networking [#777](https://github.com/dotnet/SqlClient/pull/777) +- Fixed `InvalidOperationException` and `NotSupportedException` errors due to `WriteAsync` collisions [#796](https://github.com/dotnet/SqlClient/pull/796) +- Fixed incorrect Settings.Async flag in `ExecuteXmlReaderAsync` [#782](https://github.com/dotnet/SqlClient/pull/782) +- Fixed a regression in Windows Integrated authentication when using managed networking [#777](https://github.com/dotnet/SqlClient/pull/777) - Fixed Bulk Copy Async deadlock issues with custom `IDataReader` when using `SqlDataReader` internally [#779](https://github.com/dotnet/SqlClient/pull/779) -- Fix serialization issue with `SqlException` in .NET Core [#780](https://github.com/dotnet/SqlClient/pull/780) +- Fixed a serialization issue with `SqlException` in .NET Core [#780](https://github.com/dotnet/SqlClient/pull/780) ### Changes - Updated versions of `Microsoft.IdentityModel` package dependencies [#794](https://github.com/dotnet/SqlClient/pull/794) @@ -22,14 +22,14 @@ This update brings the below changes over the previous release: ## Summary of changes in 2.1 -All changes in Microsoft.Data.SqlClient v2.1 over v2.0: +All changes in Microsoft.Data.SqlClient v2.1 since v2.0: ### Added - Added support for Always Encrypted on all supported platforms for .NET Standard 2.0 [#756](https://github.com/dotnet/SqlClient/pull/756) [[Read more](#Cross-Platform-support-for-Always-Encrypted-v1)] - Added support for Always Encrypted with secure enclaves on Unix for .NET Core 2.1+ and on all supported platforms for .NET Standard 2.1+ [#676](https://github.com/dotnet/SqlClient/pull/676) [[Read more](#Cross-Platform-support-for-Always-Encrypted-with-Secure-Enclaves)] - Added support for Azure Active Directory Device Code Flow authentication [#597](https://github.com/dotnet/SqlClient/pull/597) [[Read more](#Azure-Active-Directory-Device-Code-Flow-authentication)] - Added support for Azure Active Directory Managed Identity authentication [#730](https://github.com/dotnet/SqlClient/pull/730) [[Read more](#Azure-Active-Directory-Managed-Identity-authentication)] -- Added new APIs to enable customizations for "Active Directory Interactive" authentication experience [#597](https://github.com/dotnet/SqlClient/pull/597) [Read more](#Azure-Active-Directory-Interactive-authentication-enhancements) +- Added APIs to enable customizing the UI for "Active Directory Interactive" authentication [#597](https://github.com/dotnet/SqlClient/pull/597) [Read more](#Azure-Active-Directory-Interactive-authentication-enhancements) - Added support to provide a user-defined application client ID when using Active Directory authentication [#740](https://github.com/dotnet/SqlClient/pull/740) [[Read more](#Azure-Active-Directory-authentication-using-an-application-client-ID)] - Added Sensitivity Rank support in Sensitivity Classification information [#626](https://github.com/dotnet/SqlClient/pull/626) [[Read more](#Data-Classification-v2-support)] - Added support to obtain `ServerProcessId()` (SPID) information on an active `SqlConnection` instance [#660](https://github.com/dotnet/SqlClient/pull/660) [[Read more](#Server-Process-Id-for-active-SqlConnection)] @@ -38,8 +38,8 @@ All changes in Microsoft.Data.SqlClient v2.1 over v2.0: - Updated Microsoft.Data.SqlClient.SNI (.NET Framework dependency) and Microsoft.Data.SqlClient.SNI.runtime (.NET Core/Standard dependency) version to v2.1.0 with trace logging implementation [#705](https://github.com/dotnet/SqlClient/pull/705) - Added the "Command Timeout" connection string property to set a default timeout for all commands executed with the connection [#722](https://github.com/dotnet/SqlClient/pull/722) [[Read more](#Command-Timeout-connection-string-property)] - Microsoft.Data.SqlClient symbols are now source-linked [#789](https://github.com/dotnet/SqlClient/pull/789) [[Read more](#Source-Linking-of-Microsoft.Data.SqlClient-symbols)] -- Added new API to clear cached access tokens from token provider [#800](https://github.com/dotnet/SqlClient/pull/800) -- Added implementation of `SqlFacetAttribute` [#757](https://github.com/dotnet/SqlClient/pull/757) +- Added an API to clear cached access tokens from the token provider [#800](https://github.com/dotnet/SqlClient/pull/800) +- Added `SqlFacetAttribute` implementation [#757](https://github.com/dotnet/SqlClient/pull/757) ### Fixed - Fixed Enclave session cache issue with Azure Database [#686](https://github.com/dotnet/SqlClient/pull/686) @@ -48,18 +48,18 @@ All changes in Microsoft.Data.SqlClient v2.1 over v2.0: - Fixed SPN generation issue when no port is provided [#629](https://github.com/dotnet/SqlClient/pull/629) - Fixed missing null checks for `SqlErrors` in `SqlException` for .NET Framework implementation [#698](https://github.com/dotnet/SqlClient/pull/698) - Fixed unobserved exception issue when a timeout occurs before a faulted task completes with an exception [#688](https://github.com/dotnet/SqlClient/pull/688) [#773](https://github.com/dotnet/SqlClient/pull/773) -- Fixed an issue where driver continues to prompt for credentials when using Azure Active Directory authentication [#770](https://github.com/dotnet/SqlClient/pull/770) -- Fixed `InvalidOperationException` and `NotSupportedException` errors from driver due to `WriteAsync` collisions [#796](https://github.com/dotnet/SqlClient/pull/796) -- Fixed bug in `ExecuteXmlReaderAsync` implementation [#782](https://github.com/dotnet/SqlClient/pull/782) -- Fix a regression in Windows Integrated authentication when using managed networking [#777](https://github.com/dotnet/SqlClient/pull/777) +- Fixed an issue where the driver continues to prompt for credentials when using Azure Active Directory authentication and cached credentials should have been used [#770](https://github.com/dotnet/SqlClient/pull/770) +- Fixed `InvalidOperationException` and `NotSupportedException` errors due to `WriteAsync` collisions [#796](https://github.com/dotnet/SqlClient/pull/796) +- Fixed incorrect Settings.Async flag in `ExecuteXmlReaderAsync` [#782](https://github.com/dotnet/SqlClient/pull/782) +- Fixed a regression in Windows Integrated authentication when using managed networking [#777](https://github.com/dotnet/SqlClient/pull/777) - Fixed Bulk Copy Async deadlock issues with custom `IDataReader` when using `SqlDataReader` internally [#779](https://github.com/dotnet/SqlClient/pull/779) -- Fix serialization issue with `SqlException` in .NET Core [#780](https://github.com/dotnet/SqlClient/pull/780) +- Fixed a serialization issue with `SqlException` in .NET Core [#780](https://github.com/dotnet/SqlClient/pull/780) ### Changes -- Performance improvements by fixing unnecessary allocations with EventSource implementation [#684](https://github.com/dotnet/SqlClient/pull/684) +- Performance improvements by fixing unnecessary allocations in EventSource implementation [#684](https://github.com/dotnet/SqlClient/pull/684) - Reverted changes to return empty `DataTable` from `GetSchemaTable` to return null as before. [#696](https://github.com/dotnet/SqlClient/pull/696) - Removed multiple `CacheConnectionStringProperties` calls when setting `ConnectionString` properties [#683](https://github.com/dotnet/SqlClient/pull/683) -- Code Improvements by only checking inexact match when no exact match is found for an embedded resource [#668](https://github.com/dotnet/SqlClient/pull/668) +- Code improvements by checking for an inexact match only when no exact match is found for an embedded resource [#668](https://github.com/dotnet/SqlClient/pull/668) - Changed `_SqlMetaData` to lazy initialize hidden column map [#521](https://github.com/dotnet/SqlClient/pull/521) - Renamed internal string resource file and helpers for .NET Core implementation [#671](https://github.com/dotnet/SqlClient/pull/671) - Performance improvements by reworking `ExecuteReaderAsync` to minimize allocations [#528](https://github.com/dotnet/SqlClient/pull/528) @@ -92,7 +92,7 @@ Microsoft.Data.SqlClient v2.1 extends support for Always Encrypted (including wi | .NET Core 2.1+ | All Operating Systems | **Yes, Support on Linux/MacOS** | | .NET Standard 2.1+ | All Operating Systems | **Yes, Support on All Operating Systems** | -> .NET Standard 2.0 does not support Always Encrypted with Secure Enclaves. +> Always Encrypted with secure enclaves is not supported on .NET Standard 2.0. ### Azure Active Directory Device Code Flow authentication Microsoft.Data.SqlClient v2.1 provides support for "Device Code Flow" authentication with MSAL.NET. @@ -286,7 +286,7 @@ Connection string examples: With Microsoft.Data.SqlClient v2.1, we've removed the symbols introduced in [v2.0.0](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI/2.0.0) from [Microsoft.Data.SqlClient.SNI.runtime](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI.runtime) NuGet starting with [v2.1.1](https://www.nuget.org/packages/Microsoft.Data.SqlClient.SNI.runtime/2.1.1). The public symbols are now published to Microsoft Symbols Server for tools like BinSkim that require access to public symbols. ### Source-Linking of Microsoft.Data.SqlClient symbols -Starting with Microsoft.Data.SqlClient v2.1, Microsoft.Data.SqlClient symbols are source-linked and published to Microsoft Symbols Server for enhanced debugging experience without the need to download source code. +Starting with Microsoft.Data.SqlClient v2.1, Microsoft.Data.SqlClient symbols are source-linked and published to the Microsoft Symbols Server for an enhanced debugging experience without the need to download source code. ### Target Platform Support