-
Notifications
You must be signed in to change notification settings - Fork 292
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Release notes for v2.1.0-preview1 (#706)
Co-authored-by: Karina Zhou <v-jizho2@microsoft.com> Co-authored-by: Johnny Pham <23270162+johnnypham@users.noreply.github.com> Co-authored-by: David Engel <dengel@magnitude.com>
- Loading branch information
1 parent
0e71544
commit 11b9480
Showing
5 changed files
with
250 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,202 @@ | ||
# Release Notes | ||
|
||
## Microsoft.Data.SqlClient 2.1.0-preview1.20235.1 released 21 August 2020 | ||
|
||
This update brings the below changes over the previous release: | ||
|
||
### Added | ||
- 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-and-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 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 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) | ||
|
||
### 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) | ||
|
||
### 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) | ||
|
||
## New features over Stable release v2.0 | ||
|
||
### Cross-Platform support for Always Encrypted and 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** | | ||
|
||
### 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=<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<DeviceCodeResult, Task> deviceCodeFlowCallbackMethod) | ||
} | ||
``` | ||
|
||
### 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<IWin32Window> iWin32WindowFunc); | ||
|
||
// For .NET Standard targeted applications only | ||
public void SetParentActivityOrWindowFunc(Func<object> parentActivityOrWindowFunc); | ||
|
||
// For .NET Framework, .NET Core and .NET Standard targeted applications | ||
public void SetCustomWebUi(ICustomWebUi customWebUi); | ||
} | ||
``` | ||
|
||
### 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); | ||
``` | ||
|
||
### 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. | ||
|
||
|
||
## 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.0 | ||
- Microsoft.Identity.Client 4.14.0 | ||
- Microsoft.IdentityModel.Protocols.OpenIdConnect 5.6.0 | ||
- Microsoft.IdentityModel.JsonWebTokens 5.6.0 | ||
|
||
#### .NET Core 2.1 | ||
|
||
- Microsoft.Data.SqlClient.SNI.runtime 2.1.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.14.0 | ||
- Microsoft.IdentityModel.Protocols.OpenIdConnect 5.6.0 | ||
- Microsoft.IdentityModel.JsonWebTokens 5.6.0 | ||
|
||
#### .NET Core 3.1 | ||
|
||
- Microsoft.Data.SqlClient.SNI.runtime 2.1.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.14.0 | ||
- Microsoft.IdentityModel.Protocols.OpenIdConnect 5.6.0 | ||
- Microsoft.IdentityModel.JsonWebTokens 5.6.0 | ||
|
||
#### .NET Standard 2.0 | ||
|
||
- Microsoft.Data.SqlClient.SNI.runtime 2.1.0 | ||
- 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.14.0 | ||
- Microsoft.IdentityModel.Protocols.OpenIdConnect 5.6.0 | ||
- Microsoft.IdentityModel.JsonWebTokens 5.6.0 | ||
|
||
#### .NET Standard 2.1 | ||
|
||
- Microsoft.Data.SqlClient.SNI.runtime 2.1.0 | ||
- 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.14.0 | ||
- Microsoft.IdentityModel.Protocols.OpenIdConnect 5.6.0 | ||
- Microsoft.IdentityModel.JsonWebTokens 5.6.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# Microsoft.Data.SqlClient 2.1 Releases | ||
|
||
The following Microsoft.Data.SqlClient 2.1 preview releases have been shipped: | ||
|
||
| Release Date | Version | Notes | | ||
| :-- | :-- | :--: | | ||
| 2020/08/21 | 2.1.0-preview1.20235.1 | [release notes](2.1.0-preview1.md) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# Microsoft.Data.SqlClient 2.1 Releases | ||
|
||
The following Microsoft.Data.SqlClient 2.1 preview releases have been shipped: | ||
|
||
| Release Date | Version | Notes | | ||
| :-- | :-- | :--: | | ||
| 2020/08/21 | 2.1.0-preview1.20235.1 | [release notes](2.1.0-preview1.md) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters