From 53752a93418413c7dc6e64780b2575edc00d0a25 Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Tue, 24 Mar 2020 13:17:54 -0700 Subject: [PATCH 1/2] Release notes for 2.0.0-preview2 version --- CHANGELOG.md | 29 +++++++ release-notes/2.0/2.0.0-preview2.md | 123 ++++++++++++++++++++++++++++ release-notes/2.0/2.0.md | 1 + release-notes/2.0/README.md | 1 + 4 files changed, 154 insertions(+) create mode 100644 release-notes/2.0/2.0.0-preview2.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 255dde891c..949cd1c40e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,35 @@ 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/) +## [Preview Release 2.0.0-preview1.20084.1] - 2020-03-24 + +### Added +- Added support for capturing EventSource traces in .NET Framework, .NET Core, and .NET Standard applications [#399](https://github.com/dotnet/SqlClient/pull/399) [#461](https://github.com/dotnet/SqlClient/pull/461) [#479](https://github.com/dotnet/SqlClient/pull/479) [#483](https://github.com/dotnet/SqlClient/pull/483) [#484](https://github.com/dotnet/SqlClient/pull/484) +- Added support for Cross-platform TCP Keep Alive applicable to .NET Core 3.1+ applications [#395](https://github.com/dotnet/SqlClient/pull/395) +- Added support for enabling Managed networking implementation on Windows applicable to .NET Core and .NET Standard applications [#477](https://github.com/dotnet/SqlClient/pull/477) +- Added `RowsCopied` property in `SqlBulkCopy` to expose count of copied rows [#409](https://github.com/dotnet/SqlClient/pull/409) +- Added "NeutralResourcesLanguage" attribute for .NET Framework assembly [#433](https://github.com/dotnet/SqlClient/pull/433) +- Added caching for invariant culture check result [#376](https://github.com/dotnet/SqlClient/pull/376) +- Added cached `SqlReferenceCollection.FindLiveReaderContext` objects [#380](https://github.com/dotnet/SqlClient/pull/380) + +### Fixed +- Fixed Access Token behavior in connection pool to perform string comparison [#443](https://github.com/dotnet/SqlClient/pull/443) +- Fixed concurrent connection speed issues when connecting with Azure Federated Authentication modes in .NET Core [#466](https://github.com/dotnet/SqlClient/pull/466) +- Fixed issues with `Password` persistence in Connection String [#453](https://github.com/dotnet/SqlClient/pull/453) + +### Changes +- Updated all driver assemblies to become CLS Compliant [#396](https://github.com/dotnet/SqlClient/pull/396) +- Updated Bulk Copy error messages to also include Column, Row and non-encrypted Data information [#427](https://github.com/dotnet/SqlClient/pull/437) +- Updated error messages for "Always Encrypted - Secure Enclaves" to handle 'Attestation Protocol' and fixed typos [#421](https://github.com/dotnet/SqlClient/pull/421) [#397](https://github.com/dotnet/SqlClient/pull/397) +- Removed sync over async in `SNINpHandle.EnableSsl` [#474](https://github.com/dotnet/SqlClient/pull/474) +- Changed non-generic `ArrayList` to `List` in `SqlBulkCopy` [#457](https://github.com/dotnet/SqlClient/pull/457) +- Multiple performance improvements [#377](https://github.com/dotnet/SqlClient/pull/377) [#378](https://github.com/dotnet/SqlClient/pull/378) [#379](https://github.com/dotnet/SqlClient/pull/379) + +### Breaking Changes +- The driver will now perform Server Certificate validation when TLS encryption enforced by target Server, effective automatically on Azure connections [#391](https://github.com/dotnet/SqlClient/pull/391) +- `SqlDataReader.GetSchemaTable()` now returns empty `DataTable` instead of returning `null` [#419](https://github.com/dotnet/SqlClient/pull/419) + + ## [Stable Release 1.1.1] - 2020-02-14 ### Fixed diff --git a/release-notes/2.0/2.0.0-preview2.md b/release-notes/2.0/2.0.0-preview2.md new file mode 100644 index 0000000000..68902fbadc --- /dev/null +++ b/release-notes/2.0/2.0.0-preview2.md @@ -0,0 +1,123 @@ +# Release Notes + +## Microsoft.Data.SqlClient 2.0.0-preview2.20084.1 released 24 March 2020 + +This update brings the below changes over the previous release: + +### Added +- Added support for capturing EventSource traces in .NET Framework, .NET Core, and .NET Standard applications [#399](https://github.com/dotnet/SqlClient/pull/399) [#461](https://github.com/dotnet/SqlClient/pull/461) [#479](https://github.com/dotnet/SqlClient/pull/479) [#483](https://github.com/dotnet/SqlClient/pull/483) [#484](https://github.com/dotnet/SqlClient/pull/484) +- Added support for Cross-platform TCP Keep Alive applicable to .NET Core 3.1+ applications [#395](https://github.com/dotnet/SqlClient/pull/395) +- Added support for enabling Managed networking implementation on Windows applicable to .NET Core and .NET Standard applications [#477](https://github.com/dotnet/SqlClient/pull/477) +- Added `RowsCopied` property in `SqlBulkCopy` to expose count of copied rows [#409](https://github.com/dotnet/SqlClient/pull/409) +- Added "NeutralResourcesLanguage" attribute for .NET Framework assembly [#433](https://github.com/dotnet/SqlClient/pull/433) +- Added caching for invariant culture check result [#376](https://github.com/dotnet/SqlClient/pull/376) +- Added cached `SqlReferenceCollection.FindLiveReaderContext` objects [#380](https://github.com/dotnet/SqlClient/pull/380) + +### Fixed +- Fixed Access Token behavior in connection pool to perform string comparison [#443](https://github.com/dotnet/SqlClient/pull/443) +- Fixed concurrent connection speed issues when connecting with Azure Federated Authentication modes in .NET Core [#466](https://github.com/dotnet/SqlClient/pull/466) +- Fixed issues with `Password` persistence in Connection String [#453](https://github.com/dotnet/SqlClient/pull/453) + +### Changes +- Updated all driver assemblies to become CLS Compliant [#396](https://github.com/dotnet/SqlClient/pull/396) +- Updated Bulk Copy error messages to also include Column, Row and non-encrypted Data information [#427](https://github.com/dotnet/SqlClient/pull/437) +- Updated error messages for "Always Encrypted - Secure Enclaves" to handle 'Attestation Protocol' and fixed typos [#421](https://github.com/dotnet/SqlClient/pull/421) [#397](https://github.com/dotnet/SqlClient/pull/397) +- Removed sync over async in `SNINpHandle.EnableSsl` [#474](https://github.com/dotnet/SqlClient/pull/474) +- Changed non-generic `ArrayList` to `List` in `SqlBulkCopy` [#457](https://github.com/dotnet/SqlClient/pull/457) +- Multiple performance improvements [#377](https://github.com/dotnet/SqlClient/pull/377) [#378](https://github.com/dotnet/SqlClient/pull/378) [#379](https://github.com/dotnet/SqlClient/pull/379) + +### Breaking Changes +- The driver will now perform Server Certificate validation when TLS encryption enforced by target Server, effective automatically on Azure connections [#391](https://github.com/dotnet/SqlClient/pull/391) +- `SqlDataReader.GetSchemaTable()` now returns empty `DataTable` instead of returning `null` [#419](https://github.com/dotnet/SqlClient/pull/419) + + +### Introducing EventSource tracing support +This release introduces support for capturing EventSource trace logs for debugging applications. In order to capture these traces, client applications must listen to events from SqlClient's EventSource implementation: + +"Microsoft.Data.SqlClient.EventSource" + +Supported Event Keywords are as under: + +| Keyword Name | Value | Description | +| ------------ | ----- | ----------- | +| ExecutionTrace | 1 | Turns on capturing Start/Stop events before and after command execution. | +| Trace | 2 | Turns on capturing basic application flow trace events. | +| Scope | 4 | Turns on capturing the entering and exiting events | +| NotificationTrace | 8 | Turns on capturing the `SqlNotification` trace events | +| NotificationScope | 16 | Turns on capturing the `SqlNotification` scope entering and exiting events | +| PoolerTrace | 32 | Turns on capturing connection pooling flow trace events. | +| PoolerScope | 64 | Turns on capturing connection pooling scope trace events. | +| AdvancedTrace | 128 | Turns on capturing advanced flow trace events. | +| AdvancedTraceBin | 256 | Turns on capturing advanced flow trace events with additional information. | +| CorrelationTrace | 512 | Turns on capturing correlation flow trace events. | +| StateDump | 1024 | Turns on capturing full state dump of `SqlConnection` | +| SNITrace | 2048 | Turns on capturing flow trace events from Managed Networking implementation (only applicable in .NET Core) | +| SNIScope | 4096 | Turns on capturing scope events from Managed Networking implementation (only applicable in .NET Core) | +||| + +### Enabling Managed networking on Windows +This release introduces a new AppContext switch "Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows" that enables use of Managed SNI on Windows for testing and debugging purposes. This switch will toggle driver's behavior to use Managed SNI in .NET Core 2.1+ and .NET Standard 2.0+ projects on Windows. + +To set switch from app startup, specify: + +```cs +AppContext.SetSwitch("Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true); +``` + +> [NOTE] **Known differences when compared to Native SNI.dll**: Managed SNI does not support non-domain Windows Authentication. + + +## Target Platform Support + +- .NET Framework 4.6+ +- .NET Core 2.1+ (Windows x86, Windows x64, Linux, macOS) +- .NET Standard 2.0+ (Windows x86, Windows x64, Linux, macOS) + +### Dependencies + +#### .NET Framework + +- Microsoft.Data.SqlClient.SNI 1.1.0+ +- Microsoft.Identity.Client 3.0.8 +- Microsoft.IdentityModel.Protocols.OpenIdConnect 5.6.0 +- Microsoft.IdentityModel.JsonWebTokens 5.6.0 + +#### .NET Core 2.1 + +- runtime.native.System.Data.SqlClient.sni 4.4.0 +- 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.7.1 +- Microsoft.IdentityModel.Protocols.OpenIdConnect 5.6.0 +- Microsoft.IdentityModel.JsonWebTokens 5.6.0 + +#### .NET Core 3.1 + +- runtime.native.System.Data.SqlClient.sni 4.4.0 +- 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.7.1 +- Microsoft.IdentityModel.Protocols.OpenIdConnect 5.6.0 +- Microsoft.IdentityModel.JsonWebTokens 5.6.0 + +#### .NET Standard + +- runtime.native.System.Data.SqlClient.sni 4.4.0 +- Microsoft.Win32.Registry 4.7.0 +- System.Buffers 4.5.0 +- System.Diagnostics.DiagnosticSource 4.7.0 +- System.Memory 4.5.3 +- System.Security.Principal.Windows 4.7.0 +- System.Text.Encoding.CodePages 4.7.0 +- System.Configuration.ConfigurationManager 4.7.0 +- Microsoft.Identity.Client 4.7.1 +- Microsoft.IdentityModel.Protocols.OpenIdConnect 5.6.0 +- Microsoft.IdentityModel.JsonWebTokens 5.6.0 diff --git a/release-notes/2.0/2.0.md b/release-notes/2.0/2.0.md index 3241ccb0fe..70dc4a465f 100644 --- a/release-notes/2.0/2.0.md +++ b/release-notes/2.0/2.0.md @@ -5,3 +5,4 @@ The following Microsoft.Data.SqlClient 2.0 preview releases have been shipped: | Release Date | Version | Notes | | :-- | :-- | :--: | | 2020/01/21 | 2.0.0-preview1.20021.1 | [release notes](2.0.0-preview1.md) | +| 2020/03/24 | 2.0.0-preview1.20084.1 | [release notes](2.0.0-preview2.md) | diff --git a/release-notes/2.0/README.md b/release-notes/2.0/README.md index 3241ccb0fe..70dc4a465f 100644 --- a/release-notes/2.0/README.md +++ b/release-notes/2.0/README.md @@ -5,3 +5,4 @@ The following Microsoft.Data.SqlClient 2.0 preview releases have been shipped: | Release Date | Version | Notes | | :-- | :-- | :--: | | 2020/01/21 | 2.0.0-preview1.20021.1 | [release notes](2.0.0-preview1.md) | +| 2020/03/24 | 2.0.0-preview1.20084.1 | [release notes](2.0.0-preview2.md) | From f2f64adf63fc547ff85b8f3493a6af12fdadf61c Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Tue, 24 Mar 2020 14:30:20 -0700 Subject: [PATCH 2/2] Apply suggestions from code review Co-Authored-By: David Engel Co-Authored-By: Karina Zhou --- CHANGELOG.md | 10 +++++----- release-notes/2.0/2.0.0-preview2.md | 18 +++++++++--------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 949cd1c40e..ed4008a425 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,20 +17,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Fixed - Fixed Access Token behavior in connection pool to perform string comparison [#443](https://github.com/dotnet/SqlClient/pull/443) -- Fixed concurrent connection speed issues when connecting with Azure Federated Authentication modes in .NET Core [#466](https://github.com/dotnet/SqlClient/pull/466) +- Fixed concurrent connection speed issues when connecting with Azure Active Directory Authentication modes in .NET Core [#466](https://github.com/dotnet/SqlClient/pull/466) - Fixed issues with `Password` persistence in Connection String [#453](https://github.com/dotnet/SqlClient/pull/453) ### Changes -- Updated all driver assemblies to become CLS Compliant [#396](https://github.com/dotnet/SqlClient/pull/396) -- Updated Bulk Copy error messages to also include Column, Row and non-encrypted Data information [#427](https://github.com/dotnet/SqlClient/pull/437) +- Updated all driver assemblies to be CLS Compliant [#396](https://github.com/dotnet/SqlClient/pull/396) +- Updated Bulk Copy error messages to also include Column, Row and non-encrypted Data information [#437](https://github.com/dotnet/SqlClient/pull/437) - Updated error messages for "Always Encrypted - Secure Enclaves" to handle 'Attestation Protocol' and fixed typos [#421](https://github.com/dotnet/SqlClient/pull/421) [#397](https://github.com/dotnet/SqlClient/pull/397) - Removed sync over async in `SNINpHandle.EnableSsl` [#474](https://github.com/dotnet/SqlClient/pull/474) - Changed non-generic `ArrayList` to `List` in `SqlBulkCopy` [#457](https://github.com/dotnet/SqlClient/pull/457) - Multiple performance improvements [#377](https://github.com/dotnet/SqlClient/pull/377) [#378](https://github.com/dotnet/SqlClient/pull/378) [#379](https://github.com/dotnet/SqlClient/pull/379) ### Breaking Changes -- The driver will now perform Server Certificate validation when TLS encryption enforced by target Server, effective automatically on Azure connections [#391](https://github.com/dotnet/SqlClient/pull/391) -- `SqlDataReader.GetSchemaTable()` now returns empty `DataTable` instead of returning `null` [#419](https://github.com/dotnet/SqlClient/pull/419) +- The driver will now perform Server Certificate validation when TLS encryption is enforced by the target Server, which is the default for Azure connections [#391](https://github.com/dotnet/SqlClient/pull/391) +- `SqlDataReader.GetSchemaTable()` now returns an empty `DataTable` instead of returning `null` [#419](https://github.com/dotnet/SqlClient/pull/419) ## [Stable Release 1.1.1] - 2020-02-14 diff --git a/release-notes/2.0/2.0.0-preview2.md b/release-notes/2.0/2.0.0-preview2.md index 68902fbadc..c83a72087a 100644 --- a/release-notes/2.0/2.0.0-preview2.md +++ b/release-notes/2.0/2.0.0-preview2.md @@ -15,11 +15,11 @@ This update brings the below changes over the previous release: ### Fixed - Fixed Access Token behavior in connection pool to perform string comparison [#443](https://github.com/dotnet/SqlClient/pull/443) -- Fixed concurrent connection speed issues when connecting with Azure Federated Authentication modes in .NET Core [#466](https://github.com/dotnet/SqlClient/pull/466) +- Fixed concurrent connection speed issues when connecting with Azure Active Directory Authentication modes in .NET Core [#466](https://github.com/dotnet/SqlClient/pull/466) - Fixed issues with `Password` persistence in Connection String [#453](https://github.com/dotnet/SqlClient/pull/453) ### Changes -- Updated all driver assemblies to become CLS Compliant [#396](https://github.com/dotnet/SqlClient/pull/396) +- Updated all driver assemblies to be CLS Compliant [#396](https://github.com/dotnet/SqlClient/pull/396) - Updated Bulk Copy error messages to also include Column, Row and non-encrypted Data information [#427](https://github.com/dotnet/SqlClient/pull/437) - Updated error messages for "Always Encrypted - Secure Enclaves" to handle 'Attestation Protocol' and fixed typos [#421](https://github.com/dotnet/SqlClient/pull/421) [#397](https://github.com/dotnet/SqlClient/pull/397) - Removed sync over async in `SNINpHandle.EnableSsl` [#474](https://github.com/dotnet/SqlClient/pull/474) @@ -27,7 +27,7 @@ This update brings the below changes over the previous release: - Multiple performance improvements [#377](https://github.com/dotnet/SqlClient/pull/377) [#378](https://github.com/dotnet/SqlClient/pull/378) [#379](https://github.com/dotnet/SqlClient/pull/379) ### Breaking Changes -- The driver will now perform Server Certificate validation when TLS encryption enforced by target Server, effective automatically on Azure connections [#391](https://github.com/dotnet/SqlClient/pull/391) +- The driver will now perform Server Certificate validation when TLS encryption is enforced by the target Server, which is the default for Azure connections [#391](https://github.com/dotnet/SqlClient/pull/391) - `SqlDataReader.GetSchemaTable()` now returns empty `DataTable` instead of returning `null` [#419](https://github.com/dotnet/SqlClient/pull/419) @@ -36,15 +36,15 @@ This release introduces support for capturing EventSource trace logs for debuggi "Microsoft.Data.SqlClient.EventSource" -Supported Event Keywords are as under: +Supported Event Keywords are: | Keyword Name | Value | Description | | ------------ | ----- | ----------- | | ExecutionTrace | 1 | Turns on capturing Start/Stop events before and after command execution. | | Trace | 2 | Turns on capturing basic application flow trace events. | -| Scope | 4 | Turns on capturing the entering and exiting events | -| NotificationTrace | 8 | Turns on capturing the `SqlNotification` trace events | -| NotificationScope | 16 | Turns on capturing the `SqlNotification` scope entering and exiting events | +| Scope | 4 | Turns on capturing enter and exit events | +| NotificationTrace | 8 | Turns on capturing `SqlNotification` trace events | +| NotificationScope | 16 | Turns on capturing `SqlNotification` scope enter and exit events | | PoolerTrace | 32 | Turns on capturing connection pooling flow trace events. | | PoolerScope | 64 | Turns on capturing connection pooling scope trace events. | | AdvancedTrace | 128 | Turns on capturing advanced flow trace events. | @@ -56,9 +56,9 @@ Supported Event Keywords are as under: ||| ### Enabling Managed networking on Windows -This release introduces a new AppContext switch "Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows" that enables use of Managed SNI on Windows for testing and debugging purposes. This switch will toggle driver's behavior to use Managed SNI in .NET Core 2.1+ and .NET Standard 2.0+ projects on Windows. +This release introduces a new AppContext switch "Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows" that enables the use of Managed SNI on Windows for testing and debugging purposes. This switch will toggle the driver's behavior to use Managed SNI in .NET Core 2.1+ and .NET Standard 2.0+ projects on Windows. -To set switch from app startup, specify: +To set the switch from app startup, specify: ```cs AppContext.SetSwitch("Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true);