Skip to content

Latest commit

 

History

History
135 lines (107 loc) · 8.33 KB

5.0.0-preview3.md

File metadata and controls

135 lines (107 loc) · 8.33 KB

Release Notes

Microsoft.Data.SqlClient 5.0.0-preview3 released 16 June 2022

This update brings the below changes over the previous release:

Contributors

Thanks to the following public contributors. Their efforts toward this project are very much appreciated.

Breaking changes over preview release v5.0.0-preview2

  • Added a dependency on the Microsoft.SqlServer.Server package. This new dependency may cause namespace conflicts if your application references that namespace and still has package references (direct or indirect) to System.Data.SqlClient from .NET Core.
  • Dropped classes from the Microsoft.Data.SqlClient.Server namespace and replaced them with supported types from the Microsoft.SqlServer.Server package.#1585 The affected classes and enums are:
    • Microsoft.Data.SqlClient.Server.IBinarySerialize -> Microsoft.SqlServer.Server.IBinarySerialize
    • Microsoft.Data.SqlClient.Server.InvalidUdtException -> Microsoft.SqlServer.Server.InvalidUdtException
    • Microsoft.Data.SqlClient.Server.SqlFacetAttribute -> Microsoft.SqlServer.Server.SqlFacetAttribute
    • Microsoft.Data.SqlClient.Server.SqlFunctionAttribute -> Microsoft.SqlServer.Server.SqlFunctionAttribute
    • Microsoft.Data.SqlClient.Server.SqlMethodAttribute -> Microsoft.SqlServer.Server.SqlMethodAttribute
    • Microsoft.Data.SqlClient.Server.SqlUserDefinedAggregateAttribute -> Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute
    • Microsoft.Data.SqlClient.Server.SqlUserDefinedTypeAttribute -> Microsoft.SqlServer.Server.SqlUserDefinedTypeAttribute
    • (enum) Microsoft.Data.SqlClient.Server.DataAccessKind -> Microsoft.SqlServer.Server.DataAccessKind
    • (enum) Microsoft.Data.SqlClient.Server.Format -> Microsoft.SqlServer.Server.Format
    • (enum) Microsoft.Data.SqlClient.Server.SystemDataAccessKind -> Microsoft.SqlServer.Server.SystemDataAccessKind

Added

  • Added support for TDS 8. To use TDS 8, users should specify Encrypt=Strict in the connection string. #1608 Read more
  • Added support for specifying Server SPN and Failover Server SPN on the connection. #1607 Read more
  • Added support for aliases when targeting .NET Core on Windows. #1588 Read more

Fixed

  • Fixed naming, order, and formatting for SqlDiagnosticsListener on .NET Core and .NET. [#1637] (dotnet#1637)
  • Fixed NullReferenceException during Azure Active Directory authentication. [#1625] (dotnet#1625)
  • Added CommandText length validation when using stored procedure command types. #1484
  • Fixed GetSchema("StructuredTypeMembers") to return correct schema information. [#1500] (dotnet#1500), #1639
  • Fixed NullReferenceException when using SqlDependency.Start against an Azure SQL Database.[#1294] (dotnet#1294)
  • Send the correct retained transaction descriptor in the MARS TDS Header when there is no current transaction on .NET 5+ and .NET Core. [#1624] (dotnet#1624)
  • Parallelize SSRP requests on Linux and macOS when MultiSubNetFailover is specified. [#1578] (dotnet#1578)
  • Adjust the default ConnectRetryCount against Azure Synapse OnDemand endpoints [#1626] (dotnet#1626)

Changed

  • Code health improvements #1353 #1354 #1525 #1186
  • Update Azure Identity dependency from 1.5.0 to 1.6.0.#1611
  • Improved Regex for SqlCommandSet [#1548] (dotnet#1548)
  • Rework on TdsParserStateObjectManaged with nullable annotations. [#1555] (dotnet#1555)

TDS 8 Enhanced Security

To use TDS 8, specify Encrypt=Strict in the connection string. Strict mode disables TrustServerCertificate (always treated as False in Strict mode). HostNameInCertificate has been added to help some Strict mode scenarios. TDS 8 begins and continues all server communication inside a secure, encrypted TLS connection.

New Encrypt values have been added to clarify connection encryption behavior. Encrypt=Mandatory is equavalent to Encrypt=True and encrypts connections during the TDS connection negotiation. Encrypt=Optional is equivalent to Encrypt=False and only encrypts the connection if the server tells the client that encryption is required during the TDS connection negotiation.

HostNameInCertificate can be specified in the connection string when using aliases to connect with encryption to a server that has a server certificate with a different name or alternate subject name than the name used by the client to identify the server (DNS aliases, for example). Example usage: HostNameInCertificate=MyDnsAliasName

Server SPN

When connecting in an environment that has unique domain/forest topography, the ServerSPN/Server SPN and FailoverServerSPN/Failover Server SPN connection string settings can be used to override the auto-generated server SPNs used in the library when authenticating with integrated authentication in a domain environment.

Support for Aliases

Users can configure Aliases by using the SQL Server Configuration Manager. These are stored in the Windows registry and are already supported when targeting .NET Framework. This release brings support for aliases when targeting .NET or .NET Core on Windows.

Target Platform Support

  • .NET Framework 4.6.2+ (Windows x86, Windows x64)
  • .NET Core 3.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.runtime 5.0.0-preview3.22165.1
  • Azure.Identity 1.6.0.0
  • Microsoft.Identity.Client 4.43.2.0
  • Microsoft.IdentityModel.JsonWebTokens 6.8.0.0
  • Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0.0
  • System.Buffers 4.0.3.0
  • System.Configuration 4.0.0.0
  • System.Data 4.0.0.0
  • System.EnterpriseServices 4.0.0.0
  • System.IdentityModel.Tokens.Jwt 6.8.0.0
  • System.Runtime.Caching 4.0.0.0
  • System.Runtime.InteropServices.RuntimeInformation 4.0.2.0
  • System.Runtime.Serialization 4.0.0.0
  • System.Transactions 4.0.0.0
  • System.Xml 4.0.0.0

.NET Core

  • Microsoft.Data.SqlClient.SNI.runtime 5.0.0-preview3.22165.1
  • Azure.Identity 1.6.0
  • Microsoft.Identity.Client 4.43.2
  • Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0
  • Microsoft.IdentityModel.JsonWebTokens 6.8.0
  • Microsoft.SqlServer.Server 1.0.0
  • Microsoft.Win32.Registry 5.0.0
  • System.Buffers 4.5.1
  • System.Configuration.ConfigurationManager 5.0.0
  • System.Diagnostics.DiagnosticSource 5.0.0
  • System.IO 4.3.0
  • System.Runtime.Caching 5.0.0
  • System.Text.Encoding.CodePages 5.0.0
  • System.Text.Encodings.Web 4.7.2
  • System.Resources.ResourceManager 4.3.0
  • System.Security.Cryptography.Cng 5.0.0
  • System.Security.Principal.Windows 5.0.0

.NET Standard

  • Microsoft.Data.SqlClient.SNI.runtime 5.0.0-preview3.22165.1
  • Azure.Identity 1.6.0
  • Microsoft.Identity.Client 4.43.2
  • Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0
  • Microsoft.IdentityModel.JsonWebTokens 6.8.0
  • Microsoft.SqlServer.Server 1.0.0
  • Microsoft.Win32.Registry 5.0.0
  • System.Buffers 4.5.1
  • System.Configuration.ConfigurationManager 5.0.0
  • System.IO 4.3.0
  • System.Runtime.Caching 5.0.0
  • System.Text.Encoding.CodePages 5.0.0
  • System.Text.Encodings.Web 4.7.2
  • System.Resources.ResourceManager 4.3.0
  • System.Runtime.Loader 4.3.0
  • System.Security.Cryptography.Cng 5.0.0
  • System.Security.Principal.Windows 5.0.0
  • System.Security.Permissions 5.0.0
  • NetStandard.Library 2.0.3