diff --git a/release-notes/11.0/preview/preview7/README.md b/release-notes/11.0/preview/preview7/README.md new file mode 100644 index 0000000000..89a997f2cf --- /dev/null +++ b/release-notes/11.0/preview/preview7/README.md @@ -0,0 +1,39 @@ +# .NET 11 Preview 7 - Release Notes + +.NET 11 Preview 7 release notes. Find more information on new features released in .NET 11 Preview 7 by browsing through the release notes below: + +- [Libraries](./libraries.md) +- [Runtime](./runtime.md) +- [SDK](./sdk.md) +- [MSBuild](./msbuild.md) +- [NuGet](./nuget.md) + +## Languages + +- [C#](./csharp.md) +- [F#](./fsharp.md) + +## Workloads, Libraries, & More + +- [.NET MAUI](./dotnetmaui.md) +- [ASP.NET Core](./aspnetcore.md) +- [Container images](./containers.md) +- [EF Core & Data](./efcore.md) +- [Windows Forms](./winforms.md) +- [WPF](./wpf.md) + +## Get Started + +Instructions on getting started with .NET 11 can be found in the [getting started guide](../../get-started.md). Installers and binaries for .NET 11 Preview 7 are available from [dotnet.microsoft.com](https://dotnet.microsoft.com/download/dotnet/11.0) and [.NET 11 Releases](../../README.md). + +## Stay up-to-date + +You can find a detailed overview of all new features in .NET 11: + +- [What's new in C#](https://learn.microsoft.com/dotnet/csharp/whats-new/) +- [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/) +- [What's new in Entity Framework Core](https://learn.microsoft.com/ef/core/what-is-new/) +- [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/) +- [What's new in WPF](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/) + +The latest .NET 11 release is always available at [dotnet.microsoft.com](https://dotnet.microsoft.com/download/dotnet/11.0) and [.NET 11 Releases](../../README.md). diff --git a/release-notes/11.0/preview/preview7/aspnetcore.md b/release-notes/11.0/preview/preview7/aspnetcore.md new file mode 100644 index 0000000000..bcb95a890a --- /dev/null +++ b/release-notes/11.0/preview/preview7/aspnetcore.md @@ -0,0 +1,440 @@ +# ASP.NET Core in .NET 11 Preview 7 - Release Notes + +.NET 11 Preview 7 includes new ASP.NET Core features and improvements: + +- [Auto pause Blazor circuits on inactivity](#auto-pause-blazor-circuits-on-inactivity) +- [Cache Blazor SSR output with `CacheView`](#cache-blazor-ssr-output-with-cacheview) +- [New Blazor analyzers](#new-blazor-analyzers) +- [Blazor `Virtualize` no longer requires an `ItemComparer`](#blazor-virtualize-no-longer-requires-an-itemcomparer) +- [`QuickGrid` supports `InitialItemIndex` and `ScrollToItemAsync`](#quickgrid-supports-initialitemindex-and-scrolltoitemasync) +- [`wasm-tools` uses Emscripten 6](#wasm-tools-uses-emscripten-6) +- [Razor accepts literal attributes for union-typed component parameters](#razor-accepts-literal-attributes-for-union-typed-component-parameters) +- [Blazor SSR client-side form validation improvements](#blazor-ssr-client-side-form-validation-improvements) +- [Validation localization is built in](#validation-localization-is-built-in) +- [Validation attributes are no longer experimental](#validation-attributes-are-no-longer-experimental) +- [SignalR .NET client supports auth refresh after redirects](#signalr-net-client-supports-auth-refresh-after-redirects) +- [Consistent authorization metadata across the stack](#consistent-authorization-metadata-across-the-stack) +- [OpenAPI Server-Sent Events in OpenAPI 3.2](#openapi-server-sent-events-in-openapi-32) +- [TLS channel-binding token access from `ITlsConnectionFeature`](#tls-channel-binding-token-access-from-itlsconnectionfeature) +- [Breaking changes](#breaking-changes) +- [Bug fixes](#bug-fixes) +- [Community contributors](#community-contributors) + +ASP.NET Core updates in .NET 11: + +- [What's new in ASP.NET Core in .NET 11](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-11) + +## Auto pause Blazor circuits on inactivity + +Interactive Server circuits can now pause themselves automatically when the browser tab is hidden, releasing server resources until the user comes back ([dotnet/aspnetcore #67098](https://github.com/dotnet/aspnetcore/pull/67098)). Preview 6 added [`Circuit.RequestCircuitPauseAsync`](https://github.com/dotnet/aspnetcore/issues/64886) so the server could pause a circuit on demand. Preview 7 adds an opt-in package that detects when to request a pause after a configurable inactivity delay while a page is hidden. + +To enable support for auto pausing circuits, add the `Microsoft.AspNetCore.Components.Server.AutoPause` package and configure it for the app via `AddAutoPause` on `BrowserOptions`: + +```xml + +``` + +```csharp +app.MapRazorComponents() + .AddInteractiveServerRenderMode() + .WithBrowserOptions(options => + { + options.AddAutoPause(pause => + { + pause.Enabled = true; // default + pause.HiddenDelay = TimeSpan.FromSeconds(30); // default is 2 minutes + }); + }); +``` + +Auto-pause is deferred by default in some situations when a pause could cause data loss or interrupt work in progress. These situations include a text input or `contenteditable` element whose value differs from its default (including inside shadow DOM and same-origin iframes), an `