Skip to content

Commit 8640bfb

Browse files
authored
Release notes for v5.0.0 (#1681)
1 parent 73875c9 commit 8640bfb

File tree

5 files changed

+243
-12
lines changed

5 files changed

+243
-12
lines changed

CHANGELOG.md

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,30 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
66

7+
## [Stable release 5.0.0] - 2022-08-05
8+
9+
This update brings the below changes over the previous release:
10+
11+
### Added
12+
13+
- Added support for `TDS 8`. To use TDS 8, users should specify `Encrypt=Strict` in the connection string. [#1608](https://github.com/dotnet/SqlClient/pull/1608)
14+
- Added `TDS 8` version for TDSLogin. [#1657](https://github.com/dotnet/SqlClient/pull/1657)
15+
16+
### Fixed
17+
18+
- Fixed null SqlBinary as rowversion. [#1688](https://github.com/dotnet/SqlClient/pull/1688)
19+
- Fixed **KeyNotFoundException** for the `FailoverPartner` key on SQL servers with availability group configured. [#1614](https://github.com/dotnet/SqlClient/pull/1614)
20+
- Fixed small inconsistency between netcore and netfx for `EncryptionOptions`. [#1672](https://github.com/dotnet/SqlClient/pull/1672)
21+
- Fixed `Microsoft.SqlServer.Server` netcore project package reference. [#1654](https://github.com/dotnet/SqlClient/pull/1654)
22+
23+
### Changed
24+
25+
- Updated `AuthProviderInfo` struct to be matched the changes in native SNI for `TDS 8` server certificate validation. [#1680](https://github.com/dotnet/SqlClient/pull/1680)
26+
- Updated default system protocol for `TDS 8` on managed code. [#1678](https://github.com/dotnet/SqlClient/pull/1678)
27+
- Updated `Microsoft.Data.SqlClient.SNI` (.NET Framework dependency) and `Microsoft.Data.SqlClient.SNI.runtime` (.NET Core/Standard dependency) version to `5.0.0`. [#1680](https://github.com/dotnet/SqlClient/pull/1680)
28+
- Updated **IdentityModel** dependency from 6.8.0 to 6.21.0 and **IdentityClient** from 4.32.2 to 4.45.0. [#1646](https://github.com/dotnet/SqlClient/pull/1646)
29+
- Changed from union overlay design to reflected interfaces for SqlTypes. [1647](https://github.com/dotnet/SqlClient/pull/1647)
30+
731
## [Preview Release 5.0.0-preview3.22168.1] - 2022-06-16
832

933
This update brings the below changes over the previous release:
@@ -30,21 +54,21 @@ This update brings the below changes over the previous release:
3054

3155
### Fixed
3256

33-
- Fixed naming, order, and formatting for `SqlDiagnosticsListener` on .NET Core and .NET. [#1637] (https://github.com/dotnet/SqlClient/pull/1637)
34-
- Fixed NullReferenceException during Azure Active Directory authentication. [#1625] (https://github.com/dotnet/SqlClient/pull/1625)
57+
- Fixed naming, order, and formatting for `SqlDiagnosticsListener` on .NET Core and .NET. [#1637](https://github.com/dotnet/SqlClient/pull/1637)
58+
- Fixed NullReferenceException during Azure Active Directory authentication. [#1625](https://github.com/dotnet/SqlClient/pull/1625)
3559
- Added CommandText length validation when using stored procedure command types. [#1484](https://github.com/dotnet/SqlClient/pull/1484)
36-
- Fixed `GetSchema("StructuredTypeMembers")` to return correct schema information. [#1500] (https://github.com/dotnet/SqlClient/pull/1500), [#1639](https://github.com/dotnet/SqlClient/pull/1639)
37-
- Fixed NullReferenceException when using `SqlDependency.Start` against an Azure SQL Database.[#1294] (https://github.com/dotnet/SqlClient/pull/1294)
38-
- Send the correct retained transaction descriptor in the MARS TDS Header when there is no current transaction on .NET 5+ and .NET Core. [#1624] (https://github.com/dotnet/SqlClient/pull/1624)
39-
- Parallelize SSRP requests (instance name resolution) on Linux and macOS when MultiSubNetFailover is specified. [#1578] (https://github.com/dotnet/SqlClient/pull/1578)
40-
- Adjust the default ConnectRetryCount against Azure Synapse OnDemand endpoints [#1626] (https://github.com/dotnet/SqlClient/pull/1626)
60+
- Fixed `GetSchema("StructuredTypeMembers")` to return correct schema information. [#1500](https://github.com/dotnet/SqlClient/pull/1500), [#1639](https://github.com/dotnet/SqlClient/pull/1639)
61+
- Fixed NullReferenceException when using `SqlDependency.Start` against an Azure SQL Database.[#1294](https://github.com/dotnet/SqlClient/pull/1294)
62+
- Send the correct retained transaction descriptor in the MARS TDS Header when there is no current transaction on .NET 5+ and .NET Core. [#1624](https://github.com/dotnet/SqlClient/pull/1624)
63+
- Parallelize SSRP requests (instance name resolution) on Linux and macOS when MultiSubNetFailover is specified. [#1578](https://github.com/dotnet/SqlClient/pull/1578)
64+
- Adjust the default ConnectRetryCount against Azure Synapse OnDemand endpoints [#1626](https://github.com/dotnet/SqlClient/pull/1626)
4165

4266
### Changed
4367

4468
- Code health improvements [#1353](https://github.com/dotnet/SqlClient/pull/1353) [#1354](https://github.com/dotnet/SqlClient/pull/1354) [#1525](https://github.com/dotnet/SqlClient/pull/1525) [#1186](https://github.com/dotnet/SqlClient/pull/1186)
4569
- Update Azure Identity dependency from 1.5.0 to 1.6.0.[#1611](https://github.com/dotnet/SqlClient/pull/1611)
46-
- Improved Regex for SqlCommandSet [#1548] (https://github.com/dotnet/SqlClient/pull/1548)
47-
- Rework on `TdsParserStateObjectManaged` with nullable annotations. [#1555] (https://github.com/dotnet/SqlClient/pull/1555)
70+
- Improved Regex for SqlCommandSet [#1548](https://github.com/dotnet/SqlClient/pull/1548)
71+
- Rework on `TdsParserStateObjectManaged` with nullable annotations. [#1555](https://github.com/dotnet/SqlClient/pull/1555)
4872

4973
## [Preview Release 5.0.0-preview2.22096.2] - 2022-04-06
5074

release-notes/5.0/5.0.0.md

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
# Release Notes
2+
3+
## Microsoft.Data.SqlClient 5.0.0 released 5 August 2022
4+
5+
This update includes the following changes over the 4.1 release:
6+
7+
### Breaking changes
8+
9+
- Added a dependency on the [Microsoft.SqlServer.Server](https://github.com/dotnet/SqlClient/tree/main/src/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.
10+
- Dropped classes from the `Microsoft.Data.SqlClient.Server` namespace and replaced them with supported types from the [Microsoft.SqlServer.Server](https://github.com/dotnet/SqlClient/tree/main/src/Microsoft.SqlServer.Server) package.[#1585](https://github.com/dotnet/SqlClient/pull/1585) The affected classes and enums are:
11+
- Microsoft.Data.SqlClient.Server.IBinarySerialize -> Microsoft.SqlServer.Server.IBinarySerialize
12+
- Microsoft.Data.SqlClient.Server.InvalidUdtException -> Microsoft.SqlServer.Server.InvalidUdtException
13+
- Microsoft.Data.SqlClient.Server.SqlFacetAttribute -> Microsoft.SqlServer.Server.SqlFacetAttribute
14+
- Microsoft.Data.SqlClient.Server.SqlFunctionAttribute -> Microsoft.SqlServer.Server.SqlFunctionAttribute
15+
- Microsoft.Data.SqlClient.Server.SqlMethodAttribute -> Microsoft.SqlServer.Server.SqlMethodAttribute
16+
- Microsoft.Data.SqlClient.Server.SqlUserDefinedAggregateAttribute -> Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute
17+
- Microsoft.Data.SqlClient.Server.SqlUserDefinedTypeAttribute -> Microsoft.SqlServer.Server.SqlUserDefinedTypeAttribute
18+
- (enum) Microsoft.Data.SqlClient.Server.DataAccessKind -> Microsoft.SqlServer.Server.DataAccessKind
19+
- (enum) Microsoft.Data.SqlClient.Server.Format -> Microsoft.SqlServer.Server.Format
20+
- (enum) Microsoft.Data.SqlClient.Server.SystemDataAccessKind -> Microsoft.SqlServer.Server.SystemDataAccessKind
21+
- Dropped support for .NET Framework 4.6.1 [#1574](https://github.com/dotnet/SqlClient/pull/1574)
22+
23+
24+
### Added
25+
26+
- Added support for `TDS 8`. To use TDS 8, users should specify Encrypt=Strict in the connection string. [#1608](https://github.com/dotnet/SqlClient/pull/1608) [Read more](#tds-8-enhanced-security)
27+
- Added `TDS 8` version for TDSLogin. [#1657](https://github.com/dotnet/SqlClient/pull/1657)
28+
- Added support for specifying Server SPN and Failover Server SPN on the connection. [#1607](https://github.com/dotnet/SqlClient/pull/1607) [Read more](#server-spn)
29+
- Added support for aliases when targeting .NET Core on Windows. [#1588](https://github.com/dotnet/SqlClient/pull/1588) [Read more](#support-for-aliases)
30+
- Added support for `SqlDataSourceEnumerator` on Windows. [#1430](https://github.com/dotnet/SqlClient/pull/1430), [Read more](#sql-data-source-enumerator-support)
31+
- Added new attestation protocol `None` option to forgo enclave attestation when using VBS enclaves. [#1425](https://github.com/dotnet/SqlClient/pull/1425) and [#1419](https://github.com/dotnet/SqlClient/pull/1419), [Read more](#new-attestation-protocol-none)
32+
- Added a new AppContext switch to suppress insecure TLS warnings. [#1457](https://github.com/dotnet/SqlClient/pull/1457), [Read more](#suppress-insecure-tls-warnings)
33+
34+
### Fixed
35+
36+
- Fixed null SqlBinary as rowversion. [#1688](https://github.com/dotnet/SqlClient/pull/1688)
37+
- Fixed **KeyNotFoundException** for the `FailoverPartner` key on SQL servers with availability group configured. [#1614](https://github.com/dotnet/SqlClient/pull/1614)
38+
- Fixed naming, order, and formatting for `SqlDiagnosticsListener` on .NET Core and .NET. [#1637](https://github.com/dotnet/SqlClient/pull/1637)
39+
- Fixed NullReferenceException during Azure Active Directory authentication. [#1625](https://github.com/dotnet/SqlClient/pull/1625)
40+
- Added CommandText length validation when using stored procedure command types. [#1484](https://github.com/dotnet/SqlClient/pull/1484)
41+
- Fixed `GetSchema("StructuredTypeMembers")` to return correct schema information. [#1500](https://github.com/dotnet/SqlClient/pull/1500), [#1639](https://github.com/dotnet/SqlClient/pull/1639)
42+
- Fixed **NullReferenceException** when using `SqlDependency.Start` against an Azure SQL Database. [#1294](https://github.com/dotnet/SqlClient/pull/1294)
43+
- Fixed transaction descriptor in the MARS TDS Header when there is no current transaction on .NET 5+ and .NET Core. [#1624](https://github.com/dotnet/SqlClient/pull/1624)
44+
- Parallelize SSRP requests on Linux and macOS when MultiSubNetFailover is specified. [#1578](https://github.com/dotnet/SqlClient/pull/1578)
45+
- Fixed connection failure by skipping Certificate Revocation List (CRL) check during authentication. [#1559](https://github.com/dotnet/SqlClient/pull/1559)
46+
- Fixed thread safety issue for `GetEnclaveProvider` by converting dictionary to concurrent dictionary. [#1451](https://github.com/dotnet/SqlClient/pull/1451)
47+
48+
### Changed
49+
50+
- Updated `AuthProviderInfo` struct to be matched the changes in native SNI for `TDS 8` server certificate validation. [#1680](https://github.com/dotnet/SqlClient/pull/1680)
51+
- Updated default system protocol for `TDS 8` on managed code. [#1678](https://github.com/dotnet/SqlClient/pull/1678)
52+
- Updated `Microsoft.Data.SqlClient.SNI` (.NET Framework dependency) and `Microsoft.Data.SqlClient.SNI.runtime` (.NET Core/Standard dependency) version to `5.0.0`. [#1608](https://github.com/dotnet/SqlClient/pull/1608)
53+
- Changed encoding UTF-7 to ASCII for SSRP Broadcast. [#1671](https://github.com/dotnet/SqlClient/pull/1671)
54+
- Updated `IdentityModel` dependency from 6.8.0 to 6.21.0 and `IdentityClient` from 4.32.2 to 4.45.0. [#1646](https://github.com/dotnet/SqlClient/pull/1646)
55+
- Updated **Azure Identity** dependency from 1.5.0 to 1.6.0. [#1611](https://github.com/dotnet/SqlClient/pull/1611)
56+
- Improved Regex for `SqlCommandSet`. [#1548](https://github.com/dotnet/SqlClient/pull/1548)
57+
- Adjust the default **ConnectRetryCount** against Azure Synapse OnDemand endpoints. [#1626](https://github.com/dotnet/SqlClient/pull/1626)
58+
- Updated `Azure.Identity` version to `1.5.0` and `Microsoft.Identity.Client` version to `4.30.1`. [#1462](https://github.com/dotnet/SqlClient/pull/1462)
59+
- Replaced `AlwaysEncryptedAttestationException` with `SqlException`. [#1515](https://github.com/dotnet/SqlClient/pull/1515)
60+
- Improved error message when adding wrong type to `SqlParameterCollection`. [#1547](https://github.com/dotnet/SqlClient/pull/1547)
61+
- Changed SQL server codenames to version names in the code. [#1439](https://github.com/dotnet/SqlClient/pull/1439)
62+
- Changed `Array.Copy` to `Buffer.BlockCopy` for byte arrays. [#1366](https://github.com/dotnet/SqlClient/pull/1366)
63+
- Various code improvements: [#1197](https://github.com/dotnet/SqlClient/pull/1197), [#1313](https://github.com/dotnet/SqlClient/pull/1313), [#1330](https://github.com/dotnet/SqlClient/pull/1330), [#1366](https://github.com/dotnet/SqlClient/pull/1366), [#1435](https://github.com/dotnet/SqlClient/pull/1435), [#1478](https://github.com/dotnet/SqlClient/pull/1478), [#1353](https://github.com/dotnet/SqlClient/pull/1353), [#1354](https://github.com/dotnet/SqlClient/pull/1354), [#1525](https://github.com/dotnet/SqlClient/pull/1525), [#1186](https://github.com/dotnet/SqlClient/pull/1186), [#1343](https://github.com/dotnet/SqlClient/pull/1343), [#1370](https://github.com/dotnet/SqlClient/pull/1370), [#1371](https://github.com/dotnet/SqlClient/pull/1371), [#1438](https://github.com/dotnet/SqlClient/pull/1438), [#1483](https://github.com/dotnet/SqlClient/pull/1483), [#1351](https://github.com/dotnet/SqlClient/pull/1351), [#1452](https://github.com/dotnet/SqlClient/pull/1452), [#1364](https://github.com/dotnet/SqlClient/pull/1364),[#1337](https://github.com/dotnet/SqlClient/pull/1337), [#1346](https://github.com/dotnet/SqlClient/pull/1346), [#1339](https://github.com/dotnet/SqlClient/pull/1339), [#1555](https://github.com/dotnet/SqlClient/pull/1555)
64+
65+
66+
### TDS 8 Enhanced Security
67+
68+
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.
69+
70+
New Encrypt values have been added to clarify connection encryption behavior. Encrypt=Mandatory is equivalent 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.
71+
72+
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
73+
74+
### Server SPN
75+
76+
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.
77+
78+
### Support for Aliases
79+
80+
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.
81+
82+
83+
### SQL Data Source Enumerator support
84+
Provides a mechanism for enumerating all available instances of SQL Server within the local network.
85+
```cs
86+
using Microsoft.Data.Sql;
87+
88+
static void Main()
89+
{
90+
// Retrieve the enumerator instance and then the data.
91+
SqlDataSourceEnumerator instance =
92+
SqlDataSourceEnumerator.Instance;
93+
System.Data.DataTable table = instance.GetDataSources();
94+
95+
// Display the contents of the table.
96+
DisplayData(table);
97+
98+
Console.WriteLine("Press any key to continue.");
99+
Console.ReadKey();
100+
}
101+
102+
private static void DisplayData(System.Data.DataTable table)
103+
{
104+
foreach (System.Data.DataRow row in table.Rows)
105+
{
106+
foreach (System.Data.DataColumn col in table.Columns)
107+
{
108+
Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
109+
}
110+
Console.WriteLine("============================");
111+
}
112+
}
113+
```
114+
115+
### New Attestation protocol `None`
116+
A new attestation protocol called `None` is allowed in the connection string. This protocol will allow users to forgo enclave attestation for `VBS` enclaves. When this protocol is set, the enclave attestation URL property is optional.
117+
118+
Connection string example:
119+
120+
```cs
121+
//Attestation protocol NONE with no URL
122+
"Data Source = {server}; Initial Catalog = {db}; Column Encryption Setting = Enabled; Attestation Protocol = None;"
123+
124+
```
125+
126+
### Suppress insecure TLS warnings
127+
A security warning is output to the console if a TLS version less than 1.2 is used to negotiate encryption with the server. This warning can be suppressed on connections where `Encrypt = false` by enabling the following AppContext switch at application startup:
128+
```cs
129+
Switch.Microsoft.Data.SqlClient.SuppressInsecureTLSWarning
130+
```
131+
132+
## Target Platform Support
133+
134+
- .NET Framework 4.6.2+ (Windows x86, Windows x64)
135+
- .NET Core 3.1+ (Windows x86, Windows x64, Windows ARM64, Windows ARM, Linux, macOS)
136+
- .NET Standard 2.0+ (Windows x86, Windows x64, Windows ARM64, Windows ARM, Linux, macOS)
137+
138+
### Dependencies
139+
140+
#### .NET Framework
141+
142+
- Microsoft.Data.SqlClient.SNI.runtime 5.0.0
143+
- Azure.Identity 1.6.0
144+
- Microsoft.Identity.Client 4.45.0
145+
- Microsoft.IdentityModel.JsonWebTokens 6.21.0
146+
- Microsoft.IdentityModel.Protocols.OpenIdConnect 6.21.0
147+
- System.Buffers 4.5.1
148+
- System.Configuration.ConfigurationManager 5.0.0
149+
- System.IO 4.3.0
150+
- System.Runtime.InteropServices.RuntimeInformation 4.3.0
151+
- System.Security.Cryptography.Algorithms 4.3.1
152+
- System.Security.Cryptography.Primitives 4.3.0
153+
- System.Text.Encoding.Web 4.7.2
154+
155+
#### .NET Core
156+
157+
- Microsoft.Data.SqlClient.SNI.runtime 5.0.0
158+
- Azure.Identity 1.6.0
159+
- Microsoft.Identity.Client 4.45.0
160+
- Microsoft.IdentityModel.JsonWebTokens 6.21.0
161+
- Microsoft.IdentityModel.Protocols.OpenIdConnect 6.21.0
162+
- Microsoft.SqlServer.Server 1.0.0
163+
- Microsoft.Win32.Registry 5.0.0
164+
- System.Buffers 4.5.1
165+
- System.Configuration.ConfigurationManager 5.0.0
166+
- System.Diagnostics.DiagnosticSource 5.0.0
167+
- System.IO 4.3.0
168+
- System.Runtime.Caching 5.0.0
169+
- System.Text.Encoding.CodePages 5.0.0
170+
- System.Text.Encodings.Web 4.7.2
171+
- System.Resources.ResourceManager 4.3.0
172+
- System.Security.Cryptography.Cng 5.0.0
173+
- System.Security.Principal.Windows 5.0.0
174+
175+
#### .NET Standard
176+
177+
- Microsoft.Data.SqlClient.SNI.runtime 5.0.0
178+
- Azure.Identity 1.6.0
179+
- Microsoft.Identity.Client 4.45.0
180+
- Microsoft.IdentityModel.Protocols.OpenIdConnect 6.21.0
181+
- Microsoft.IdentityModel.JsonWebTokens 6.21.0
182+
- Microsoft.SqlServer.Server 1.0.0
183+
- Microsoft.Win32.Registry 5.0.0
184+
- System.Buffers 4.5.1
185+
- System.Configuration.ConfigurationManager 5.0.0
186+
- System.IO 4.3.0
187+
- System.Runtime.Caching 5.0.0
188+
- System.Text.Encoding.CodePages 5.0.0
189+
- System.Text.Encodings.Web 4.7.2
190+
- System.Runtime.Loader 4.3.0
191+
- System.Resources.ResourceManager 4.3.0
192+
- System.Security.Cryptography.Cng 5.0.0
193+
- System.Security.Principal.Windows 5.0.0

release-notes/5.0/5.0.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
# Microsoft.Data.SqlClient 5.0 Releases
22

3+
The following Microsoft.Data.SqlClient 5.0 stable releases have been shipped:
4+
5+
| Release Date | Version | Notes |
6+
| :-- | :-- | :--: |
7+
| 2022/08/05 | 5.0.0 | [release notes](5.0.0.md) |
8+
39
The following Microsoft.Data.SqlClient 5.0 preview releases have been shipped:
410

511
| Release Date | Version | Notes |
612
| :-- | :-- | :--: |
713
| 2022/06/16 | 5.0.0-preview3.22168.1 | [release notes](5.0.0-preview3.md) |
814
| 2022/04/06 | 5.0.0-preview2.22096.2 | [release notes](5.0.0-preview2.md) |
9-
| 2022/03/09 | 5.0.0-preview1.22069.12 | [release notes](5.0.0-preview1.md) |
15+
| 2022/03/09 | 5.0.0-preview1.22069.1 | [release notes](5.0.0-preview1.md) |

0 commit comments

Comments
 (0)