Skip to content

Issue / .NET 10 Update#479

Merged
SeferMirza merged 60 commits into
mouseless:mainfrom
SeferMirza:issue/dotnet-10-update
Mar 15, 2026
Merged

Issue / .NET 10 Update#479
SeferMirza merged 60 commits into
mouseless:mainfrom
SeferMirza:issue/dotnet-10-update

Conversation

@SeferMirza
Copy link
Copy Markdown
Member

@SeferMirza SeferMirza commented Mar 3, 2026

Upgrade .Net, C# and other versions.

Tasks

  • Learn .NET 10 Epic / .NET 10 learn-dotnet#42
  • install dotnet 10
  • upgrade dotnet version to 10
    Directory.Build.props, github actions, Dockerfile, .vimspector
  • upgrade c# version to 14
  • make sure packages fine with dotnet 10
  • upgrade github actions
    • checkout@v6
    • setup-dotnet@v5
    • setup-node@v6
    • upload-artifact@v7
    • download-artifact@v8
    • danielpalme/ReportGenerator-GitHub-Action@5.5.3
  • Opportunistic Improvements
    • Use CompareOptions.NumericOrdering property of the StringComparer
      object if it will make things easier
    • At first glance, it didn't seem necessary, but if needed, it looks like
      description support has been added to ProducesAttribute,
      ProducesResponseTypeAttribute, and ProducesDefaultResponseTypeAttribute
    • Use RedirectHttpResult.IsLocalUrl in places that check whether the URL
      redirects to the locale or externally
    • Use if necessary, the field keyword in properties
    • Now allows nameof for unbound generics. If there were different
      approaches previously because it wasn't allowed, these can be simplified
    • The partial constructor feature now supported. Use it if we need to
    • probably, the analyzer will already warn you, but just in case;
      • use implicit Span conversions to array
      • use simple lambda parameters with modifiers
      • use Null-Conditional assignment
  • Required Migrations
    • use .slnx instead of .sln. To migrate: dotnet sln migrate
    • use extension members
      • Property extensions will be used for those that do not take parameters and
        for specifying layer builders. exp: configure.Ui.ComponentPresets(...)
      • Suppress private extensions warning with #pragma
      • convert to property some methods
    • use Microsoft Testing Platform for testing
      • add <OutputType>Exe</OutputType> to all test projects
      • add <EnableNUnitRunner>true</EnableNUnitRunner> to Directory.Build.Props
      • some test flag changed. check here
      • add global.json
        {
          "test": {
            "runner": "Microsoft.Testing.Platform"
          }
        }
      • make scripts
  • Troubleshooting & Pitfalls(You should also test the tasks that can be checked
    to be sure)
    • HttpContent now returns BrowserHttpReadStream instead of MemoryStream
    • The warning level for audits has been raised in dotnet restore. If the
      error encountered cannot be resolved, the warning level can be lowered in
      Directory.Build.props or the relevant warning can be ignored
    • Validation APIs moved to Microsoft.Extensions.Validation
    • If you encounter any issues with OpenAPI, check here
      • Microsoft.OpenApi.Models no more exist. use Microsoft.OpenApi
      • The default initialization has been removed from some collections.
        If null, initialization is required.
      • OpenApiSecurityRequirement now takes, OpenApiSecuritySchemeReference
        and List<string>
      • now also in ISchemaFilter;
        • OpenApiSchema is now IOpenApiSchema
        • schema.Type is now JsonSchemaType
        • schema.Properties now nullable
        • schema.Example is now JsonNode
    • It may throw an error for Microsoft.AspNetCore.Localization.
      There is no longer a need to import this package separately
    • If dotnet restore is waiting for user input, it should be set to
      --interactive false
    • If you encounter an error or receive incorrect results when obtaining
      coverage, you may need to set EnableDynamicNativeInstrumentation to true
    • Since default! usage is the general rule, disable IDE warnings in the
      editor configuration.

Additional Tasks

  • move recipes to monolith recipes

@SeferMirza SeferMirza marked this pull request as ready for review March 13, 2026 12:42
@SeferMirza SeferMirza requested a review from a team March 13, 2026 12:43
Copy link
Copy Markdown
Member

@cihandeniz cihandeniz left a comment

Choose a reason for hiding this comment

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

i reviewed except the new recipe design

Comment thread core/src/Baked/CodingStyle/RichEntity/RichEntityCodingStyleFeature.cs Outdated
Comment thread core/test/Baked.Test.Specs/Baked.Test.Specs.csproj
Comment thread docs/layers/data-access.md Outdated
Comment thread unreleased.md Outdated
Comment thread core/src/Baked/Recipe/Monolith/MonolithRecipe.cs Outdated
Comment thread core/src/Baked/MonolithRecipe.cs Outdated
Comment thread core/src/Baked/Recipe/Monolith/MonolithRecipe.cs Outdated
Comment thread core/src/Baked/MonolithRecipe.cs Outdated
Comment thread core/src/Baked/Recipe/Monolith/MonolithRecipe.cs Outdated
Comment thread core/src/Baked/Recipe/Monolith/MonolithRecipe.cs Outdated
Comment thread samples/event-scheduler/src/Mouseless.EventScheduler.Application/Program.cs Outdated
Comment thread core/src/Baked/ExecutionMode.cs Outdated
Comment thread core/src/Baked/DataSourceSpec.cs Outdated
Comment thread core/src/Baked/BakeExtensions.cs Outdated
Comment thread core/src/Baked/Domain/DomainExtensions.cs Outdated
@SeferMirza SeferMirza merged commit 247adde into mouseless:main Mar 15, 2026
8 checks passed
@SeferMirza SeferMirza deleted the issue/dotnet-10-update branch March 15, 2026 19:57
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.

2 participants