Repository navigation
chore: Upgrade to .NET 11 with runtime async - #576
Merged
Merged
Conversation
- Target net11.0, SDK 11.0.100, Docker images and CI on 11.0 - Enable runtime-async for all projects - Bump Microsoft packages to 11.0.0 and other dependencies to latest - Npgsql (11.0.0-rc.3) and MySQL (11.0.0-preview.1) providers are prereleases; NU1608 kept as warning until Npgsql 11 ships - EF Core 11: map Tags via PrimitiveCollection instead of Property - Drop explicit Microsoft.Extensions.Configuration.Abstractions (now pruned) - Fix new CA1307 and BL0012 findings; suppress BL0013, BL0016 and S3881 on Razor-generated code
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
Solution-wide preview async changes and prerelease PostgreSQL/MySQL providers with an overridden EF Core constraint require human-led compatibility validation beyond SQLite-only tests.
No open issues 🎉
What changed in this PR
Upgrades the blog application, build pipeline, and container images to .NET 11, enables runtime async, and adapts persistence mappings and UI code for the upgrade.
Changes:
- Updates the SDK, target framework, dependencies, Docker images, and CI configuration.
- Explicitly maps tag collections for EF Core 11 and adds ordinal URL comparisons.
- Removes explicit render calls from selected Blazor handlers and adjusts analyzer warning handling.
| File | Description |
|---|---|
tests/LinkDotNet.Blog.IntegrationTests/LinkDotNet.Blog.IntegrationTests.csproj |
Removes the direct configuration abstractions dependency. |
src/LinkDotNet.Blog.Web/Features/ShowBlogPost/ShowBlogPostPage.razor |
Removes the explicit render call after bookmarking. |
src/LinkDotNet.Blog.Web/Features/Components/ShortBlogPost.razor |
Removes the explicit render call after bookmarking. |
src/LinkDotNet.Blog.Web/Features/Admin/Sitemap/Services/SitemapService.cs |
Uses an ordinal trailing-slash comparison. |
src/LinkDotNet.Blog.Web/Features/Admin/BlogPostEditor/UpdateBlogPostPage.razor |
Removes the explicit render call after restoring a version. |
src/LinkDotNet.Blog.Web/Features/Admin/BlogPostEditor/Components/VersionDiffDialog.razor |
Removes the explicit render call when closing the dialog. |
src/LinkDotNet.Blog.Web/Features/Admin/BlogPostEditor/Components/CreateNewBlogPost.razor |
Removes explicit render calls from shortcode and template handlers. |
src/LinkDotNet.Blog.Web/Authentication/OpenIdConnect/AuthExtensions.cs |
Uses an ordinal logout-path comparison. |
src/LinkDotNet.Blog.Infrastructure/Persistence/Sql/Mapping/BlogPostVersionConfiguration.cs |
Explicitly maps version tags as a primitive collection. |
src/LinkDotNet.Blog.Infrastructure/Persistence/Sql/Mapping/BlogPostConfiguration.cs |
Explicitly maps post tags as a primitive collection. |
global.json |
Selects the .NET 11 SDK. |
Dockerfile |
Updates SDK and ASP.NET runtime images to .NET 11. |
Directory.Packages.props |
Updates framework, provider, test, and tooling dependencies. |
Directory.Build.props |
Targets .NET 11, enables runtime async, and adjusts warning handling. |
.github/workflows/dotnet.yml |
Installs .NET 11 for build and test CI. |
.github/workflows/codeql.yml |
Replaces .NET 10 with .NET 11 in the CodeQL SDK setup. |
Review effort: Balanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrade to .NET 11 and turn on runtime async (
<Features>runtime-async=on</Features>).Code changes the upgrade forced:
Evidence
The LINQ expression 'DbSet<BlogPost>().Where(b => b.IsPublished && b.Tags.Contains(@Tag))' could not be translatedAfter:
dotnet test -c Releasepassed 700/700 (integration 228, unit 449, upgrade assistant 23)LinkDotNet.Blog.Infrastructure.dll: 29 → 0Merge Danger
Door: two-way
The stored data doesn't change:
Tagswas already stored as a JSON primitive collection, and no schema change is needed. Reverting the PR restores .NET 10.Blast Radius: hosting