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
3 changes: 2 additions & 1 deletion aspnetcore/fundamentals/validation.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -639,6 +639,7 @@ Whichever approach is adopted, denote the presence of the workaround for a futur
* <xref:blazor/forms/validation>
* <xref:blazor/forms/validation-client-side>
* <xref:blazor/forms/validation-advanced>
* [Upgrade from the experimental `ValidatableTypeAttribute`/`SkipValidationAttribute` in .NET 10](xref:migration/100-to-110#upgrade-from-the-experimental-validatabletypeattribute-and-skipvalidationattribute-in-net-10)
* <xref:fundamentals/minimal-apis>
* [Validation support in Minimal APIs](xref:fundamentals/minimal-apis#validation-support-in-minimal-apis)
* <xref:fundamentals/localization/make-content-localizable>
Expand Down
3 changes: 2 additions & 1 deletion aspnetcore/migration/100-to-110.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
14 changes: 13 additions & 1 deletion aspnetcore/migration/100-to-110/includes/blazor.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
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

<xref:Microsoft.Extensions.Validation.ValidatableTypeAttribute> and <xref:Microsoft.Extensions.Validation.SkipValidationAttribute> 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 `<NoWarn>` property in the project file.
* Replace any locally declared `Microsoft.Extensions.Validation.Embedded.ValidatableType` or `Microsoft.Extensions.Validation.Embedded.SkipValidation` attribute with the real <xref:Microsoft.Extensions.Validation.ValidatableTypeAttribute> and <xref:Microsoft.Extensions.Validation.SkipValidationAttribute>, and remove the `global using Microsoft.Extensions.Validation.Embedded;` statement or the `<Using Include="Microsoft.Extensions.Validation.Embedded" />` 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.
4 changes: 1 addition & 3 deletions aspnetcore/release-notes/aspnetcore-11.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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.
Expand Down
10 changes: 10 additions & 0 deletions aspnetcore/release-notes/aspnetcore-11/includes/blazor.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Comment thread
guardrex marked this conversation as resolved.

<xref:Microsoft.Extensions.Validation.ValidatableTypeAttribute> and <xref:Microsoft.Extensions.Validation.SkipValidationAttribute> 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)
* <xref:fundamentals/validation?view=aspnetcore-11.0#nested-objects-and-collections>
* <xref:fundamentals/validation?view=aspnetcore-11.0#force-generate-validatable-type-information>

This file was deleted.

Loading