Skip to content

6.0.0 - #1370

Open
MarkStega wants to merge 4 commits into
mainfrom
SiP-2026-09-26
Open

6.0.0#1370
MarkStega wants to merge 4 commits into
mainfrom
SiP-2026-09-26

Conversation

@MarkStega

Copy link
Copy Markdown
Member

Release 6.0.0

First .Net 10 release of Material.Blazor. 5.3.29 was the last .Net 8 release.

From the Material.Blazor team: Materia Technologies now supports Material.Blazor's continued maintenance. The README, release notes and website home page have been updated to say so and to introduce Chameleon.

.Net 10

  • global.json SDK 10.0.401; TargetFrameworks net10.0; Microsoft packages 10.0.12, Serilog 10.x.
  • CI: dotnet-version: '10.x', pnpm 12.6.0, and website publish --framework net10.0 (it was still net8.0 and would have failed).
  • Tests: the .Net 10 SDK no longer lets dotnet test run xunit.v3 through VSTest (Testing with VSTest target is no longer supported by Microsoft.Testing.Platform on .NET 10 SDK). global.json now opts in to Microsoft.Testing.Platform, and both workflows use dotnet test --project ….

Website hosting (the two VS launch projects)

  • Material.Blazor.Website.Server always runs Blazor Server. Before, program_server.cs used #if SERVER, but the build defines BLAZOR_SERVER, so AddServerSideBlazor/MapBlazorHub never compiled in. The project hosted the WebAssembly app in the WebAssembly configuration, and Server mode was broken in the Server configuration. The WebAssembly project reference, PlatformDetermination.cs and the WebAssembly branches of Host.cshtml are removed. RequiresAspNetWebAssets is set because .Net 10 only ships blazor.server.js to projects that contain .razor files.
  • Material.Blazor.Website.WebAssembly is the standalone site that is published to GitHub Pages.
  • Program.cs files are renamed program_server.cs and program_wasm.cs.
  • The home page's "built in … mode" line is now determined at runtime (OperatingSystem.IsBrowser()) instead of from the build configuration.

Stale cached scripts after upgrade

Running the .Net 10 site in a browser that had the .Net 8 site cached failed with Failed to load config file ./blazor.boot.json: the browser ran its cached .Net 8 dotnet.js. (.Net 10 builds the boot config into dotnet.js.)

  • Server: UseStaticFiles is replaced with MapStaticAssets, and MapRazorPages().WithStaticAssets() plus <script type="importmap"> in Host.cshtml are added. Stylesheets and scripts use asp-append-version, so the URLs are fingerprinted or carry ?v=<hash>.
  • WebAssembly: OverrideHtmlAssetPlaceholders with an import map, preload link, and #[.{fingerprint}] markers in index.html.
  • Server build compression is gzip only (publish keeps gzip + brotli). In Development, ASP.NET Core's static-asset handler re-compresses assets as gzip but keeps the endpoint's Content-Encoding: br, so with build-time brotli Chrome failed to load dotnet.<hash>.js.

Docs

  • README: new V6.x entry (.Net 10 LTS, deprecated November 14, 2028 with the DN10 EOL). V5.x is no longer the preferred release.
  • Release notes for 6.0.0.

Verification

  • dotnet test --project Material.Blazor.Test/Material.Blazor.Test.csproj: 24/24 pass on .Net 10 via Microsoft.Testing.Platform.
  • Website.Server (Server config) in Chrome: server-rendered, Blazor hub connected, clicking a card navigated over the circuit, no console errors.
  • Website.WebAssembly in Chrome: boots on .NET 10.0.12 Browser/Wasm with fingerprinted blazor.webassembly.*.js/dotnet.*.js, no blazor.boot.json request, no console errors.
  • dotnet publish of the WebAssembly site exactly as CI runs it: no placeholders left in index.html, every referenced file exists, 404.html present.

🤖 Generated with Claude Code

MarkStega and others added 4 commits September 26, 2026 14:56
- Retarget to .NET 10 (SDK 10.0.401, packages 10.0.12); CI on .NET 10 and pnpm 12
- Website.Server always runs Blazor Server (fixes #if SERVER vs BLAZOR_SERVER
  mismatch that meant the hub was never mapped); Website.WebAssembly is the
  standalone site
- Server: MapStaticAssets + import map + versioned asset URLs; build-time
  compression gzip only (dev handler mislabels re-compressed brotli)
- WebAssembly: OverrideHtmlAssetPlaceholders fingerprinting in index.html
- Rename Program.cs to program_server.cs / program_wasm.cs
- Tests: opt dotnet test in to Microsoft.Testing.Platform (required for
  xunit.v3 on the .NET 10 SDK); CI uses dotnet test --project
- README: V6.x entry; V5.x no longer the preferred release
- Release notes for 6.0.0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- WIP builds were stamped 5.0.0-wip.<timestamp>; now 6.0.0-wip.<timestamp>
- Release workflow only fired on 5.** tags, so a 6.0.0 tag would not
  have triggered it; now 6.**

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
NavigateToButton navigated to "anchor" since #1056 (2023), which looks like a
leftover from debugging; the card says it goes to the Button demo page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to 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.

1 participant