diff --git a/aspnetcore/fundamentals/validation.md b/aspnetcore/fundamentals/validation.md index 859088370082..681b9a17761d 100644 --- a/aspnetcore/fundamentals/validation.md +++ b/aspnetcore/fundamentals/validation.md @@ -3,7 +3,7 @@ title: Validation in ASP.NET Core ai-usage: ai-assisted description: Use Microsoft.Extensions.Validation in ASP.NET Core to validate models. monikerRange: '>= aspnetcore-10.0' -ms.date: 09/23/2026 +ms.date: 10/16/2026 uid: fundamentals/validation --- # Validation in ASP.NET Core @@ -639,6 +639,7 @@ Whichever approach is adopted, denote the presence of the workaround for a futur * * * +* [Upgrade from the experimental `ValidatableTypeAttribute`/`SkipValidationAttribute` in .NET 10](xref:migration/100-to-110#upgrade-from-the-experimental-validatabletypeattribute-and-skipvalidationattribute-in-net-10) * * [Validation support in Minimal APIs](xref:fundamentals/minimal-apis#validation-support-in-minimal-apis) * diff --git a/aspnetcore/migration/100-to-110.md b/aspnetcore/migration/100-to-110.md index def746553c4e..17e6ef7adde8 100644 --- a/aspnetcore/migration/100-to-110.md +++ b/aspnetcore/migration/100-to-110.md @@ -1,7 +1,8 @@ --- title: Migrate from ASP.NET Core in .NET 10 to ASP.NET Core in .NET 11 +ai-usage: ai-assisted description: Learn how to migrate an ASP.NET Core in .NET 10 to ASP.NET Core in .NET 11. -ms.date: 07/15/2026 +ms.date: 10/19/2026 uid: migration/100-to-110 --- # Migrate from ASP.NET Core in .NET 10 to ASP.NET Core in .NET 11 diff --git a/aspnetcore/migration/100-to-110/includes/blazor.md b/aspnetcore/migration/100-to-110/includes/blazor.md index 770723640a5c..4c18f3a51f55 100644 --- a/aspnetcore/migration/100-to-110/includes/blazor.md +++ b/aspnetcore/migration/100-to-110/includes/blazor.md @@ -85,4 +85,16 @@ AppContext.SetSwitch( The switch only controls the rendered HTML element; sort and page state is read from and written to the URL query string regardless of the setting. -For more information, see [QuickGrid sorting and pagination controls render as links](/aspnet/core/breaking-changes/11/quickgrid-controls-render-as-links). \ No newline at end of file +For more information, see [QuickGrid sorting and pagination controls render as links](/aspnet/core/breaking-changes/11/quickgrid-controls-render-as-links). + +### Upgrade from the experimental `ValidatableTypeAttribute` and `SkipValidationAttribute` in .NET 10 + + and were published as *experimental* in .NET 10. In .NET 11 or later, they aren't experimental. Referencing them from any project, including a plain class library that uses the `Microsoft.NET.Sdk` SDK, no longer produces the `ASP0029` code analysis warning. + +Apps upgrading from .NET 10 can remove the workarounds that warning required: + +* Delete `#pragma warning disable ASP0029` and `#pragma warning restore ASP0029` directives around uses of the attributes. +* Remove `ASP0029` from any `` property in the project file. +* Replace any locally declared `Microsoft.Extensions.Validation.Embedded.ValidatableType` or `Microsoft.Extensions.Validation.Embedded.SkipValidation` attribute with the real and , and remove the `global using Microsoft.Extensions.Validation.Embedded;` statement or the `` item that made it visible. + +Leaving the suppressions in place is harmless, so an upgraded app doesn't fail because of them. Removing them keeps the project free of suppressions that no longer correspond to a diagnostic. \ No newline at end of file diff --git a/aspnetcore/release-notes/aspnetcore-11.md b/aspnetcore/release-notes/aspnetcore-11.md index 8ec670d042fa..a51e52392fac 100644 --- a/aspnetcore/release-notes/aspnetcore-11.md +++ b/aspnetcore/release-notes/aspnetcore-11.md @@ -2,7 +2,7 @@ title: What's new in ASP.NET Core in .NET 11 ai-usage: ai-assisted description: Learn about the new features in ASP.NET Core in .NET 11. -ms.date: 09/22/2026 +ms.date: 10/19/2026 uid: aspnetcore-11 --- # What's new in ASP.NET Core in .NET 11 @@ -49,8 +49,6 @@ This section describes new features for Minimal APIs. [!INCLUDE[](~/release-notes/aspnetcore-11/includes/validation-localization.md)] -[!INCLUDE[](~/release-notes/aspnetcore-11/includes/validation-attributes-no-longer-experimental.md)] - ## OpenAPI This section describes new features for OpenAPI. diff --git a/aspnetcore/release-notes/aspnetcore-11/includes/blazor.md b/aspnetcore/release-notes/aspnetcore-11/includes/blazor.md index fd80c27205bc..45449fa9a999 100644 --- a/aspnetcore/release-notes/aspnetcore-11/includes/blazor.md +++ b/aspnetcore/release-notes/aspnetcore-11/includes/blazor.md @@ -1305,3 +1305,13 @@ var restoredBlocks = await agent.RestoreAsync(); ``` Passing a thread to `UIAgent` enables new completed turns to be persisted but doesn't automatically restore earlier turns. For MAF-hosted AG-UI agents, see [AG-UI conversation continuity](/agent-framework/integrations/by-component/ui/ag-ui/getting-started#conversation-continuity). + +### Validation attributes are no longer experimental + + and from the [`Microsoft.Extensions.Validation` package](https://www.nuget.org/packages/Microsoft.Extensions.Validation) are no longer marked experimental. If you suppressed `ASP0029` to use either attribute, remove the suppression. + +For more information, see the following resources: + +* [Upgrade from the experimental `ValidatableTypeAttribute` and `SkipValidationAttribute` in .NET 10](xref:migration/100-to-110#upgrade-from-the-experimental-validatabletypeattribute-and-skipvalidationattribute-in-net-10) +* +* diff --git a/aspnetcore/release-notes/aspnetcore-11/includes/validation-attributes-no-longer-experimental.md b/aspnetcore/release-notes/aspnetcore-11/includes/validation-attributes-no-longer-experimental.md deleted file mode 100644 index c1f4d257806a..000000000000 --- a/aspnetcore/release-notes/aspnetcore-11/includes/validation-attributes-no-longer-experimental.md +++ /dev/null @@ -1,8 +0,0 @@ -### Validation attributes are no longer experimental - -The and attributes from the [`Microsoft.Extensions.Validation` NuGet package](https://www.nuget.org/packages/Microsoft.Extensions.Validation) are no longer marked experimental. If you suppressed `ASP0029` to use either attribute, remove the suppression. - -For more information, see the following resources: - -* -*