-
-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update project dependencies (#9860) #9871
Conversation
WalkthroughThe changes update dependency versions across multiple projects. Most package references in various *.csproj files have been incremented from version 9.0.1 to 9.0.2—with some Maui and WebView2 packages moving from 9.0.30 to 9.0.40—and testing SDKs adjusted accordingly. Several package.json files now use esbuild 0.25.0 and sass 1.84.0 instead of earlier versions. Global configuration files (global.json) have been updated to a newer SDK version and modified rollForward policies. In addition, new using directives and updated package versions have been added to Directory-level props files. Changes
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (12)
src/BlazorUI/Bit.BlazorUI.Assets/package-lock.json
is excluded by!**/package-lock.json
src/BlazorUI/Bit.BlazorUI.Extras/package-lock.json
is excluded by!**/package-lock.json
src/BlazorUI/Bit.BlazorUI.Icons/package-lock.json
is excluded by!**/package-lock.json
src/BlazorUI/Bit.BlazorUI/package-lock.json
is excluded by!**/package-lock.json
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/package-lock.json
is excluded by!**/package-lock.json
src/Bswup/Bit.Bswup/package-lock.json
is excluded by!**/package-lock.json
src/Bup/Bit.Bup/package-lock.json
is excluded by!**/package-lock.json
src/Butil/Bit.Butil/package-lock.json
is excluded by!**/package-lock.json
src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/package-lock.json
is excluded by!**/package-lock.json
src/Websites/Careers/src/Bit.Websites.Careers.Client/package-lock.json
is excluded by!**/package-lock.json
src/Websites/Platform/src/Bit.Websites.Platform.Client/package-lock.json
is excluded by!**/package-lock.json
src/Websites/Sales/src/Bit.Websites.Sales.Client/package-lock.json
is excluded by!**/package-lock.json
📒 Files selected for processing (45)
src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj
(1 hunks)src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj
(2 hunks)src/BlazorUI/Bit.BlazorUI.Assets/package.json
(1 hunks)src/BlazorUI/Bit.BlazorUI.Extras/package.json
(1 hunks)src/BlazorUI/Bit.BlazorUI.Icons/package.json
(1 hunks)src/BlazorUI/Bit.BlazorUI.Tests/Bit.BlazorUI.Tests.csproj
(1 hunks)src/BlazorUI/Bit.BlazorUI/package.json
(1 hunks)src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj
(1 hunks)src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj
(1 hunks)src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj
(1 hunks)src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/package.json
(1 hunks)src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj
(1 hunks)src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj
(1 hunks)src/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csproj
(1 hunks)src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Bit.Bswup.NewDemo.Client.csproj
(1 hunks)src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj
(1 hunks)src/Bswup/Bit.Bswup/package.json
(1 hunks)src/Bswup/FullDemo/Client/Bit.Bswup.Demo.Client.csproj
(1 hunks)src/Bswup/FullDemo/Server/Bit.Bswup.Demo.Server.csproj
(1 hunks)src/Bup/Bit.Bup.Demo/Bit.Bup.Demo.csproj
(1 hunks)src/Bup/Bit.Bup/package.json
(1 hunks)src/Bup/FullDemo/Client/Bit.Bup.Demo.Client.csproj
(1 hunks)src/Bup/FullDemo/Server/Bit.Bup.Demo.Server.csproj
(1 hunks)src/Butil/Bit.Butil/package.json
(1 hunks)src/Butil/Demo/Bit.Butil.Demo.Maui/Bit.Butil.Demo.Maui.csproj
(1 hunks)src/Butil/Demo/Bit.Butil.Demo.Web/Bit.Butil.Demo.Web.csproj
(1 hunks)src/Templates/BlazorEmpty/Bit.BlazorEmpty/global.json
(1 hunks)src/Templates/Boilerplate/Bit.Boilerplate/global.json
(1 hunks)src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/package.json
(1 hunks)src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props
(1 hunks)src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props
(3 hunks)src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages8.props
(3 hunks)src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj
(2 hunks)src/Websites/Careers/src/Bit.Websites.Careers.Client/package.json
(1 hunks)src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj
(1 hunks)src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj
(1 hunks)src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj
(2 hunks)src/Websites/Platform/src/Bit.Websites.Platform.Client/package.json
(1 hunks)src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj
(1 hunks)src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj
(1 hunks)src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj
(2 hunks)src/Websites/Sales/src/Bit.Websites.Sales.Client/package.json
(1 hunks)src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj
(1 hunks)src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj
(1 hunks)src/global.json
(1 hunks)
✅ Files skipped from review due to trivial changes (26)
- src/BlazorUI/Bit.BlazorUI.Icons/package.json
- src/Bup/Bit.Bup/package.json
- src/BlazorUI/Bit.BlazorUI.Assets/package.json
- src/Bswup/Bit.Bswup/package.json
- src/global.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Bit.Bswup.NewDemo.Client.csproj
- src/Butil/Bit.Butil/package.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj
- src/Bswup/FullDemo/Server/Bit.Bswup.Demo.Server.csproj
- src/Bup/FullDemo/Server/Bit.Bup.Demo.Server.csproj
- src/Bup/Bit.Bup.Demo/Bit.Bup.Demo.csproj
- src/Butil/Demo/Bit.Butil.Demo.Web/Bit.Butil.Demo.Web.csproj
- src/BlazorUI/Bit.BlazorUI.Extras/package.json
- src/Websites/Sales/src/Bit.Websites.Sales.Client/package.json
- src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj
- src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/package.json
- src/Websites/Platform/src/Bit.Websites.Platform.Client/package.json
- src/Websites/Careers/src/Bit.Websites.Careers.Client/package.json
- src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj
- src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/package.json
- src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj
- src/Bswup/FullDemo/Client/Bit.Bswup.Demo.Client.csproj
- src/BlazorUI/Bit.BlazorUI/package.json
- src/Bup/FullDemo/Client/Bit.Bup.Demo.Client.csproj
- src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj
- src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj
👮 Files not reviewed due to content moderation or server errors (4)
- src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props
- src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages8.props
- src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props
- src/Templates/Boilerplate/Bit.Boilerplate/global.json
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: build and test
🔇 Additional comments (23)
src/Templates/BlazorEmpty/Bit.BlazorEmpty/global.json (1)
3-4
: Verify the impact of SDK version and rollForward policy changes.The SDK version update to 9.0.200 looks good and aligns with the PR's dependency update objectives. However, changing
rollForward
tolatestFeature
is a significant change that could affect build reproducibility:
latestPatch
only allowed updates within patch versions (9.0.x)latestFeature
allows updates to newer feature versions (9.x.x)This could impact CI/CD pipelines and development environments differently based on installed SDK versions.
Let's verify the SDK version compatibility and potential impact:
❌ Verification inconclusive
🏁 Script executed:
#!/bin/bash # Check for installed .NET SDK versions and their support status dotnet --list-sdks # Check if the specific version is available in the official feed curl -s https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/9.0/releases.json | jq '.releases[] | select(.sdkVersion=="9.0.200")'Length of output: 261
🌐 Web query:
What is the latest .NET 9.0 SDK version and its release status?
💡 Result:
The latest .NET 9.0 SDK version is 9.0.102, released on January 14, 2025[4][10]. This release includes updated runtimes such as .NET Runtime 9.0.1 and ASP.NET Core Runtime 9.0.1[10].
Release Status
- Support Status: Active Standard Term Support (STS), ending on May 12, 2026[3][5][6].
- Latest Patch: Includes security updates and fixes from previous versions like 9.0.100 and 9.0.101[2][4].
To verify your installed SDK version:
$ dotnet --version # Output example: # 9.0.102 (if up-to-date)[4][10]For update instructions:
- Use
dotnet sdk check
to identify available patches[8].- Install via OS-specific package managers or direct downloads[10].
- Update project files by setting
<TargetFramework>net9.0</TargetFramework>
[7].The SDK supports cross-platform development on Android (API ≥21), iOS/iPadOS (v17+), macOS (v13+), and Linux distributions[3].
Citations:
- 1: https://versionsof.net/core/9.0/9.0.0/
- 2: https://www.conradakunga.com/blog/check-if-you-have-the-latest-net-sdk/
- 3: https://github.com/dotnet/core/blob/main/release-notes/9.0/supported-os.md
- 4: https://github.com/dotnet/core/blob/main/release-notes/9.0/9.0.1/9.0.1.md
- 5: https://endoflife.date/dotnet
- 6: https://versionsof.net
- 7: https://www.roundthecode.com/dotnet-blog/dotnet-9-released-how-do-you-update
- 8: https://dev.to/ssukhpinder/tracking-net-sdk-and-runtime-versions-with-dotnet-sdk-check-3f25
- 9: https://www.youtube.com/watch?v=nk_aYYxFyig
- 10: https://dotnet.microsoft.com/en-us/download/dotnet/9.0
Verify .NET SDK version consistency & potential rollForward impact
- The
global.json
update correctly sets the SDK to"9.0.200"
, reflecting the intended dependency update.- Changing
rollForward
from"latestPatch"
to"latestFeature"
means that if the exact version isn’t available, the SDK resolution may pick up a newer feature release instead. This could introduce variability in build reproducibility and impact CI/CD pipelines if environments have different available SDK versions.- Note that the web query indicates the latest .NET 9.0 SDK is reported as
"9.0.102"
. Since the script for checking installed SDKs did not produce output (due to the absence of thedotnet
command), please manually verify that version"9.0.200"
is available and intended for use in all relevant environments.src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props (3)
71-86
: LGTM! Well-organized global using directives.The added using directives are logically grouped and provide essential namespaces for the project:
- System namespaces for core functionality
- Microsoft.Extensions namespaces for dependency injection and configuration
- Project-specific Boilerplate namespaces
71-86
: LGTM! Well-organized namespace imports.The added using directives are logically grouped and cover essential namespaces for security, serialization, data annotations, dependency injection, configuration, and localization. This will help reduce code verbosity across the project.
71-86
: LGTM! Good additions to global using directives.The added using directives cover commonly used namespaces for authentication, serialization, data annotations, dependency injection, and localization. This will help reduce boilerplate code across the project.
src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages8.props (3)
13-98
: LGTM! Consistent package version updates.The changes update multiple packages from 8.0.12 to 8.0.13, maintaining consistency across related packages. Test packages are also updated to their latest stable versions.
13-98
: LGTM! Consistent package version updates.The changes update multiple packages to their latest stable versions:
- ASP.NET Core packages to 8.0.13
- Entity Framework Core packages to 8.0.13
- Test packages to their latest versions (MSTest 3.7.3, Playwright 1.50.0)
13-98
: Verify compatibility of updated package versions.The package updates appear to be patch version updates (8.0.12 → 8.0.13) which typically contain bug fixes and security patches. Let's verify these versions:
✅ Verification successful
🌐 Web query:
What is the latest version of Microsoft.AspNetCore.Components.WebAssembly for .NET 8?
💡 Result:
The latest version of Microsoft.AspNetCore.Components.WebAssembly for .NET 8 is
9.x
, but this targets.NET 9
. For.NET 8
, useMicrosoft.AspNetCore.Components.WebAssembly.Server
v9.x or earlier versions explicitly targeting.NET 8
[1][3][4][7][10].Key details:
- NuGet Package:
Microsoft.AspNetCore.Components.WebAssembly.Server
- Latest Version:
9.x
(targets.NET Core Hosting Bundle
)[1][3][10]- Compatibility:
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.x" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="9.x" />Upgrade Steps:
1️⃣ Update
.csproj
references to target.NET Core Hosting Bundle
:
xml <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.x" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="9.x" />
2️⃣ Ensure all dependencies align with
.NET Core Hosting Bundle
[3][4][7].For detailed migration guidance from
.NET Core Hosting Bundle
, see Migrate from ASP.NET Core in .NET Core Hosting Bundle[1].Citations:
- 1: https://learn.microsoft.com/en-us/aspnet/core/migration/70-80?view=aspnetcore-9.0&tabs=visual-studio
- 2: https://learn.microsoft.com/en-us/aspnet/core/blazor/supported-platforms?view=aspnetcore-9.0&viewFallbackFrom=aspnetcore-3.0
- 3: https://learn.microsoft.com/en-nz/answers/questions/2136286/error-after-upgrading-the-blazor-project-wasm-to-n
- 4: https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-in-dotnet-8/
- 5: https://learn.microsoft.com/en-us/aspnet/core/blazor/globalization-localization?view=aspnetcore-5.0&pivots=server
- 6: https://github.com/dotnet/core/blob/main/release-notes/8.0/8.0.7/8.0.7.md
- 7: https://learn.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-7.0
- 8: https://www.nuget.org/packages/Microsoft.AspNetCore.Components.WebAssembly.Server
- 9: https://www.youtube.com/watch?v=3Ur79_kHVpo
- 10: https://developercommunity.visualstudio.com/t/Updating-MicrosoftAspNetCoreComponents/10671126?sort=active
🌐 Web query:
Are there any known issues with Microsoft.EntityFrameworkCore version 8.0.13?
💡 Result:
Microsoft.EntityFrameworkCore 8.0.13 has several known considerations and potential issues based on its dependencies and framework requirements:
Compatibility and Framework Requirements
- Requires .NET 8 SDK/Runtime
EF Core 8.x (including 8.0.13) only runs on .NET 8[7][9]. Projects targeting older frameworks (e.g., .NET Framework or .NET Core ≤7) will fail unless migrated.Breaking Changes
- SQL Server Compatibility
Queries usingOPENJSON
require SQL Server ≥2016 or compatibility level ≥130[9]. Older databases may throw errors unless configured with:o.UseCompatibilityLevel(120) // For EF Core 8- Scaffolding Navigation Names
Navigation names generated from composite foreign keys no longer use column prefixes, potentially requiring manual adjustments[9].Tooling Issues
- dotnet-ef Installation Failures
Installingdotnet-ef
globally requires .NET 8 SDK[8]. Without it, installations fail with NU1202 errors:error NU1202: Package dotnet-ef is not compatible with net80
Migration Challenges
- Runtime Errors During Upgrades
Mixed package versions (e.g.,Microsoft.EntityFrameworkCore.InMemory
v7.x with EF Core v8.x) cause assembly conflicts[6]. Ensure all EF-related packages align to 8.x versions[4][6].Platform Limitations
- Azure SQL/Modern SQL Server Required
Features like hierarchy IDs requireMicrosoft.EntityFrameworkCore.SqlServer.HierarchyId
and compatible database engines[10]. Legacy systems may lack support.For detailed mitigation strategies for breaking changes, refer to Microsoft's EF Core Migration Guide[9].
Citations:
- 1: https://learn.microsoft.com/en-us/answers/questions/397721/entityframework-core-tools-nuget-package-installat
- 2: https://learn.microsoft.com/en-us/answers/questions/1110559/failed-executing-dbcommand-during-entity-framework
- 3: https://discourse.mcneel.com/t/moving-net-4-8-to-net-7-cause-sqlclient-platformnotsupportedexception/175307
- 4: https://learn.microsoft.com/en-us/answers/questions/265773/getting-error-while-scaffolding
- 5: https://learn.microsoft.com/en-us/answers/questions/721001/error-while-add-migration-initialize-in-net-6-enti
- 6: https://abp.io/support/questions/6769/runtime-error-after-upgrading-to-804
- 7: https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew
- 8: dotnet-ef installation fails since 8.0 release dotnet/sdk#36904
- 9: https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/breaking-changes
- 10: https://github.com/dotnet/core/blob/main/release-notes/8.0/8.0.13/8.0.13.md
Compatibility Verification: The updated package versions are appropriate for the .NET 8 environment.
- Microsoft.AspNetCore.Components.WebAssembly: For .NET 8, the file’s use of version 8.0.13 is suitable. Although newer (9.x) versions exist, they target .NET 9, so sticking to 8.0.13 avoids compatibility issues.
- Microsoft.EntityFrameworkCore (8.0.13): This patch update is designed for .NET 8. The known considerations mostly relate to ensuring the correct .NET 8 SDK/Runtime is in use, and no critical issues affect typical projects.
src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props (3)
13-101
: LGTM! Comprehensive package version updates.The changes update:
- Core packages from 9.0.1 to 9.0.2
- MAUI packages from 9.0.30 to 9.0.40
- Test packages to their latest stable versions
13-101
: LGTM! Comprehensive package version updates.The changes update multiple packages to their latest versions:
- ASP.NET Core packages to 9.0.2
- Entity Framework Core packages to 9.0.2
- MAUI packages to 9.0.40
Since these are preview versions of .NET 9, let's verify their stability:
✅ Verification successful
🌐 Web query:
What is the latest preview version of .NET 9 and its stability status?
💡 Result:
The latest stable release of .NET 9 is version 9.0, officially launched on November 12, 2024 as its General Availability (GA) release[5][9]. This marks the end of the preview/RC phase, with Microsoft confirming it as a production-ready release supported by a go-live license[2][5].
Key details about its stability and finalization:
- Performance/stability: Includes final optimizations from RC phases like improved startup times for containerized apps[8], JIT compiler enhancements[8], and ARM64 code generation improvements[1]
- Security: Features like expanded NuGet vulnerability auditing (now covering transitive dependencies)[1] and MSBuild integrity checks[1]
- Supported workloads: Production-ready support for ASP.NET Core, Blazor, MAUI, AI integration tools, and cloud-native development patterns[5][8]
While no new preview versions exist post-GA, Microsoft has already begun sharing early plans for .NET 10 through its public roadmap[9].
Citations:
- 1: https://devtoys.io/2024/07/09/whats-new-in-net-9-preview-6-comprehensive-overview/
- 2: .NET 9 RC 2 dotnet/core#9534
- 3: https://www.telerik.com/blogs/day-0-telerik-support-net-9
- 4: https://www.techcronus.com/blog/dotnet-9-preview-7/
- 5: https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/
- 6: https://leobit.com/blog/whats-new-in-net-9-a-business-centric-perspective-on-major-improvements-affecting-net-product-development/
- 7: .NET 9 Preview 7 dotnet/core#9448
- 8: https://www.bytehide.com/blog/everything-new-in-net-9-the-ultimate-developers-guide
- 9: https://en.wikipedia.org/wiki/.NET
- 10: https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview1/README.md
.NET 9 is now a GA release, confirming the stability of these package versions.
- The web query confirms that .NET 9 reached General Availability (GA) on November 12, 2024.
- This means that the packages updated to versions like 9.0.2 and 9.0.40 in the file are now based on a stable, production-ready release rather than preview builds.
13-101
: Verify stability of .NET 9 preview package versions.The package updates are from 9.0.1 to 9.0.2 which are preview versions of .NET 9. Let's verify these versions:
✅ Verification successful
🌐 Web query:
What is the current status of .NET 9? Is it in preview or released?
💡 Result:
.NET 9 has been released and is now generally available as of November 12, 2024[6][7]. Here’s a breakdown of its status:
Release Timeline
- Preview phases: Ran from August[2] through October[8] 2024, with Preview 7 releasing in August[5].
- General Availability (GA): Officially launched on November 12, 2024[6][7].
- Servicing updates: The latest update is 9.0.2, released on February 11, 2025[1][4][10].
Key Details
- Support lifecycle: Classified as a Standard Term Support (STS) release with support until May 12, 2026[3][5].
- Current version:
- Runtime: 9.0.2
- SDK: 9.0.200[10]
The framework transitioned out of preview status after its final Release Candidate (RC) in October[8], which included a "go-live" license for production use before GA[8]. Developers can now access stable builds via official channels like the Download .NET website[1].
Citations:
- 1: https://support.microsoft.com/en-au/topic/-net-9-0-update-february-11-2025-kb5052978-19a5783b-ce80-4c19-8dfe-edcde7d48a40
- 2: https://blog.devart.com/net-9-preview-rolls-out-whats-new.html
- 3: https://www.infoq.com/news/2024/07/ms-releases-dotnet-9-preview6/
- 4: https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-february-2025-servicing-updates/
- 5: https://www.infoq.com/news/2024/08/ms-releases-dotnet-9-preview7/
- 6: https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/
- 7: https://www.bytehide.com/blog/everything-new-in-net-9-the-ultimate-developers-guide
- 8: https://visualstudiomagazine.com/Articles/2024/10/09/Final-NET-9-Preview-Ships-with-Go-Live-License.aspx
- 9: https://www.youtube.com/watch?v=u738cXLyvug
- 10: https://github.com/dotnet/core/blob/main/release-notes/9.0/9.0.2/9.0.2.md
Stable .NET 9 Package Versions – No Changes Needed
The web result confirms that .NET 9 is now generally available, and version 9.0.2 is the current stable release rather than a preview.
- The packages in the file using version 9.0.2 are stable.
- The review comment’s reference to preview versions is based on outdated information.
src/Templates/Boilerplate/Bit.Boilerplate/global.json (3)
3-4
: Verify the implications of changing the rollForward policy.The SDK version update from 9.0.100 to 9.0.200 is expected, but changing
rollForward
fromlatestPatch
tolatestFeature
is significant:
latestPatch
only allows patch version updateslatestFeature
allows both feature and patch version updatesThis change could potentially lead to unexpected SDK version resolution in CI/CD pipelines or developer machines.
✅ Verification successful
🌐 Web query:
What are the differences between latestPatch and latestFeature in global.json rollForward policy?
💡 Result:
The
latestPatch
andlatestFeature
roll-forward policies inglobal.json
control how .NET SDK versions are selected when an exact match isn't available. Here's how they differ:
latestPatch
- Scope: Stays within the same feature band (e.g.,
8.0.1xx
) but selects the highest available patch version.- Behavior:
- Requires matching major, minor, and feature band (third version segment).
- Rolls forward only to higher patch versions (fourth segment) within that feature band.
- Fails if no higher patch exists[5][6].
Example:
{ "sdk": { "version": "8.0.102", "rollForward": "latestPatch" } }This allows
8.0.102
→8.0.103
(same feature band) but rejects8.0.2xx
[5][6].
latestFeature
- Scope: Moves to higher feature bands (e.g.,
8.0.1xx
→8.0.2xx
) under the same major/minor version while selecting their highest patch[5][6].- Behavior:
- Requires matching major and minor versions only.
- Rolls forward to newer feature bands (third segment) and their highest patches (fourth segment).
- Fails if no newer feature band exists[5][6].
Example:
{ "sdk": { "version": "8.0.102", "rollForward": "latestFeature" } }This allows
8.0.102
→8.0.203
(higher feature band)[5][6].
Key Differences
Policy Version Constraints Roll-Forward Flexibility Use Case latestPatch
Same major, minor, feature band Patch updates only Stability within a feature release latestFeature
Same major, minor Feature-band updates Access new features without major upgrades For instance:
- With
latestPatch
, specifying8.0.102
will use8.0.105
but not8.0.201
.- With
latestFeature
, specifying8.0.102
could use8.0.201
or8.0.305
, depending on installed SDKs[5][6].
Precedence & Compatibility
Both policies prioritize security patches by default but differ in how aggressively they adopt newer SDK features[3][6]. Use
latestFeature
for CI/CD pipelines requiring newer tooling or when working across multiple feature bands[7][8].Citations:
- 1: https://weblog.west-wind.com/posts/2023/Oct/02/Rolling-Forward-to-Major-Versions-in-NET
- 2: https://github.com/dotnet/runtime/blob/main/docs/design/features/framework-version-resolution.md
- 3: https://learn.microsoft.com/en-gb/dotnet/core/versions/selection
- 4: When using global.json value of rollForward should be considered actions/setup-dotnet#223
- 5: https://learn.microsoft.com/en-us/dotnet/core/tools/global-json
- 6: https://github.com/dotnet/designs/blob/main/accepted/2020/global-json-updates.md
- 7: https://www.compositional-it.com/news-blog/specifying-net-versions/
- 8: global.json rollForward to latestMajor? fluentassertions/fluentassertions#1665
- 9: https://alessio.franceschelli.me/posts/dotnet/should-i-use-global-json/
Implications of Changing
rollForward
Policy
latestPatch
restricts updates strictly to patch-level changes within the same feature band (i.e., matching major, minor, and feature segments) ensuring stability.latestFeature
permits the roll-forward to higher feature bands (requiring only matching major and minor versions), which may introduce new features not present in the original release.- This change means that environments (CI/CD pipelines or developer machines) might unexpectedly resolve to a newer SDK version with additional features, potentially impacting compatibility or behavior if the codebase isn’t tested against these changes.
3-4
: Consider the implications of the rollForward policy change.The changes include:
- SDK version update to 9.0.200, which aligns with the package updates.
- rollForward policy change from "latestPatch" to "latestFeature", which is more aggressive.
The new "latestFeature" policy will automatically use newer feature versions of the SDK. While this ensures you get the latest features, it might introduce unexpected changes. Consider if "latestPatch" would be more suitable for maintaining stability.
Let's verify the implications:
✅ Verification successful
🌐 Web query:
What are the differences between latestPatch and latestFeature in .NET SDK's rollForward policy?
💡 Result:
The
latestPatch
andlatestFeature
policies in .NET SDK’srollForward
configuration control how SDK versions are selected during builds or runtime. Here’s a breakdown of their differences:
Policy Behavior Scope of Update Example Use Case latestPatch Selects the highest patch version within the specified feature band (e.g., 8.0.1xx
)Patch-level updates only Security fixes or critical patches without adopting new tooling features latestFeature Selects the highest feature band (e.g., 8.0.3xx
) and its highest patch versionFeature-band + patch updates Accessing new SDK tooling features (e.g., MSBuild/NuGet updates) without major changes Key Differences:
Scope
latestPatch
: Restricted to patch versions within a fixed feature band (e.g.,8.0.100
→8.0.102
).latestFeature
: Rolls forward to higher feature bands (e.g.,8.0.100
→8.0.300
) while also selecting their highest patch[4][7].Failure Conditions
latestPatch
: Fails if no matching patch exists in the specified feature band[4].latestFeature
: Fails only if no higher feature band exists within the same major/minor version[4].Use Cases
- Use
latestPatch
for stability when you want only security/patches without tooling changes[4].- Use
latestFeature
to adopt newer SDK tooling features (e.g., C# compiler updates) without requiring a major/minor version bump[7].Example Configuration:
{ "sdk": { "version": "8.0.302", "rollForward": "latestFeature" } }This config allows using any higher
8.0.x
SDK (e.g.,8.0.400
) but not cross into8.1.x
or9.x.x
[4][7].By contrast:
{ "sdk": { "version": "8.0.302", "rollForward": "latestPatch" } }Restricts updates to patches within
8.0.3xx
(e.g.,8.0.305
)[4].Citations:
- 1: https://weblog.west-wind.com/posts/2023/Oct/02/Rolling-Forward-to-Major-Versions-in-NET
- 2: https://natemcmaster.com/blog/2019/01/09/netcore-primitives-3/
- 3: Major-version roll-forward options for Core 3.0 dotnet/docs#12237
- 4: https://learn.microsoft.com/en-us/dotnet/core/tools/global-json
- 5: https://anthonysimmon.com/automate-dotnet-sdk-updates-global-json-renovate/
- 6: [Proposal] .NET Tools should default to running on the latest available Runtime dotnet/sdk#30336
- 7: https://github.com/dotnet/designs/blob/main/accepted/2022/version-selection.md
- 8: https://devcenter.heroku.com/articles/dotnet-heroku-support-reference
- 9: https://learn.microsoft.com/en-gb/dotnet/core/versions/selection
- 10: Consider adding Roll Forward policy for dotnet-script tool dotnet-script/dotnet-script#624
Review Implications on RollForward Policy Change
- The updated configuration in
src/Templates/Boilerplate/Bit.Boilerplate/global.json
now specifies SDK version"9.0.200"
with"rollForward": "latestFeature"
.- The
latestFeature
setting allows roll forward not only within the patch level but also across feature bands. This means that if a newer feature version (e.g., moving from9.0.200
to9.0.300
) becomes available, the SDK will automatically use it.- By contrast, the
latestPatch
policy restricts updates to only patch-level changes within the same feature band, enhancing stability by preventing potential feature-level modifications.- While the
latestFeature
option provides access to new tooling and compiler improvements, it might also introduce unexpected changes that could affect stability. Developers should ensure that this behavior aligns with their application's reliability requirements.
3-4
: Consider the implications of usinglatestFeature
rollForward policy.While updating the SDK version is good, changing
rollForward
fromlatestPatch
tolatestFeature
makes version resolution more permissive:
latestPatch
only rolls forward to the latest patch version (9.0.x)latestFeature
can roll forward to the latest feature version (9.x.x)This could potentially lead to unexpected behavior if a new feature version is released with breaking changes.
✅ Verification successful
🌐 Web query:
What are the differences between rollForward policies in .NET SDK's global.json?
💡 Result:
The
rollForward
policies in .NET SDK'sglobal.json
determine how the SDK selects versions when executing CLI commands. These policies balance compatibility with access to newer features or patches. Below are key differences between available policies:
Policy Descriptions
Policy Behavior Use Case patch
Uses highest patch version within specified major/minor/feature band if exact version missing[4][6]. Maintain stability while allowing security patches (default for exact versions)[4]. feature
Rolls forward to next feature band (e.g., 8.0.2xx → 8.0.3xx) if missing[3][4]. Adopt new tooling features within same major/minor version[3]. minor
Default behavior if no policy specified[6]. Uses next higher minor version if requested minor missing; otherwise applies LatestPatch
[1][6].Balance compatibility with minor updates[6]. major
Rolls to next higher major version if missing; uses minor
policy if major exists[1][6].Allow breaking changes cautiously[6]. latestPatch
Forces highest patch version available for specified SDK[4][6]. Critical security/stability fixes without minor updates[6]. latestFeature
Selects latest feature band within same major/minor (e.g., 8.0.401 → 8.0.502)[3][4]. Access latest tooling improvements without major changes[8]. latestMinor
Uses highest minor version under specified major (e.g., 7.x → 8.x not allowed)[4][6]. Leverage non-breaking minor updates[8]. latestMajor
Selects highest installed SDK regardless of version (e.g., 7.x → 9.x)[4][6][8]. Prioritize bleeding-edge features over compatibility[8]. disable
Strictly uses specified version; no roll-forward[1][6]. Testing specific versions (not recommended for production)[6].
Key Notes
- Precedence: Policies follow this priority order:
*.runtimeconfig.json
→DOTNET_ROLL_FORWARD
env variable →--roll-forward
CLI arg[6].- Pre-release SDKs: Requires
allowPrerelease: true
inglobal.json
+ environment variableDOTNET_ROLL_FORWARD_TO_PRERELEASE=1
[1][4].- Default Behavior:
- If no
global.json
, uses latest installed SDK[8].- If
global.json
specifies a version withoutrollForward
, defaults tolatestPatch
[4].
Example Configurations
// Use latest 8.x SDK with prereleases allowed { "sdk": { "version": "8.0.100", "rollForward": "latestMajor", "allowPrerelease": true } } // Lock to 7.x feature band but allow patches { "sdk": { "version": "7.0.200", "rollForward": "latestFeature" } }
Understanding these policies helps manage SDK compatibility across development environments while balancing stability and access to updates[4][6][8]. For production systems,
latestPatch
orminor
are often safest; for CI/CD pipelines testing multiple versions,latestMajor
may be appropriate[3][8].Citations:
- 1: https://weblog.west-wind.com/posts/2023/Oct/02/Rolling-Forward-to-Major-Versions-in-NET
- 2: Can't support required SDK version in global.json due to patch version installation policy dotnet/sdk#16399
- 3: https://github.com/dotnet/designs/blob/main/accepted/2020/global-json-updates.md
- 4: https://learn.microsoft.com/en-us/dotnet/core/tools/global-json
- 5: https://rider-support.jetbrains.com/hc/en-us/articles/360016096799-Support-for-the-Upcoming-NET-SDK-6-0
- 6: https://learn.microsoft.com/en-gb/dotnet/core/versions/selection
- 7: Build fail with SDK style project, Mono MSBuild, and global.json with rollForward policy. mono/mono#19971
- 8: https://www.compositional-it.com/news-blog/specifying-net-versions/
- 9: When using global.json value of rollForward should be considered actions/setup-dotnet#223
- 10: https://youtrack.jetbrains.com/issue/RIDER-105215/Automatic-.NET-installation-feature-doesnt-recognize-rollForward-and-allowPrerelease-policies-from-global.json-when-specific-SDK
Clarification on Using
latestFeature
inglobal.json
The
latestFeature
roll-forward policy is considerably more permissive thanlatestPatch
. WithlatestFeature
, the SDK can roll forward to a newer feature band (e.g., from 9.0.200 to a higher 9.0.x version that may include additional tool improvements) rather than limiting updates strictly to patch versions. This may introduce breaking changes if a new feature release behaves differently. Please ensure that this level of flexibility aligns with your project's stability and compatibility requirements.src/BlazorUI/Bit.BlazorUI.Tests/Bit.BlazorUI.Tests.csproj (1)
17-17
: Verify test SDK version compatibility.The update of Microsoft.NET.Test.Sdk from 17.12.0 to 17.13.0 appears to be a minor version bump. Let's verify the latest stable version.
✅ Verification successful
🌐 Web query:
What is the latest stable version of Microsoft.NET.Test.Sdk? Are there any breaking changes in Microsoft.NET.Test.Sdk 17.13.0?
💡 Result:
The latest stable version of Microsoft.NET.Test.Sdk is 17.13.0, as confirmed by its NuGet listing [9].
Breaking Changes in 17.13.0
Key considerations for compatibility:
Dropped support for end-of-life .NET versions:
- Projects targeting net6.0 (or older frameworks) must either:
- Pin their
Microsoft.NET.Test.Sdk
dependency to 17.13.0 explicitly, or- Update their target framework to net8+ [1][7].
- This does not affect:
- Running tests from .NET Framework 4.6.2 projects [1].
- Using newer Visual Studio or .NET SDKs with existing projects [1].
Infrastructure updates:
- Build system migrated to use Win11/macOS14 images and removed legacy components like
xcopy-msbuild
[1].- Added support for RISC-V64, UWP .NET 9, and improved terminal logging [1][6].
For most users, this release focuses on security/stability improvements rather than disruptive changes [4][9]. Projects already targeting supported frameworks (net8/net9) can upgrade seamlessly.
Citations:
- 1: https://github.com/microsoft/vstest/releases
- 2: https://github.com/Microsoft/vstest-docs/blob/main/docs/releases.md
- 3: https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-mstest-sdk
- 4: https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes
- 5: Update Microsoft.NET.Test.Sdk to latest dotnet/arcade#5291
- 6: https://docs.nunit.org/articles/nunit/getting-started/dotnet-core-and-dotnet-standard.html
- 7: https://dotnet.microsoft.com/en-us/download/dotnet
- 8: https://dotnet.microsoft.com/en-us/download/dotnet/9.0
- 9: https://www.nuget.org/packages/microsoft.net.test.sdk
- 10: https://youtrack.jetbrains.com/issue/RSRP-498837/Support-Microsoft.Testing.Platform-tests-discovery-without-Microsoft.NET.Test.Sdk
Test SDK version update verified as current and compatible.
- Microsoft.NET.Test.Sdk 17.13.0 is confirmed as the latest stable release.
- No breaking changes affect supported target frameworks for this project, aside from the noted scenario with net6.0 (or older) targets.
src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj (1)
17-19
: Verify version consistency across projects.The update of Microsoft.Extensions.* packages and System.Text.Json from 9.0.1 to 9.0.2 appears consistent with other projects. Let's verify all related packages are updated.
✅ Verification successful
🏁 Script executed:
#!/bin/bash # Check for any remaining 9.0.1 versions of Microsoft.Extensions.* and System.Text.Json echo "Checking for outdated package versions..." rg "Include=\"Microsoft\.Extensions.*\" Version=\"9\.0\.1\"" -l rg "Include=\"System\.Text\.Json\" Version=\"9\.0\.1\"" -lLength of output: 211
Version consistency confirmed across projects.
The search for any remaining references to version 9.0.1 returned no results, indicating that all package references for Microsoft.Extensions.* and System.Text.Json have been successfully updated to 9.0.2.
src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj (1)
17-19
: Package updates are consistent.The version updates for Microsoft.Extensions.* packages and System.Text.Json match those in other projects, maintaining consistency across the solution.
src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj (1)
16-19
: Package updates are consistent and complete.The version updates include all relevant Microsoft.Extensions.* packages and System.Text.Json, maintaining consistency with other projects in the solution.
src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj (1)
10-12
: Package updates are consistent!The package versions match those in other server projects.
src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj (1)
10-12
: Package updates are consistent!The package versions match those in other server projects.
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj (1)
41-43
: Windows-specific package updates look good!The updates are consistent with other projects:
- ASP.NET Core Components Web updated to 9.0.2
- WebView packages updated to latest versions
❌ Verification inconclusive
🌐 Web query:
What is the latest version of Microsoft.Web.WebView2 package?
💡 Result:
The latest stable version of the
Microsoft.Web.WebView2
NuGet package is 1.0.2957.106, released on January 20, 2025[1][4]. This version introduced stable APIs for resolving WPF airspace issues viaWebView2CompositionControl
and addressed rendering bugs[1].For developers opting for experimental features, the latest prerelease version is 1.0.3079-prerelease, released on January 24, 2025[1][6]. Key updates include:
- Sandbox isolation improvements (
IsolateSandboxedIframes
)- Focus-related bug fixes for download dialogs
- Enhanced accelerator key handling[1]
Both versions require matching WebView2 Runtime builds (132.x for stable, 134.x for prerelease)[1][6]. Developers can install these via Visual Studio's NuGet Package Manager by toggling Include prerelease when searching for
Microsoft.Web.WebView2
[2][5].Citations:
- 1: https://learn.microsoft.com/en-us/microsoft-edge/webview2/release-notes/?tabs=dotnetcsharp
- 2: https://learn.microsoft.com/en-us/microsoft-edge/webview2/how-to/machine-setup
- 3: https://learn.microsoft.com/zh-tw/microsoft-edge/webview2/?view=webview2-1.0.1418.22
- 4: https://www.nuget.org/packages/microsoft.web.webview2
- 5: https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/versioning
- 6: https://nugetmusthaves.com/Package/Microsoft.Web.WebView2
- 7: https://developer.microsoft.com/en-us/microsoft-edge/webview2/?form=MA13LH
- 8: https://forum.linqpad.net/discussion/3258/help-with-understanding-the-latest-webview2
- 9: Webview2 nuget package 1.0.961.33 triggers compiler warnings MicrosoftEdge/WebView2Feedback#1722
- 10: https://www.nuget.org/profiles/webview
Action: Verify the WebView2 package version
Based on the web query, the latest stable version of the
Microsoft.Web.WebView2
NuGet package is 1.0.2957.106 while the project is using version 1.0.3065.39. This version number isn’t the latest stable nor the prerelease version. Please confirm if the higher package revision in the project is intentional due to consistency with other projects or additional internal testing.
- Ensure consistency across projects if an update is desired.
- If a rollback to the latest stable version is intended, update the package reference accordingly.
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj (1)
27-29
: LGTM! Package versions are consistent.The updates to Microsoft packages from 9.0.1 to 9.0.2 are consistent with each other and align with the PR objective.
src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj (1)
16-16
: LGTM! Package versions are consistent.The updates to Microsoft.AspNetCore.Components packages (WebAssembly and Web) from 9.0.1 to 9.0.2 are consistent with other files and align with the PR objective.
Also applies to: 39-39
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj (1)
106-107
: LGTM! MAUI package versions are consistent.The updates to MAUI-related packages from 9.0.30 to 9.0.40 are consistent with each other and align with the PR objective.
Let's verify these are the latest stable versions:
❌ Verification inconclusive
🌐 Web query:
What is the latest stable version of Microsoft.Maui.Controls?
💡 Result:
The latest stable version of Microsoft.Maui.Controls is 9.0.30, as confirmed by its NuGet package listing and dependency details[1][4]. This release supports .NET 9 and targets platforms including Android 35.0, iOS 18.0, macOS Catalyst 18.0, Tizen 7.0, and Windows SDKs[1][3].
For developers upgrading from .NET MAUI 8.x, Microsoft recommends updating project files to reference .NET 9 packages and adjusting platform-specific build properties[6]. The focus of .NET MAUI in version 9 centers on quality improvements and expanded platform compatibility[6].
Citations:
- 1: https://www.nuget.org/packages/Microsoft.Maui.Controls/
- 2: https://learn.microsoft.com/en-us/dotnet/api/microsoft.maui.controls.application.current?view=net-maui-9.0
- 3: https://github.com/dotnet/maui/wiki/Release-Versions/40ff3ea1e3589a00702e1819d82db6e8507bf1e2
- 4: https://www.nuget.org/packages/Microsoft.Maui.Controls.Core/
- 5: https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-8?view=net-maui-9.0
- 6: https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-9?view=net-maui-8.0
- 7: https://learn.microsoft.com/en-us/dotnet/api/microsoft.maui.controls?view=net-maui-9.0
- 8: https://github.com/dotnet/maui/releases
- 9: .NET MAUI 8.0.92 (Service Release 9.2) dotnet/maui#25300
- 10: Microsoft.Maui.Controls 8.0.90 (Latest stable) Ruins Entry Controls dotnet/maui#24783
Let's also verify the stable version of the
Microsoft.AspNetCore.Components.WebView.Maui
package.What is the latest stable version of Microsoft.AspNetCore.Components.WebView.Maui?
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.2" /> | ||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="9.0.2" PrivateAssets="all" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Verify package version compatibility.
The update of ASP.NET Core packages from 9.0.1 to 9.0.2 appears to be a minor version bump. Let's verify the latest stable versions and any breaking changes.
🌐 Web query:
What is the latest stable version of Microsoft.AspNetCore.Components.WebAssembly?
Are there any breaking changes in ASP.NET Core 9.0.2?
💡 Result:
The latest stable version of Microsoft.AspNetCore.Components.WebAssembly
is 9.0.1 (as shown on its NuGet page)[10].
For ASP.NET Core 9.x, there are several breaking changes documented:
Key ASP.NET Core Breaking Changes in .NET 9
Change | Type | Impact |
---|---|---|
HostBuilder enables ValidateOnBuild /ValidateScopes in development environments |
Behavioral | Apps may fail startup validation if services have unresolved dependencies[2]. |
Dev cert export no longer creates folders automatically | Behavioral | Manual folder creation required before exporting certificates[2]. |
Middleware with multiple constructors | Behavioral | Middleware classes must now have exactly one public constructor[2]. |
Blazor WebSocket compression enabled by default | Behavioral | Reduces payload size but introduces frame-ancestors: 'self' CSP policy by default[5]. |
Legacy Mono/Emscripten APIs not globally exported | Source incompatible | Requires explicit imports for these APIs[2]. |
For full details, see [Breaking changes in .NET 9][2] and [ASP.NET Core migration guide][6].
No breaking changes specific to **ASP.NET Core 9.0.2 are documented in the provided sources (latest information covers general .NET 9.x changes).
Citations:
- 1: https://learn.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-7.0
- 2: https://learn.microsoft.com/en-us/dotnet/core/compatibility/9.0
- 3: https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/rc2/aspnetcore.md
- 4: https://learn.microsoft.com/en-us/aspnet/core/blazor/?view=aspnetcore-9.0&viewFallbackFrom=aspnetcore-3.0
- 5: https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview2/aspnetcore.md
- 6: https://learn.microsoft.com/en-us/aspnet/core/migration/80-90?view=aspnetcore-8.0
- 7: https://learn.microsoft.com/vi-vn/aspnet/core/migration/60-70?view=aspnetcore-3.1
- 8: https://docs.fluentvalidation.net/en/latest/upgrading-to-9.html
- 9: https://abp.io/community/articles/upgrade-your-existing-projects-to-.net7-nmx6vm9m
- 10: https://www.nuget.org/packages/microsoft.aspnetcore.components.webassembly
Action: Revisit the package version update.
- The NuGet information indicates that the latest stable version of
Microsoft.AspNetCore.Components.WebAssembly
is 9.0.1, not 9.0.2. - Although there are general breaking changes noted across .NET 9.x, no breaking changes have been identified that are specific to version 9.0.2.
- Consider reverting to 9.0.1 unless there’s a deliberate reason for targeting 9.0.2.
closes #9860
Summary by CodeRabbit