Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .openpublishing.redirection.core.json
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,10 @@
"source_path_from_root": "/docs/core/compatibility/core-libraries/8.0/optimizeforreading-arg.md",
"redirect_url": "/dotnet/core/compatibility/8.0"
},
{
"source_path_from_root": "/docs/core/compatibility/core-libraries/10.0/ymm-embedded-rounding.md",
"redirect_url": "/dotnet/core/compatibility/10.0"
},
{
"source_path_from_root": "/docs/core/compatibility/corefx.md",
"redirect_url": "/dotnet/core/compatibility/3.0"
Expand Down Expand Up @@ -199,6 +203,10 @@
"source_path_from_root": "/docs/core/compatibility/sdk/8.0/tool-rollforward.md",
"redirect_url": "/dotnet/core/compatibility/8.0"
},
{
"source_path_from_root": "/docs/core/compatibility/sdk/10.0/version-requirements.md",
"redirect_url": "/dotnet/core/compatibility/10.0"
},
{
"source_path_from_root": "/docs/core/compatibility/serialization.md",
"redirect_url": "/dotnet/core/compatibility/serialization/5.0/binaryformatter-deserialize-rewraps-exceptions"
Expand Down
204 changes: 101 additions & 103 deletions docs/core/compatibility/10.0.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ The `IncludeOpenAPIAnalyzers` MSBuild property and its associated MVC API analyz

## Previous behavior

Previously, developers could set `<IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>` in their Web SDK projects to enable MVC API analyzers without any warnings or deprecation notices.
Previously, you could set `<IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>` in your Web SDK projects to enable MVC API analyzers without any warnings or deprecation notices.

```xml
<Project Sdk="Microsoft.NET.Sdk.Web">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@ For more information about the container image platforms available at .NET 10's

## Version introduced

.NET 10 Preview 1
.NET 10

## Previous behavior

.NET 9 and earlier default tags reference images based on Debian.
In .NET 9 and earlier versions, default tags referenced images based on Debian.

## New behavior

Default tags reference images based on Ubuntu.
Starting in .NET 10, default tags reference images based on Ubuntu.

## Type of breaking change

Expand Down
28 changes: 14 additions & 14 deletions docs/core/compatibility/core-libraries/10.0/activity-sampling.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,34 +12,34 @@ The <xref:System.Diagnostics.ActivitySamplingResult?displayProperty=nameWithType

When creating an `Activity` without a parent, `ActivitySamplingResult` drives whether the `Activity` is created and then how the `Recorded` and `IsAllDataRequested` properties are set:

|ActivitySamplingResult|Activity created|Activity.Recorded|Activity.IsAllDataRequested|
|---|---|---|---|
|None|No|||
|PropagationData|Yes|False|False|
|AllData|Yes|False|True|
|AllDataAndRecorded|Yes|True|True|
| ActivitySamplingResult | Activity created | Activity.Recorded | Activity.IsAllDataRequested |
|------------------------|------------------|-------------------|-----------------------------|
| None | No | | |
| PropagationData | Yes | False | False |
| AllData | Yes | False | True |
| AllDataAndRecorded | Yes | True | True |

It is also possible to create an `Activity` with a parent. The parent could be in the same process, or it could be a remote parent propagated to the current process.
It's also possible to create an `Activity` with a parent. The parent could be in the same process, or it could be a remote parent propagated to the current process.

## Previous behavior

Previously, when creating an `Activity` as `PropagationData` with a parent marked as `Recorded`, the `Recorded` and `IsAllDataRequested` properties were set as follows:

|ActivitySamplingResult|Activity created|Activity.Recorded|Activity.IsAllDataRequested|
|---|---|---|---|
|PropagationData|Yes|True|False|
| ActivitySamplingResult | Activity created | Activity.Recorded | Activity.IsAllDataRequested |
|------------------------|------------------|-------------------|-----------------------------|
| PropagationData | Yes | True | False |

## New behavior

Starting in .NET 10, when you create an `Activity` as `PropagationData` with a parent marked as `Recorded`, the `Recorded` and `IsAllDataRequested` properties are set as follows:

|ActivitySamplingResult|Activity created|Activity.Recorded|Activity.IsAllDataRequested|
|---|---|---|---|
|PropagationData|Yes|False|False|
| ActivitySamplingResult | Activity created | Activity.Recorded | Activity.IsAllDataRequested |
|------------------------|------------------|-------------------|-----------------------------|
| PropagationData | Yes | False | False |

## Version introduced

.NET 10 Preview 1
.NET 10

## Type of breaking change

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ ms.custom: https://github.com/dotnet/docs/issues/44886

## Version introduced

.NET 10 Preview 1
.NET 10

## Previous behavior

The `AsyncEnumerable` class in the [community-maintained `System.Linq.Async` package](https://www.nuget.org/packages/System.Linq.Async) provided LINQ support for <xref:System.Collections.Generic.IAsyncEnumerable`1>.
Previously, the `AsyncEnumerable` class in the [community-maintained `System.Linq.Async` package](https://www.nuget.org/packages/System.Linq.Async) provided LINQ support for <xref:System.Collections.Generic.IAsyncEnumerable`1>.

## New behavior

Expand All @@ -40,7 +40,7 @@ If `System.Linq.Async` is consumed indirectly via another package, avoid ambigui

```xml
<PackageReference Include="System.Linq.Async" Version="6.0.1">
<ExcludeAssets>compile</ExcludeAssets>
<ExcludeAssets>compile</ExcludeAssets>
</PackageReference>
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ title: "Breaking change - BufferedStream.WriteByte no longer performs implicit f
description: "Learn about the breaking change in .NET 10 where BufferedStream.WriteByte no longer performs an implicit flush when the internal buffer is full."
ms.date: 10/13/2025
ai-usage: ai-assisted
ms.custom: https://github.com/dotnet/docs/issues/496356
dev_langs:
- "csharp"
- "vb"
Expand All @@ -15,7 +14,7 @@ The <xref:System.IO.BufferedStream.WriteByte(System.Byte)?displayProperty=nameWi

## Version introduced

.NET 10 Preview 4
.NET 10

## Previous behavior

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ In C# 14 and later, methods with `ReadOnlySpan<T>` or `Span<T>` parameters can p

## Version introduced

.NET 10 Preview 1
.NET 10

## Type of breaking change

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ The default trace context propagator has been switched from the legacy propagato

## Version introduced

.NET 10 Preview 4
.NET 10

## Previous behavior

The <xref:System.Diagnostics.DistributedContextPropagator.CreateDefaultPropagator?displayProperty=nameWithType> method returned an instance of the legacy propagator. By default, <xref:System.Diagnostics.DistributedContextPropagator.Current?displayProperty=nameWithType> was set to this legacy instance.
Previously, the <xref:System.Diagnostics.DistributedContextPropagator.CreateDefaultPropagator?displayProperty=nameWithType> method returned an instance of the legacy propagator. By default, <xref:System.Diagnostics.DistributedContextPropagator.Current?displayProperty=nameWithType> was set to this legacy instance.

## New behavior

The <xref:System.Diagnostics.DistributedContextPropagator.CreateDefaultPropagator?displayProperty=nameWithType> method now returns an instance of the W3C propagator. By default, <xref:System.Diagnostics.DistributedContextPropagator.Current?displayProperty=nameWithType> is set to this W3C instance.
Starting in .NET 10, the <xref:System.Diagnostics.DistributedContextPropagator.CreateDefaultPropagator?displayProperty=nameWithType> method returns an instance of the W3C propagator. By default, <xref:System.Diagnostics.DistributedContextPropagator.Current?displayProperty=nameWithType> is set to this W3C instance.

Example of setting the default propagator to the legacy propagator:

Expand All @@ -30,7 +30,7 @@ DistributedContextPropagator.Current = DistributedContextPropagator.CreatePreW3C

## Type of breaking change

This is a [behavioral change](../../categories.md#behavioral-change).
This change is a [behavioral change](../../categories.md#behavioral-change).

## Reason for change

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The <xref:System.ComponentModel.DefaultValueAttribute.%23ctor(System.Type,System

## Version introduced

.NET 10 Preview 7
.NET 10

## Previous behavior

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ For cgroup file systems, `DriveFormat` returns `cgroup`/`cgroup2`. For the SELin

## Version introduced

.NET 10 Preview 6
.NET 10

## Type of breaking change

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ To accurately reflect nullability, the `[MemberNotNullWhen()]` attribute is appl

## Version introduced

.NET 10 RC 1
.NET 10

## Previous behavior

Expand Down
4 changes: 2 additions & 2 deletions docs/core/compatibility/core-libraries/10.0/generic-math.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ Shift operations in generic math now have consistent behavior across all built-i

## Previous behavior

The behavior when utilizing generic math to perform a shift on a `T` could differ based on the type. In some cases, it appropriately masked the shift amount by `sizeof(T) - 1`. And in other cases, there was no masking. This meant that "overshifting" (such as shifting a `byte` by 8) could result in different answers than expected.
Previously, the behavior when utilizing generic math to perform a shift on a `T` could differ based on the type. In some cases, it appropriately masked the shift amount by `sizeof(T) - 1`. And in other cases, there was no masking. This meant that "overshifting" (such as shifting a `byte` by 8) could result in different answers than expected.

## New behavior

The implementations were updated to mask the shift amount, as appropriate, to ensure consistent behavior across all built-in integer types and with the behavior documented by the <xref:System.Numerics.IShiftOperators`3?displayProperty=nameWithType> interface.

## Version introduced

.NET 10 Preview 1
.NET 10

## Type of breaking change

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Applying explicit `Size` to a struct decorated with <xref:System.Runtime.Compile

## Version introduced

.NET 10 Preview 7
.NET 10

## Previous behavior

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Previously, .NET used <xref:System.DirectoryServices.Protocols.BerConverter?disp

## Previous behavior

As a result of using <xref:System.DirectoryServices.Protocols.BerConverter?displayProperty=nameWithType>, the parsing of <xref:System.DirectoryServices.Protocols.DirectoryControl?displayProperty=nameWithType> objects was fairly loose:
Previously, as a result of using <xref:System.DirectoryServices.Protocols.BerConverter?displayProperty=nameWithType>, the parsing of <xref:System.DirectoryServices.Protocols.DirectoryControl?displayProperty=nameWithType> objects was fairly loose:

- The ASN.1 tags of each value weren't checked.
- Trailing data after the end of the parsed DirectoryControl was ignored, as was trailing data within an ASN.1 SEQUENCE.
Expand All @@ -24,7 +24,7 @@ While not a breaking change, Windows always encoded ASN.1 tags with a four-byte

## New behavior

The DirectoryControl parsing is much more stringent, and is now consistent across platforms and versions:
Starting in .NET 10, the DirectoryControl parsing is much more stringent, and is now consistent across platforms and versions:

- ASN.1 tags are now checked.
- Trailing data is no longer permitted.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ This update ensures that MacCatalyst version components retrieved from the OS ar

## Previous behavior

The build component in `Version` was not previously normalized, which led to incorrect version checks on MacCatalyst when only two components (major and minor) were provided. This resulted in invalid version checks.
Previously, the build component in `Version` was not normalized, which led to incorrect version checks on MacCatalyst when only two components (major and minor) were provided. This resulted in invalid version checks.

## New behavior

The MacCatalyst build component is now normalized to `0`, ensuring consistent version checks. The revision component is always set to `-1`, as it is not specified on MacCatalyst or iOS.
Starting in .NET 10, the MacCatalyst build component is normalized to `0`, ensuring consistent version checks. The revision component is always set to `-1`, as it is not specified on MacCatalyst or iOS.

## Version introduced

.NET 10 Preview 1
.NET 10

## Type of breaking change

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This change reverts the termination signal handling behavior to what it used to

## Version introduced

.NET 10 Preview 5
.NET 10

## Previous behavior

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ All Arm64 SVE nonfaulting load APIs have been updated to include a `mask` parame

## Version introduced

.NET 10 Preview 7
.NET 10

## Previous behavior

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Other minor fixes have been made to <xref:System.Formats.Tar> to prioritize roun

## Version introduced

.NET 10 Preview 5
.NET 10

## Previous behavior

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ In .NET 10, the <xref:System.Security.Cryptography.Cose.CoseSigner.Key?displayPr

## Version introduced

.NET 10 Preview 7
.NET 10

## Previous behavior

`CoseSigner.Key` couldn't be `null`. It had type `AsymmetricAlgorithm`.
Previously, `CoseSigner.Key` couldn't be `null`. It had type `AsymmetricAlgorithm`.

## New behavior

`CoseSigner.Key` can be `null`. Its type is `AsymmetricAlgorithm?`.
Starting in .NET 10, `CoseSigner.Key` can be `null`. Its type is `AsymmetricAlgorithm?`.

```csharp
using RSA rsaKey = RSA.Create();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ Some methods and properties in the `[Experimental]` post-quantum cryptography (P

## Version introduced

.NET 10 RC 1
.NET 10

## Previous behavior

Previously, you could call methods like `ImportMLDsaSecretKey` and `ImportSlhDsaSecretKey`, and you could access properties like `SecretKeySizeInBytes`.

## New behavior

Starting in .NET 10 RC 1, you must call methods like `ImportMLDsaPrivateKey` or `ImportSlhDsaPrivateKey`, and access properties like `PrivateKeySizeInBytes`.
Starting in .NET 10, you must call methods like `ImportMLDsaPrivateKey` or `ImportSlhDsaPrivateKey`, and access properties like `PrivateKeySizeInBytes`.

## Type of breaking change

Expand Down
Loading