[release-notes] ASP.NET Core in .NET 11 Preview 4 - #10389

Merged
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore
May 8, 2026
Merged

[release-notes] ASP.NET Core in .NET 11 Preview 4#10389
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore

Conversation

@danroth27

Copy link
Copy Markdown
Member

ASP.NET Core release notes for .NET 11 Preview 4.

Targets the milestone base branch #10388. Merging this PR
into release-notes/11.0-preview4 adds aspnetcore.md to the milestone.

Generated end-to-end by the release-notes skill. AI-authored content;
please review for accuracy, resolve any inline <!-- TODO --> placeholders,
and then mark this PR ready for review.

cc @danroth27

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 3 commits April 30, 2026 07:00
Live-tested every feature against the installed
11.0.100-preview.4.26224.122 build with reflection + sample apps:
* Resolve TLS TODO: confirm ITlsHandshakeFeature.Exception property name.
* OpenAPI file results: note .Produces<FileContentHttpResult>() annotation
is required for the binary schema to appear (PR #64562 fires from
metadata, not auto-inference).
* Endpoint filter on binding failure: drop the inaccurate
ValueTask<object?> claim (PR #64539 applies to any return type), and
call out RouteHandlerOptions.ThrowOnBadRequest = false so the filter
observes the 400 in Development mode.
Filed dotnet/aspnetcore#66541 for a Virtualize prepend edge case
(scroll-anchor regression when `_itemsBefore == 0`); release-notes claim
left as-is — the bug only affects the case where the user has not yet
scrolled the rendered window past index 0.
Circuit-pause and `mcpserver` template remain documented; both PRs were
merged late in the cycle and are expected to land in a Preview 4 servicing
build.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* HTTP QUERY (#65714) is OpenAPI-only; reword and rename heading.
* Virtualize: clarify #65951 covers height-changes-above-viewport
(no API change). Add separate section for #66521's new
AnchorMode parameter, including ItemComparer guidance for
reference-type items.
* Add a Runtime-async section for #66449 (backport of #66200).
Removes the pre-filtering note that excluded it.
Feedback from BrennanConroy and ilonatommy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Missed in initial pass: dotnet/aspnetcore#65885 fixes the Blazor
Web Worker template failing in published WASM apps because workers
don't inherit the page's import map. Belongs alongside the existing
WebWorker template entries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 5 commits May 1, 2026 15:58
* Drop backport PR # (use original #66200 only)
* Add a call to action for developers to test their apps and
report regressions caused by runtime-async enablement.
Feedback from BrennanConroy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…eal CircuitHandler pattern
Verified against 11.0.0-preview.4.26230.115: there is no public registry
of active circuits. The supported discovery path is
CircuitHandler.OnConnectionUpAsync. Updated the example to track circuits
in a CircuitHandler and drain them via the captured references.
Also clarify return-value semantics and that onPauseRequested is a
JS-side option on Blazor.start().
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents how to opt in to the new Blazor Gateway (PR dotnet/aspnetcore#65982)
in a standalone Blazor WebAssembly app: swapping the DevServer reference for
Microsoft.AspNetCore.Components.Gateway, configuring YARP proxying to backend
APIs, and exposing a runtime config endpoint to the client. Links to the
GatewayDemo sample in danroth27/AspNetCore11Samples for an end-to-end setup.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sample was restructured to live in BlazorWasmFeatures/ alongside sibling
BackendApi/ and Gateway/ projects (replacing the GatewayDemo/ subtree).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Microsoft.AspNetCore.Components.Gateway package isn't being produced on
the build feeds (the Web SDK defaults IsPackable to false, silently no-op'ing
Pack). A fix is up at dotnet/aspnetcore#66579 but won't make Preview 4, so
remove the section and TOC entry; we'll bring it back when the package ships.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27

Copy link
Copy Markdown
MemberAuthor

Update: pulling the Blazor Gateway section back out of the Preview 4 release notes for now. The package isn't being produced on the build feeds — root cause turned out to be that Microsoft.NET.Sdk.Web defaults IsPackable to false, so the Gateway project's Pack target silently no-ops despite IsShippingPackage=true and a custom NuspecFile. One-line fix is up at dotnet/aspnetcore#66579, but it won't make Preview 4. We'll bring the content back once the package actually ships.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated

Apps that use OpenTelemetry or hot reload aren't affected — the feature switches default on in those configurations.

## Runtime-async enabled for shared framework libraries

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @agocke in case you want to provide input on the messaging here.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
- Remove duplicate 'Thank you @kilifu' line in HTTP QUERY section.
- Add UseTlsClientHelloListener snippet to the TLS section.
- Split 'OpenAPI and minimal API improvements' into two sections so
the endpoint-filter bullet (not OpenAPI-related) stands on its own.
- Remove the agent-generated 'Filtered features' HTML comment block.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
CopilotAIand others added 3 commits May 6, 2026 16:18
- HTTP QUERY: replace 'first-class' with 'known' (per @halter73), and
expand with OpenAPI 3.2 'query' Path Item field details and the
'OpenApiVersion'/'x-oai-additionalOperations' note (per @mikekistler).
- HTTP QUERY follow-up sentence: lowercase 'get'/'post' to match OpenAPI
spec casing (per @mikekistler).
- TLS section: replace standalone snippet with combined snippet that
also demonstrates 'ITlsHandshakeFeature.Exception' via connection
middleware, and ensures 'UseTlsClientHelloListener' is called before
'UseHttps' (per @DeagleGross + @halter73 + @BrennanConroy).
- Endpoint filters: drop the redundant short-circuit sentence, clarify
'ThrowOnBadRequest' default in non-Development environments, and call
out the 10.0.8 backport (per @halter73).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Expand HTTP QUERY snippet with OpenApiVersion=3.2 setup and show generated
output for both 3.2 (inline `query`) and 3.0/3.1 (`x-oai-additionalOperations`).
- Fix article agreement: `a x-oai-additionalOperations` -> `an x-oai-additionalOperations`.
- Correct the Virtualize AnchorMode descriptions to match the XML doc comments
on the enum (Beginning = news feed/notification UX, End = chat/log auto-scroll
UX, default is Beginning, `[Flags]` so they can be combined). Update the
example to use `notifications` to match the corrected scenario.
- Promote the Blazor Web Worker template rename + `InvokeVoidAsync` + cancellation/
timeout additions to its own section instead of a Bug fixes bullet.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The two JSON snippets above already show exactly where QUERY appears in the
generated document for both 3.2 and 3.0/3.1, so the trailing prose is now redundant.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27
danroth27 merged commit 23c0684 into release-notes/11.0-preview4May 8, 2026
7 of 9 checks passed
@danroth27
danroth27 deleted the release-notes/11.0-preview4-aspnetcore branch May 8, 2026 21:11

@mikekistlermikekistler left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. 👍

I spent a bunch of time looking at the File results type item. I think it is correct but I think we will want to expand on this when we put this into the docs.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@danroth27@halter73@BrennanConroy@DeagleGross@ilonatommy@mikekistler@dariatiurina
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[release-notes] ASP.NET Core in .NET 11 Preview 4 - #10389

Merged
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore
May 8, 2026
Merged

[release-notes] ASP.NET Core in .NET 11 Preview 4#10389
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore

Conversation

@danroth27

Copy link
Copy Markdown
Member

ASP.NET Core release notes for .NET 11 Preview 4.

Targets the milestone base branch #10388. Merging this PR
into release-notes/11.0-preview4 adds aspnetcore.md to the milestone.

Generated end-to-end by the release-notes skill. AI-authored content;
please review for accuracy, resolve any inline <!-- TODO --> placeholders,
and then mark this PR ready for review.

cc @danroth27

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 3 commits April 30, 2026 07:00
Live-tested every feature against the installed
11.0.100-preview.4.26224.122 build with reflection + sample apps:
* Resolve TLS TODO: confirm ITlsHandshakeFeature.Exception property name.
* OpenAPI file results: note .Produces<FileContentHttpResult>() annotation
is required for the binary schema to appear (PR #64562 fires from
metadata, not auto-inference).
* Endpoint filter on binding failure: drop the inaccurate
ValueTask<object?> claim (PR #64539 applies to any return type), and
call out RouteHandlerOptions.ThrowOnBadRequest = false so the filter
observes the 400 in Development mode.
Filed dotnet/aspnetcore#66541 for a Virtualize prepend edge case
(scroll-anchor regression when `_itemsBefore == 0`); release-notes claim
left as-is — the bug only affects the case where the user has not yet
scrolled the rendered window past index 0.
Circuit-pause and `mcpserver` template remain documented; both PRs were
merged late in the cycle and are expected to land in a Preview 4 servicing
build.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* HTTP QUERY (#65714) is OpenAPI-only; reword and rename heading.
* Virtualize: clarify #65951 covers height-changes-above-viewport
(no API change). Add separate section for #66521's new
AnchorMode parameter, including ItemComparer guidance for
reference-type items.
* Add a Runtime-async section for #66449 (backport of #66200).
Removes the pre-filtering note that excluded it.
Feedback from BrennanConroy and ilonatommy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Missed in initial pass: dotnet/aspnetcore#65885 fixes the Blazor
Web Worker template failing in published WASM apps because workers
don't inherit the page's import map. Belongs alongside the existing
WebWorker template entries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 5 commits May 1, 2026 15:58
* Drop backport PR # (use original #66200 only)
* Add a call to action for developers to test their apps and
report regressions caused by runtime-async enablement.
Feedback from BrennanConroy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…eal CircuitHandler pattern
Verified against 11.0.0-preview.4.26230.115: there is no public registry
of active circuits. The supported discovery path is
CircuitHandler.OnConnectionUpAsync. Updated the example to track circuits
in a CircuitHandler and drain them via the captured references.
Also clarify return-value semantics and that onPauseRequested is a
JS-side option on Blazor.start().
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents how to opt in to the new Blazor Gateway (PR dotnet/aspnetcore#65982)
in a standalone Blazor WebAssembly app: swapping the DevServer reference for
Microsoft.AspNetCore.Components.Gateway, configuring YARP proxying to backend
APIs, and exposing a runtime config endpoint to the client. Links to the
GatewayDemo sample in danroth27/AspNetCore11Samples for an end-to-end setup.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sample was restructured to live in BlazorWasmFeatures/ alongside sibling
BackendApi/ and Gateway/ projects (replacing the GatewayDemo/ subtree).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Microsoft.AspNetCore.Components.Gateway package isn't being produced on
the build feeds (the Web SDK defaults IsPackable to false, silently no-op'ing
Pack). A fix is up at dotnet/aspnetcore#66579 but won't make Preview 4, so
remove the section and TOC entry; we'll bring it back when the package ships.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27

Copy link
Copy Markdown
MemberAuthor

Update: pulling the Blazor Gateway section back out of the Preview 4 release notes for now. The package isn't being produced on the build feeds — root cause turned out to be that Microsoft.NET.Sdk.Web defaults IsPackable to false, so the Gateway project's Pack target silently no-ops despite IsShippingPackage=true and a custom NuspecFile. One-line fix is up at dotnet/aspnetcore#66579, but it won't make Preview 4. We'll bring the content back once the package actually ships.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated

Apps that use OpenTelemetry or hot reload aren't affected — the feature switches default on in those configurations.

## Runtime-async enabled for shared framework libraries

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @agocke in case you want to provide input on the messaging here.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
- Remove duplicate 'Thank you @kilifu' line in HTTP QUERY section.
- Add UseTlsClientHelloListener snippet to the TLS section.
- Split 'OpenAPI and minimal API improvements' into two sections so
the endpoint-filter bullet (not OpenAPI-related) stands on its own.
- Remove the agent-generated 'Filtered features' HTML comment block.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
CopilotAIand others added 3 commits May 6, 2026 16:18
- HTTP QUERY: replace 'first-class' with 'known' (per @halter73), and
expand with OpenAPI 3.2 'query' Path Item field details and the
'OpenApiVersion'/'x-oai-additionalOperations' note (per @mikekistler).
- HTTP QUERY follow-up sentence: lowercase 'get'/'post' to match OpenAPI
spec casing (per @mikekistler).
- TLS section: replace standalone snippet with combined snippet that
also demonstrates 'ITlsHandshakeFeature.Exception' via connection
middleware, and ensures 'UseTlsClientHelloListener' is called before
'UseHttps' (per @DeagleGross + @halter73 + @BrennanConroy).
- Endpoint filters: drop the redundant short-circuit sentence, clarify
'ThrowOnBadRequest' default in non-Development environments, and call
out the 10.0.8 backport (per @halter73).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Expand HTTP QUERY snippet with OpenApiVersion=3.2 setup and show generated
output for both 3.2 (inline `query`) and 3.0/3.1 (`x-oai-additionalOperations`).
- Fix article agreement: `a x-oai-additionalOperations` -> `an x-oai-additionalOperations`.
- Correct the Virtualize AnchorMode descriptions to match the XML doc comments
on the enum (Beginning = news feed/notification UX, End = chat/log auto-scroll
UX, default is Beginning, `[Flags]` so they can be combined). Update the
example to use `notifications` to match the corrected scenario.
- Promote the Blazor Web Worker template rename + `InvokeVoidAsync` + cancellation/
timeout additions to its own section instead of a Bug fixes bullet.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The two JSON snippets above already show exactly where QUERY appears in the
generated document for both 3.2 and 3.0/3.1, so the trailing prose is now redundant.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27
danroth27 merged commit 23c0684 into release-notes/11.0-preview4May 8, 2026
7 of 9 checks passed
@danroth27
danroth27 deleted the release-notes/11.0-preview4-aspnetcore branch May 8, 2026 21:11

@mikekistlermikekistler left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. 👍

I spent a bunch of time looking at the File results type item. I think it is correct but I think we will want to expand on this when we put this into the docs.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@danroth27@halter73@BrennanConroy@DeagleGross@ilonatommy@mikekistler@dariatiurina
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[release-notes] ASP.NET Core in .NET 11 Preview 4 - #10389

Merged
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore
May 8, 2026
Merged

[release-notes] ASP.NET Core in .NET 11 Preview 4#10389
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore

Conversation

@danroth27

Copy link
Copy Markdown
Member

ASP.NET Core release notes for .NET 11 Preview 4.

Targets the milestone base branch #10388. Merging this PR
into release-notes/11.0-preview4 adds aspnetcore.md to the milestone.

Generated end-to-end by the release-notes skill. AI-authored content;
please review for accuracy, resolve any inline <!-- TODO --> placeholders,
and then mark this PR ready for review.

cc @danroth27

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 3 commits April 30, 2026 07:00
Live-tested every feature against the installed
11.0.100-preview.4.26224.122 build with reflection + sample apps:
* Resolve TLS TODO: confirm ITlsHandshakeFeature.Exception property name.
* OpenAPI file results: note .Produces<FileContentHttpResult>() annotation
is required for the binary schema to appear (PR #64562 fires from
metadata, not auto-inference).
* Endpoint filter on binding failure: drop the inaccurate
ValueTask<object?> claim (PR #64539 applies to any return type), and
call out RouteHandlerOptions.ThrowOnBadRequest = false so the filter
observes the 400 in Development mode.
Filed dotnet/aspnetcore#66541 for a Virtualize prepend edge case
(scroll-anchor regression when `_itemsBefore == 0`); release-notes claim
left as-is — the bug only affects the case where the user has not yet
scrolled the rendered window past index 0.
Circuit-pause and `mcpserver` template remain documented; both PRs were
merged late in the cycle and are expected to land in a Preview 4 servicing
build.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* HTTP QUERY (#65714) is OpenAPI-only; reword and rename heading.
* Virtualize: clarify #65951 covers height-changes-above-viewport
(no API change). Add separate section for #66521's new
AnchorMode parameter, including ItemComparer guidance for
reference-type items.
* Add a Runtime-async section for #66449 (backport of #66200).
Removes the pre-filtering note that excluded it.
Feedback from BrennanConroy and ilonatommy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Missed in initial pass: dotnet/aspnetcore#65885 fixes the Blazor
Web Worker template failing in published WASM apps because workers
don't inherit the page's import map. Belongs alongside the existing
WebWorker template entries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 5 commits May 1, 2026 15:58
* Drop backport PR # (use original #66200 only)
* Add a call to action for developers to test their apps and
report regressions caused by runtime-async enablement.
Feedback from BrennanConroy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…eal CircuitHandler pattern
Verified against 11.0.0-preview.4.26230.115: there is no public registry
of active circuits. The supported discovery path is
CircuitHandler.OnConnectionUpAsync. Updated the example to track circuits
in a CircuitHandler and drain them via the captured references.
Also clarify return-value semantics and that onPauseRequested is a
JS-side option on Blazor.start().
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents how to opt in to the new Blazor Gateway (PR dotnet/aspnetcore#65982)
in a standalone Blazor WebAssembly app: swapping the DevServer reference for
Microsoft.AspNetCore.Components.Gateway, configuring YARP proxying to backend
APIs, and exposing a runtime config endpoint to the client. Links to the
GatewayDemo sample in danroth27/AspNetCore11Samples for an end-to-end setup.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sample was restructured to live in BlazorWasmFeatures/ alongside sibling
BackendApi/ and Gateway/ projects (replacing the GatewayDemo/ subtree).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Microsoft.AspNetCore.Components.Gateway package isn't being produced on
the build feeds (the Web SDK defaults IsPackable to false, silently no-op'ing
Pack). A fix is up at dotnet/aspnetcore#66579 but won't make Preview 4, so
remove the section and TOC entry; we'll bring it back when the package ships.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27

Copy link
Copy Markdown
MemberAuthor

Update: pulling the Blazor Gateway section back out of the Preview 4 release notes for now. The package isn't being produced on the build feeds — root cause turned out to be that Microsoft.NET.Sdk.Web defaults IsPackable to false, so the Gateway project's Pack target silently no-ops despite IsShippingPackage=true and a custom NuspecFile. One-line fix is up at dotnet/aspnetcore#66579, but it won't make Preview 4. We'll bring the content back once the package actually ships.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated

Apps that use OpenTelemetry or hot reload aren't affected — the feature switches default on in those configurations.

## Runtime-async enabled for shared framework libraries

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @agocke in case you want to provide input on the messaging here.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
- Remove duplicate 'Thank you @kilifu' line in HTTP QUERY section.
- Add UseTlsClientHelloListener snippet to the TLS section.
- Split 'OpenAPI and minimal API improvements' into two sections so
the endpoint-filter bullet (not OpenAPI-related) stands on its own.
- Remove the agent-generated 'Filtered features' HTML comment block.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
CopilotAIand others added 3 commits May 6, 2026 16:18
- HTTP QUERY: replace 'first-class' with 'known' (per @halter73), and
expand with OpenAPI 3.2 'query' Path Item field details and the
'OpenApiVersion'/'x-oai-additionalOperations' note (per @mikekistler).
- HTTP QUERY follow-up sentence: lowercase 'get'/'post' to match OpenAPI
spec casing (per @mikekistler).
- TLS section: replace standalone snippet with combined snippet that
also demonstrates 'ITlsHandshakeFeature.Exception' via connection
middleware, and ensures 'UseTlsClientHelloListener' is called before
'UseHttps' (per @DeagleGross + @halter73 + @BrennanConroy).
- Endpoint filters: drop the redundant short-circuit sentence, clarify
'ThrowOnBadRequest' default in non-Development environments, and call
out the 10.0.8 backport (per @halter73).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Expand HTTP QUERY snippet with OpenApiVersion=3.2 setup and show generated
output for both 3.2 (inline `query`) and 3.0/3.1 (`x-oai-additionalOperations`).
- Fix article agreement: `a x-oai-additionalOperations` -> `an x-oai-additionalOperations`.
- Correct the Virtualize AnchorMode descriptions to match the XML doc comments
on the enum (Beginning = news feed/notification UX, End = chat/log auto-scroll
UX, default is Beginning, `[Flags]` so they can be combined). Update the
example to use `notifications` to match the corrected scenario.
- Promote the Blazor Web Worker template rename + `InvokeVoidAsync` + cancellation/
timeout additions to its own section instead of a Bug fixes bullet.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The two JSON snippets above already show exactly where QUERY appears in the
generated document for both 3.2 and 3.0/3.1, so the trailing prose is now redundant.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27
danroth27 merged commit 23c0684 into release-notes/11.0-preview4May 8, 2026
7 of 9 checks passed
@danroth27
danroth27 deleted the release-notes/11.0-preview4-aspnetcore branch May 8, 2026 21:11

@mikekistlermikekistler left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. 👍

I spent a bunch of time looking at the File results type item. I think it is correct but I think we will want to expand on this when we put this into the docs.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@danroth27@halter73@BrennanConroy@DeagleGross@ilonatommy@mikekistler@dariatiurina
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[release-notes] ASP.NET Core in .NET 11 Preview 4 - #10389

Merged
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore
May 8, 2026
Merged

[release-notes] ASP.NET Core in .NET 11 Preview 4#10389
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore

Conversation

@danroth27

Copy link
Copy Markdown
Member

ASP.NET Core release notes for .NET 11 Preview 4.

Targets the milestone base branch #10388. Merging this PR
into release-notes/11.0-preview4 adds aspnetcore.md to the milestone.

Generated end-to-end by the release-notes skill. AI-authored content;
please review for accuracy, resolve any inline <!-- TODO --> placeholders,
and then mark this PR ready for review.

cc @danroth27

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 3 commits April 30, 2026 07:00
Live-tested every feature against the installed
11.0.100-preview.4.26224.122 build with reflection + sample apps:
* Resolve TLS TODO: confirm ITlsHandshakeFeature.Exception property name.
* OpenAPI file results: note .Produces<FileContentHttpResult>() annotation
is required for the binary schema to appear (PR #64562 fires from
metadata, not auto-inference).
* Endpoint filter on binding failure: drop the inaccurate
ValueTask<object?> claim (PR #64539 applies to any return type), and
call out RouteHandlerOptions.ThrowOnBadRequest = false so the filter
observes the 400 in Development mode.
Filed dotnet/aspnetcore#66541 for a Virtualize prepend edge case
(scroll-anchor regression when `_itemsBefore == 0`); release-notes claim
left as-is — the bug only affects the case where the user has not yet
scrolled the rendered window past index 0.
Circuit-pause and `mcpserver` template remain documented; both PRs were
merged late in the cycle and are expected to land in a Preview 4 servicing
build.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* HTTP QUERY (#65714) is OpenAPI-only; reword and rename heading.
* Virtualize: clarify #65951 covers height-changes-above-viewport
(no API change). Add separate section for #66521's new
AnchorMode parameter, including ItemComparer guidance for
reference-type items.
* Add a Runtime-async section for #66449 (backport of #66200).
Removes the pre-filtering note that excluded it.
Feedback from BrennanConroy and ilonatommy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Missed in initial pass: dotnet/aspnetcore#65885 fixes the Blazor
Web Worker template failing in published WASM apps because workers
don't inherit the page's import map. Belongs alongside the existing
WebWorker template entries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 5 commits May 1, 2026 15:58
* Drop backport PR # (use original #66200 only)
* Add a call to action for developers to test their apps and
report regressions caused by runtime-async enablement.
Feedback from BrennanConroy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…eal CircuitHandler pattern
Verified against 11.0.0-preview.4.26230.115: there is no public registry
of active circuits. The supported discovery path is
CircuitHandler.OnConnectionUpAsync. Updated the example to track circuits
in a CircuitHandler and drain them via the captured references.
Also clarify return-value semantics and that onPauseRequested is a
JS-side option on Blazor.start().
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents how to opt in to the new Blazor Gateway (PR dotnet/aspnetcore#65982)
in a standalone Blazor WebAssembly app: swapping the DevServer reference for
Microsoft.AspNetCore.Components.Gateway, configuring YARP proxying to backend
APIs, and exposing a runtime config endpoint to the client. Links to the
GatewayDemo sample in danroth27/AspNetCore11Samples for an end-to-end setup.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sample was restructured to live in BlazorWasmFeatures/ alongside sibling
BackendApi/ and Gateway/ projects (replacing the GatewayDemo/ subtree).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Microsoft.AspNetCore.Components.Gateway package isn't being produced on
the build feeds (the Web SDK defaults IsPackable to false, silently no-op'ing
Pack). A fix is up at dotnet/aspnetcore#66579 but won't make Preview 4, so
remove the section and TOC entry; we'll bring it back when the package ships.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27

Copy link
Copy Markdown
MemberAuthor

Update: pulling the Blazor Gateway section back out of the Preview 4 release notes for now. The package isn't being produced on the build feeds — root cause turned out to be that Microsoft.NET.Sdk.Web defaults IsPackable to false, so the Gateway project's Pack target silently no-ops despite IsShippingPackage=true and a custom NuspecFile. One-line fix is up at dotnet/aspnetcore#66579, but it won't make Preview 4. We'll bring the content back once the package actually ships.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated

Apps that use OpenTelemetry or hot reload aren't affected — the feature switches default on in those configurations.

## Runtime-async enabled for shared framework libraries

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @agocke in case you want to provide input on the messaging here.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
- Remove duplicate 'Thank you @kilifu' line in HTTP QUERY section.
- Add UseTlsClientHelloListener snippet to the TLS section.
- Split 'OpenAPI and minimal API improvements' into two sections so
the endpoint-filter bullet (not OpenAPI-related) stands on its own.
- Remove the agent-generated 'Filtered features' HTML comment block.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
CopilotAIand others added 3 commits May 6, 2026 16:18
- HTTP QUERY: replace 'first-class' with 'known' (per @halter73), and
expand with OpenAPI 3.2 'query' Path Item field details and the
'OpenApiVersion'/'x-oai-additionalOperations' note (per @mikekistler).
- HTTP QUERY follow-up sentence: lowercase 'get'/'post' to match OpenAPI
spec casing (per @mikekistler).
- TLS section: replace standalone snippet with combined snippet that
also demonstrates 'ITlsHandshakeFeature.Exception' via connection
middleware, and ensures 'UseTlsClientHelloListener' is called before
'UseHttps' (per @DeagleGross + @halter73 + @BrennanConroy).
- Endpoint filters: drop the redundant short-circuit sentence, clarify
'ThrowOnBadRequest' default in non-Development environments, and call
out the 10.0.8 backport (per @halter73).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Expand HTTP QUERY snippet with OpenApiVersion=3.2 setup and show generated
output for both 3.2 (inline `query`) and 3.0/3.1 (`x-oai-additionalOperations`).
- Fix article agreement: `a x-oai-additionalOperations` -> `an x-oai-additionalOperations`.
- Correct the Virtualize AnchorMode descriptions to match the XML doc comments
on the enum (Beginning = news feed/notification UX, End = chat/log auto-scroll
UX, default is Beginning, `[Flags]` so they can be combined). Update the
example to use `notifications` to match the corrected scenario.
- Promote the Blazor Web Worker template rename + `InvokeVoidAsync` + cancellation/
timeout additions to its own section instead of a Bug fixes bullet.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The two JSON snippets above already show exactly where QUERY appears in the
generated document for both 3.2 and 3.0/3.1, so the trailing prose is now redundant.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27
danroth27 merged commit 23c0684 into release-notes/11.0-preview4May 8, 2026
7 of 9 checks passed
@danroth27
danroth27 deleted the release-notes/11.0-preview4-aspnetcore branch May 8, 2026 21:11

@mikekistlermikekistler left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. 👍

I spent a bunch of time looking at the File results type item. I think it is correct but I think we will want to expand on this when we put this into the docs.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@danroth27@halter73@BrennanConroy@DeagleGross@ilonatommy@mikekistler@dariatiurina
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[release-notes] ASP.NET Core in .NET 11 Preview 4 - #10389

Merged
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore
May 8, 2026
Merged

[release-notes] ASP.NET Core in .NET 11 Preview 4#10389
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore

Conversation

@danroth27

Copy link
Copy Markdown
Member

ASP.NET Core release notes for .NET 11 Preview 4.

Targets the milestone base branch #10388. Merging this PR
into release-notes/11.0-preview4 adds aspnetcore.md to the milestone.

Generated end-to-end by the release-notes skill. AI-authored content;
please review for accuracy, resolve any inline <!-- TODO --> placeholders,
and then mark this PR ready for review.

cc @danroth27

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 3 commits April 30, 2026 07:00
Live-tested every feature against the installed
11.0.100-preview.4.26224.122 build with reflection + sample apps:
* Resolve TLS TODO: confirm ITlsHandshakeFeature.Exception property name.
* OpenAPI file results: note .Produces<FileContentHttpResult>() annotation
is required for the binary schema to appear (PR #64562 fires from
metadata, not auto-inference).
* Endpoint filter on binding failure: drop the inaccurate
ValueTask<object?> claim (PR #64539 applies to any return type), and
call out RouteHandlerOptions.ThrowOnBadRequest = false so the filter
observes the 400 in Development mode.
Filed dotnet/aspnetcore#66541 for a Virtualize prepend edge case
(scroll-anchor regression when `_itemsBefore == 0`); release-notes claim
left as-is — the bug only affects the case where the user has not yet
scrolled the rendered window past index 0.
Circuit-pause and `mcpserver` template remain documented; both PRs were
merged late in the cycle and are expected to land in a Preview 4 servicing
build.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* HTTP QUERY (#65714) is OpenAPI-only; reword and rename heading.
* Virtualize: clarify #65951 covers height-changes-above-viewport
(no API change). Add separate section for #66521's new
AnchorMode parameter, including ItemComparer guidance for
reference-type items.
* Add a Runtime-async section for #66449 (backport of #66200).
Removes the pre-filtering note that excluded it.
Feedback from BrennanConroy and ilonatommy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Missed in initial pass: dotnet/aspnetcore#65885 fixes the Blazor
Web Worker template failing in published WASM apps because workers
don't inherit the page's import map. Belongs alongside the existing
WebWorker template entries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 5 commits May 1, 2026 15:58
* Drop backport PR # (use original #66200 only)
* Add a call to action for developers to test their apps and
report regressions caused by runtime-async enablement.
Feedback from BrennanConroy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…eal CircuitHandler pattern
Verified against 11.0.0-preview.4.26230.115: there is no public registry
of active circuits. The supported discovery path is
CircuitHandler.OnConnectionUpAsync. Updated the example to track circuits
in a CircuitHandler and drain them via the captured references.
Also clarify return-value semantics and that onPauseRequested is a
JS-side option on Blazor.start().
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents how to opt in to the new Blazor Gateway (PR dotnet/aspnetcore#65982)
in a standalone Blazor WebAssembly app: swapping the DevServer reference for
Microsoft.AspNetCore.Components.Gateway, configuring YARP proxying to backend
APIs, and exposing a runtime config endpoint to the client. Links to the
GatewayDemo sample in danroth27/AspNetCore11Samples for an end-to-end setup.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sample was restructured to live in BlazorWasmFeatures/ alongside sibling
BackendApi/ and Gateway/ projects (replacing the GatewayDemo/ subtree).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Microsoft.AspNetCore.Components.Gateway package isn't being produced on
the build feeds (the Web SDK defaults IsPackable to false, silently no-op'ing
Pack). A fix is up at dotnet/aspnetcore#66579 but won't make Preview 4, so
remove the section and TOC entry; we'll bring it back when the package ships.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27

Copy link
Copy Markdown
MemberAuthor

Update: pulling the Blazor Gateway section back out of the Preview 4 release notes for now. The package isn't being produced on the build feeds — root cause turned out to be that Microsoft.NET.Sdk.Web defaults IsPackable to false, so the Gateway project's Pack target silently no-ops despite IsShippingPackage=true and a custom NuspecFile. One-line fix is up at dotnet/aspnetcore#66579, but it won't make Preview 4. We'll bring the content back once the package actually ships.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated

Apps that use OpenTelemetry or hot reload aren't affected — the feature switches default on in those configurations.

## Runtime-async enabled for shared framework libraries

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @agocke in case you want to provide input on the messaging here.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
- Remove duplicate 'Thank you @kilifu' line in HTTP QUERY section.
- Add UseTlsClientHelloListener snippet to the TLS section.
- Split 'OpenAPI and minimal API improvements' into two sections so
the endpoint-filter bullet (not OpenAPI-related) stands on its own.
- Remove the agent-generated 'Filtered features' HTML comment block.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
CopilotAIand others added 3 commits May 6, 2026 16:18
- HTTP QUERY: replace 'first-class' with 'known' (per @halter73), and
expand with OpenAPI 3.2 'query' Path Item field details and the
'OpenApiVersion'/'x-oai-additionalOperations' note (per @mikekistler).
- HTTP QUERY follow-up sentence: lowercase 'get'/'post' to match OpenAPI
spec casing (per @mikekistler).
- TLS section: replace standalone snippet with combined snippet that
also demonstrates 'ITlsHandshakeFeature.Exception' via connection
middleware, and ensures 'UseTlsClientHelloListener' is called before
'UseHttps' (per @DeagleGross + @halter73 + @BrennanConroy).
- Endpoint filters: drop the redundant short-circuit sentence, clarify
'ThrowOnBadRequest' default in non-Development environments, and call
out the 10.0.8 backport (per @halter73).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Expand HTTP QUERY snippet with OpenApiVersion=3.2 setup and show generated
output for both 3.2 (inline `query`) and 3.0/3.1 (`x-oai-additionalOperations`).
- Fix article agreement: `a x-oai-additionalOperations` -> `an x-oai-additionalOperations`.
- Correct the Virtualize AnchorMode descriptions to match the XML doc comments
on the enum (Beginning = news feed/notification UX, End = chat/log auto-scroll
UX, default is Beginning, `[Flags]` so they can be combined). Update the
example to use `notifications` to match the corrected scenario.
- Promote the Blazor Web Worker template rename + `InvokeVoidAsync` + cancellation/
timeout additions to its own section instead of a Bug fixes bullet.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The two JSON snippets above already show exactly where QUERY appears in the
generated document for both 3.2 and 3.0/3.1, so the trailing prose is now redundant.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27
danroth27 merged commit 23c0684 into release-notes/11.0-preview4May 8, 2026
7 of 9 checks passed
@danroth27
danroth27 deleted the release-notes/11.0-preview4-aspnetcore branch May 8, 2026 21:11

@mikekistlermikekistler left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. 👍

I spent a bunch of time looking at the File results type item. I think it is correct but I think we will want to expand on this when we put this into the docs.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@danroth27@halter73@BrennanConroy@DeagleGross@ilonatommy@mikekistler@dariatiurina
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[release-notes] ASP.NET Core in .NET 11 Preview 4 - #10389

Merged
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore
May 8, 2026
Merged

[release-notes] ASP.NET Core in .NET 11 Preview 4#10389
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore

Conversation

@danroth27

Copy link
Copy Markdown
Member

ASP.NET Core release notes for .NET 11 Preview 4.

Targets the milestone base branch #10388. Merging this PR
into release-notes/11.0-preview4 adds aspnetcore.md to the milestone.

Generated end-to-end by the release-notes skill. AI-authored content;
please review for accuracy, resolve any inline <!-- TODO --> placeholders,
and then mark this PR ready for review.

cc @danroth27

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 3 commits April 30, 2026 07:00
Live-tested every feature against the installed
11.0.100-preview.4.26224.122 build with reflection + sample apps:
* Resolve TLS TODO: confirm ITlsHandshakeFeature.Exception property name.
* OpenAPI file results: note .Produces<FileContentHttpResult>() annotation
is required for the binary schema to appear (PR #64562 fires from
metadata, not auto-inference).
* Endpoint filter on binding failure: drop the inaccurate
ValueTask<object?> claim (PR #64539 applies to any return type), and
call out RouteHandlerOptions.ThrowOnBadRequest = false so the filter
observes the 400 in Development mode.
Filed dotnet/aspnetcore#66541 for a Virtualize prepend edge case
(scroll-anchor regression when `_itemsBefore == 0`); release-notes claim
left as-is — the bug only affects the case where the user has not yet
scrolled the rendered window past index 0.
Circuit-pause and `mcpserver` template remain documented; both PRs were
merged late in the cycle and are expected to land in a Preview 4 servicing
build.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* HTTP QUERY (#65714) is OpenAPI-only; reword and rename heading.
* Virtualize: clarify #65951 covers height-changes-above-viewport
(no API change). Add separate section for #66521's new
AnchorMode parameter, including ItemComparer guidance for
reference-type items.
* Add a Runtime-async section for #66449 (backport of #66200).
Removes the pre-filtering note that excluded it.
Feedback from BrennanConroy and ilonatommy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Missed in initial pass: dotnet/aspnetcore#65885 fixes the Blazor
Web Worker template failing in published WASM apps because workers
don't inherit the page's import map. Belongs alongside the existing
WebWorker template entries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 5 commits May 1, 2026 15:58
* Drop backport PR # (use original #66200 only)
* Add a call to action for developers to test their apps and
report regressions caused by runtime-async enablement.
Feedback from BrennanConroy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…eal CircuitHandler pattern
Verified against 11.0.0-preview.4.26230.115: there is no public registry
of active circuits. The supported discovery path is
CircuitHandler.OnConnectionUpAsync. Updated the example to track circuits
in a CircuitHandler and drain them via the captured references.
Also clarify return-value semantics and that onPauseRequested is a
JS-side option on Blazor.start().
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents how to opt in to the new Blazor Gateway (PR dotnet/aspnetcore#65982)
in a standalone Blazor WebAssembly app: swapping the DevServer reference for
Microsoft.AspNetCore.Components.Gateway, configuring YARP proxying to backend
APIs, and exposing a runtime config endpoint to the client. Links to the
GatewayDemo sample in danroth27/AspNetCore11Samples for an end-to-end setup.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sample was restructured to live in BlazorWasmFeatures/ alongside sibling
BackendApi/ and Gateway/ projects (replacing the GatewayDemo/ subtree).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Microsoft.AspNetCore.Components.Gateway package isn't being produced on
the build feeds (the Web SDK defaults IsPackable to false, silently no-op'ing
Pack). A fix is up at dotnet/aspnetcore#66579 but won't make Preview 4, so
remove the section and TOC entry; we'll bring it back when the package ships.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27

Copy link
Copy Markdown
MemberAuthor

Update: pulling the Blazor Gateway section back out of the Preview 4 release notes for now. The package isn't being produced on the build feeds — root cause turned out to be that Microsoft.NET.Sdk.Web defaults IsPackable to false, so the Gateway project's Pack target silently no-ops despite IsShippingPackage=true and a custom NuspecFile. One-line fix is up at dotnet/aspnetcore#66579, but it won't make Preview 4. We'll bring the content back once the package actually ships.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated

Apps that use OpenTelemetry or hot reload aren't affected — the feature switches default on in those configurations.

## Runtime-async enabled for shared framework libraries

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @agocke in case you want to provide input on the messaging here.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
- Remove duplicate 'Thank you @kilifu' line in HTTP QUERY section.
- Add UseTlsClientHelloListener snippet to the TLS section.
- Split 'OpenAPI and minimal API improvements' into two sections so
the endpoint-filter bullet (not OpenAPI-related) stands on its own.
- Remove the agent-generated 'Filtered features' HTML comment block.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
CopilotAIand others added 3 commits May 6, 2026 16:18
- HTTP QUERY: replace 'first-class' with 'known' (per @halter73), and
expand with OpenAPI 3.2 'query' Path Item field details and the
'OpenApiVersion'/'x-oai-additionalOperations' note (per @mikekistler).
- HTTP QUERY follow-up sentence: lowercase 'get'/'post' to match OpenAPI
spec casing (per @mikekistler).
- TLS section: replace standalone snippet with combined snippet that
also demonstrates 'ITlsHandshakeFeature.Exception' via connection
middleware, and ensures 'UseTlsClientHelloListener' is called before
'UseHttps' (per @DeagleGross + @halter73 + @BrennanConroy).
- Endpoint filters: drop the redundant short-circuit sentence, clarify
'ThrowOnBadRequest' default in non-Development environments, and call
out the 10.0.8 backport (per @halter73).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Expand HTTP QUERY snippet with OpenApiVersion=3.2 setup and show generated
output for both 3.2 (inline `query`) and 3.0/3.1 (`x-oai-additionalOperations`).
- Fix article agreement: `a x-oai-additionalOperations` -> `an x-oai-additionalOperations`.
- Correct the Virtualize AnchorMode descriptions to match the XML doc comments
on the enum (Beginning = news feed/notification UX, End = chat/log auto-scroll
UX, default is Beginning, `[Flags]` so they can be combined). Update the
example to use `notifications` to match the corrected scenario.
- Promote the Blazor Web Worker template rename + `InvokeVoidAsync` + cancellation/
timeout additions to its own section instead of a Bug fixes bullet.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The two JSON snippets above already show exactly where QUERY appears in the
generated document for both 3.2 and 3.0/3.1, so the trailing prose is now redundant.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27
danroth27 merged commit 23c0684 into release-notes/11.0-preview4May 8, 2026
7 of 9 checks passed
@danroth27
danroth27 deleted the release-notes/11.0-preview4-aspnetcore branch May 8, 2026 21:11

@mikekistlermikekistler left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. 👍

I spent a bunch of time looking at the File results type item. I think it is correct but I think we will want to expand on this when we put this into the docs.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@danroth27@halter73@BrennanConroy@DeagleGross@ilonatommy@mikekistler@dariatiurina
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[release-notes] ASP.NET Core in .NET 11 Preview 4 - #10389

Merged
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore
May 8, 2026
Merged

[release-notes] ASP.NET Core in .NET 11 Preview 4#10389
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore

Conversation

@danroth27

Copy link
Copy Markdown
Member

ASP.NET Core release notes for .NET 11 Preview 4.

Targets the milestone base branch #10388. Merging this PR
into release-notes/11.0-preview4 adds aspnetcore.md to the milestone.

Generated end-to-end by the release-notes skill. AI-authored content;
please review for accuracy, resolve any inline <!-- TODO --> placeholders,
and then mark this PR ready for review.

cc @danroth27

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 3 commits April 30, 2026 07:00
Live-tested every feature against the installed
11.0.100-preview.4.26224.122 build with reflection + sample apps:
* Resolve TLS TODO: confirm ITlsHandshakeFeature.Exception property name.
* OpenAPI file results: note .Produces<FileContentHttpResult>() annotation
is required for the binary schema to appear (PR #64562 fires from
metadata, not auto-inference).
* Endpoint filter on binding failure: drop the inaccurate
ValueTask<object?> claim (PR #64539 applies to any return type), and
call out RouteHandlerOptions.ThrowOnBadRequest = false so the filter
observes the 400 in Development mode.
Filed dotnet/aspnetcore#66541 for a Virtualize prepend edge case
(scroll-anchor regression when `_itemsBefore == 0`); release-notes claim
left as-is — the bug only affects the case where the user has not yet
scrolled the rendered window past index 0.
Circuit-pause and `mcpserver` template remain documented; both PRs were
merged late in the cycle and are expected to land in a Preview 4 servicing
build.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* HTTP QUERY (#65714) is OpenAPI-only; reword and rename heading.
* Virtualize: clarify #65951 covers height-changes-above-viewport
(no API change). Add separate section for #66521's new
AnchorMode parameter, including ItemComparer guidance for
reference-type items.
* Add a Runtime-async section for #66449 (backport of #66200).
Removes the pre-filtering note that excluded it.
Feedback from BrennanConroy and ilonatommy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Missed in initial pass: dotnet/aspnetcore#65885 fixes the Blazor
Web Worker template failing in published WASM apps because workers
don't inherit the page's import map. Belongs alongside the existing
WebWorker template entries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 5 commits May 1, 2026 15:58
* Drop backport PR # (use original #66200 only)
* Add a call to action for developers to test their apps and
report regressions caused by runtime-async enablement.
Feedback from BrennanConroy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…eal CircuitHandler pattern
Verified against 11.0.0-preview.4.26230.115: there is no public registry
of active circuits. The supported discovery path is
CircuitHandler.OnConnectionUpAsync. Updated the example to track circuits
in a CircuitHandler and drain them via the captured references.
Also clarify return-value semantics and that onPauseRequested is a
JS-side option on Blazor.start().
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents how to opt in to the new Blazor Gateway (PR dotnet/aspnetcore#65982)
in a standalone Blazor WebAssembly app: swapping the DevServer reference for
Microsoft.AspNetCore.Components.Gateway, configuring YARP proxying to backend
APIs, and exposing a runtime config endpoint to the client. Links to the
GatewayDemo sample in danroth27/AspNetCore11Samples for an end-to-end setup.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sample was restructured to live in BlazorWasmFeatures/ alongside sibling
BackendApi/ and Gateway/ projects (replacing the GatewayDemo/ subtree).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Microsoft.AspNetCore.Components.Gateway package isn't being produced on
the build feeds (the Web SDK defaults IsPackable to false, silently no-op'ing
Pack). A fix is up at dotnet/aspnetcore#66579 but won't make Preview 4, so
remove the section and TOC entry; we'll bring it back when the package ships.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27

Copy link
Copy Markdown
MemberAuthor

Update: pulling the Blazor Gateway section back out of the Preview 4 release notes for now. The package isn't being produced on the build feeds — root cause turned out to be that Microsoft.NET.Sdk.Web defaults IsPackable to false, so the Gateway project's Pack target silently no-ops despite IsShippingPackage=true and a custom NuspecFile. One-line fix is up at dotnet/aspnetcore#66579, but it won't make Preview 4. We'll bring the content back once the package actually ships.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated

Apps that use OpenTelemetry or hot reload aren't affected — the feature switches default on in those configurations.

## Runtime-async enabled for shared framework libraries

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @agocke in case you want to provide input on the messaging here.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
- Remove duplicate 'Thank you @kilifu' line in HTTP QUERY section.
- Add UseTlsClientHelloListener snippet to the TLS section.
- Split 'OpenAPI and minimal API improvements' into two sections so
the endpoint-filter bullet (not OpenAPI-related) stands on its own.
- Remove the agent-generated 'Filtered features' HTML comment block.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
CopilotAIand others added 3 commits May 6, 2026 16:18
- HTTP QUERY: replace 'first-class' with 'known' (per @halter73), and
expand with OpenAPI 3.2 'query' Path Item field details and the
'OpenApiVersion'/'x-oai-additionalOperations' note (per @mikekistler).
- HTTP QUERY follow-up sentence: lowercase 'get'/'post' to match OpenAPI
spec casing (per @mikekistler).
- TLS section: replace standalone snippet with combined snippet that
also demonstrates 'ITlsHandshakeFeature.Exception' via connection
middleware, and ensures 'UseTlsClientHelloListener' is called before
'UseHttps' (per @DeagleGross + @halter73 + @BrennanConroy).
- Endpoint filters: drop the redundant short-circuit sentence, clarify
'ThrowOnBadRequest' default in non-Development environments, and call
out the 10.0.8 backport (per @halter73).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Expand HTTP QUERY snippet with OpenApiVersion=3.2 setup and show generated
output for both 3.2 (inline `query`) and 3.0/3.1 (`x-oai-additionalOperations`).
- Fix article agreement: `a x-oai-additionalOperations` -> `an x-oai-additionalOperations`.
- Correct the Virtualize AnchorMode descriptions to match the XML doc comments
on the enum (Beginning = news feed/notification UX, End = chat/log auto-scroll
UX, default is Beginning, `[Flags]` so they can be combined). Update the
example to use `notifications` to match the corrected scenario.
- Promote the Blazor Web Worker template rename + `InvokeVoidAsync` + cancellation/
timeout additions to its own section instead of a Bug fixes bullet.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The two JSON snippets above already show exactly where QUERY appears in the
generated document for both 3.2 and 3.0/3.1, so the trailing prose is now redundant.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27
danroth27 merged commit 23c0684 into release-notes/11.0-preview4May 8, 2026
7 of 9 checks passed
@danroth27
danroth27 deleted the release-notes/11.0-preview4-aspnetcore branch May 8, 2026 21:11

@mikekistlermikekistler left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. 👍

I spent a bunch of time looking at the File results type item. I think it is correct but I think we will want to expand on this when we put this into the docs.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@danroth27@halter73@BrennanConroy@DeagleGross@ilonatommy@mikekistler@dariatiurina
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[release-notes] ASP.NET Core in .NET 11 Preview 4 - #10389

Merged
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore
May 8, 2026
Merged

[release-notes] ASP.NET Core in .NET 11 Preview 4#10389
danroth27 merged 15 commits into
release-notes/11.0-preview4from
release-notes/11.0-preview4-aspnetcore

Conversation

@danroth27

Copy link
Copy Markdown
Member

ASP.NET Core release notes for .NET 11 Preview 4.

Targets the milestone base branch #10388. Merging this PR
into release-notes/11.0-preview4 adds aspnetcore.md to the milestone.

Generated end-to-end by the release-notes skill. AI-authored content;
please review for accuracy, resolve any inline <!-- TODO --> placeholders,
and then mark this PR ready for review.

cc @danroth27

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 3 commits April 30, 2026 07:00
Live-tested every feature against the installed
11.0.100-preview.4.26224.122 build with reflection + sample apps:
* Resolve TLS TODO: confirm ITlsHandshakeFeature.Exception property name.
* OpenAPI file results: note .Produces<FileContentHttpResult>() annotation
is required for the binary schema to appear (PR #64562 fires from
metadata, not auto-inference).
* Endpoint filter on binding failure: drop the inaccurate
ValueTask<object?> claim (PR #64539 applies to any return type), and
call out RouteHandlerOptions.ThrowOnBadRequest = false so the filter
observes the 400 in Development mode.
Filed dotnet/aspnetcore#66541 for a Virtualize prepend edge case
(scroll-anchor regression when `_itemsBefore == 0`); release-notes claim
left as-is — the bug only affects the case where the user has not yet
scrolled the rendered window past index 0.
Circuit-pause and `mcpserver` template remain documented; both PRs were
merged late in the cycle and are expected to land in a Preview 4 servicing
build.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* HTTP QUERY (#65714) is OpenAPI-only; reword and rename heading.
* Virtualize: clarify #65951 covers height-changes-above-viewport
(no API change). Add separate section for #66521's new
AnchorMode parameter, including ItemComparer guidance for
reference-type items.
* Add a Runtime-async section for #66449 (backport of #66200).
Removes the pre-filtering note that excluded it.
Feedback from BrennanConroy and ilonatommy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Missed in initial pass: dotnet/aspnetcore#65885 fixes the Blazor
Web Worker template failing in published WASM apps because workers
don't inherit the page's import map. Belongs alongside the existing
WebWorker template entries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
danroth27and others added 5 commits May 1, 2026 15:58
* Drop backport PR # (use original #66200 only)
* Add a call to action for developers to test their apps and
report regressions caused by runtime-async enablement.
Feedback from BrennanConroy on #10389.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…eal CircuitHandler pattern
Verified against 11.0.0-preview.4.26230.115: there is no public registry
of active circuits. The supported discovery path is
CircuitHandler.OnConnectionUpAsync. Updated the example to track circuits
in a CircuitHandler and drain them via the captured references.
Also clarify return-value semantics and that onPauseRequested is a
JS-side option on Blazor.start().
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents how to opt in to the new Blazor Gateway (PR dotnet/aspnetcore#65982)
in a standalone Blazor WebAssembly app: swapping the DevServer reference for
Microsoft.AspNetCore.Components.Gateway, configuring YARP proxying to backend
APIs, and exposing a runtime config endpoint to the client. Links to the
GatewayDemo sample in danroth27/AspNetCore11Samples for an end-to-end setup.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sample was restructured to live in BlazorWasmFeatures/ alongside sibling
BackendApi/ and Gateway/ projects (replacing the GatewayDemo/ subtree).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Microsoft.AspNetCore.Components.Gateway package isn't being produced on
the build feeds (the Web SDK defaults IsPackable to false, silently no-op'ing
Pack). A fix is up at dotnet/aspnetcore#66579 but won't make Preview 4, so
remove the section and TOC entry; we'll bring it back when the package ships.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27

Copy link
Copy Markdown
MemberAuthor

Update: pulling the Blazor Gateway section back out of the Preview 4 release notes for now. The package isn't being produced on the build feeds — root cause turned out to be that Microsoft.NET.Sdk.Web defaults IsPackable to false, so the Gateway project's Pack target silently no-ops despite IsShippingPackage=true and a custom NuspecFile. One-line fix is up at dotnet/aspnetcore#66579, but it won't make Preview 4. We'll bring the content back once the package actually ships.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated

Apps that use OpenTelemetry or hot reload aren't affected — the feature switches default on in those configurations.

## Runtime-async enabled for shared framework libraries

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @agocke in case you want to provide input on the messaging here.

Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
- Remove duplicate 'Thank you @kilifu' line in HTTP QUERY section.
- Add UseTlsClientHelloListener snippet to the TLS section.
- Split 'OpenAPI and minimal API improvements' into two sections so
the endpoint-filter bullet (not OpenAPI-related) stands on its own.
- Remove the agent-generated 'Filtered features' HTML comment block.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
Comment threadrelease-notes/11.0/preview/preview4/aspnetcore.md Outdated
CopilotAIand others added 3 commits May 6, 2026 16:18
- HTTP QUERY: replace 'first-class' with 'known' (per @halter73), and
expand with OpenAPI 3.2 'query' Path Item field details and the
'OpenApiVersion'/'x-oai-additionalOperations' note (per @mikekistler).
- HTTP QUERY follow-up sentence: lowercase 'get'/'post' to match OpenAPI
spec casing (per @mikekistler).
- TLS section: replace standalone snippet with combined snippet that
also demonstrates 'ITlsHandshakeFeature.Exception' via connection
middleware, and ensures 'UseTlsClientHelloListener' is called before
'UseHttps' (per @DeagleGross + @halter73 + @BrennanConroy).
- Endpoint filters: drop the redundant short-circuit sentence, clarify
'ThrowOnBadRequest' default in non-Development environments, and call
out the 10.0.8 backport (per @halter73).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Expand HTTP QUERY snippet with OpenApiVersion=3.2 setup and show generated
output for both 3.2 (inline `query`) and 3.0/3.1 (`x-oai-additionalOperations`).
- Fix article agreement: `a x-oai-additionalOperations` -> `an x-oai-additionalOperations`.
- Correct the Virtualize AnchorMode descriptions to match the XML doc comments
on the enum (Beginning = news feed/notification UX, End = chat/log auto-scroll
UX, default is Beginning, `[Flags]` so they can be combined). Update the
example to use `notifications` to match the corrected scenario.
- Promote the Blazor Web Worker template rename + `InvokeVoidAsync` + cancellation/
timeout additions to its own section instead of a Bug fixes bullet.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The two JSON snippets above already show exactly where QUERY appears in the
generated document for both 3.2 and 3.0/3.1, so the trailing prose is now redundant.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danroth27
danroth27 merged commit 23c0684 into release-notes/11.0-preview4May 8, 2026
7 of 9 checks passed
@danroth27
danroth27 deleted the release-notes/11.0-preview4-aspnetcore branch May 8, 2026 21:11

@mikekistlermikekistler left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. 👍

I spent a bunch of time looking at the File results type item. I think it is correct but I think we will want to expand on this when we put this into the docs.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@danroth27@halter73@BrennanConroy@DeagleGross@ilonatommy@mikekistler@dariatiurina