Skip to content

Conversation

@OlegoO
Copy link
Contributor

@OlegoO OlegoO commented Nov 24, 2025

Description

feat: Upgrade to .NET 10

References

QA-test:

Jira-link:

Artifact URL:


Note

Upgrade solution to .NET 10 with broad dependency updates, OpenIddict/Swagger refactors, new EF Core 10 migrations, and upgrade docs/script.

  • Platform upgrade to .NET 10
    • Set TargetFramework to net10.0 across projects; bump version to 3.1000.0 and copyright to 2026.
    • Broad package updates: EF Core 10, ASP.NET Core 10, OpenIddict 7.2, Swashbuckle 10, Microsoft.OpenApi 2.3.0, Redis, Serilog, etc.
    • Add icon.png to NuGet packages via Directory.Build.props.
  • Security/OpenIddict
    • Replace deprecated APIs: use PromptValues/HasPromptValue, EnableEndSessionEndpointPassthrough, SetUserInfoEndpointUris, etc.
    • Register token store via IOpenIddictTokenStore<...>; remove custom resolver.
    • VirtoOpenIddictEntityFrameworkCoreTokenStore updated to new EF Core context interface and non-async override signature.
    • Use X509CertificateLoader for loading certs (incl. PKCS12).
  • EF Core 10 migrations (SQL Server)
    • Increase OpenIddictTokens.Type max length to 150.
    • Change AspNetUserTokens LoginProvider/Name to nvarchar(128); drop/recreate PK accordingly; snapshot updated.
    • Model tweaks in SecurityDbContext (set max lengths for IdentityUserToken).
  • Swagger/OpenAPI refactor
    • Migrate to Microsoft.OpenApi types and adjust filters (ArrayInQueryParametersFilter, OptionalParametersFilter, OpenIDEndpointDescriptionFilter, etc.).
    • Remove EnumSchemaFilter; update tag/module metadata handling; map object to JsonSchemaType.Object.
  • Web/Startup and config
    • Wire up OpenIddict server/validation with new methods; minor pipeline cleanup.
    • Forwarded headers: use KnownIPNetworks.Clear().
    • appsettings.json: comment out SQL Server CompatibilityLevel.
  • Docs & tooling
    • Add upgrade guide docs/release-information/update-to-version-3-1000/... and vc-net10-update.ps1 script.
  • Misc
    • CSS tweak for .platform-error-bar .close sizing.
    • Tests/projects moved to net10.0, test deps updated; fix assertions (countries count 250).

Written by Cursor Bugbot for commit 71569b7. This will update automatically on new commits. Configure here.

Image tag:
ghcr.io/VirtoCommerce/platform:3.1000.0-pr-2965-7156-net10-71569b70

if (!parameter.Style.HasValue)
var parameter = operation.Parameters[i];
if (parameter.In == ParameterLocation.Query
&& parameter.Schema.Type == JsonSchemaType.Array
Copy link

Choose a reason for hiding this comment

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

Bug: Potential null reference on parameter Schema access

The code accesses parameter.Schema.Type without null checking parameter.Schema first. In OpenAPI v3, the Schema property can be null when Content is used instead for parameter definition. This will throw a NullReferenceException if a parameter uses content-based schema definition rather than direct schema assignment.

Fix in Cursor Fix in Web

@sonarqubecloud
Copy link

<PackageReference Include="GenFu" Version="1.6.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="6.0.0" />
<PackageReference Include="BenchmarkDotNet" Version="3.1000.0" />
<PackageReference Include="GenFu" Version="3.1000.0" />
Copy link

Choose a reason for hiding this comment

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

Bug: Invalid NuGet package versions cause build failure

The BenchmarkDotNet and GenFu packages have version "3.1000.0" which does not exist on NuGet. The actual latest versions are around 0.15.x for BenchmarkDotNet and 1.6.x for GenFu. These invalid versions were likely incorrectly applied by the update script and will cause NuGet restore to fail when building the benchmark project.

Fix in Cursor Fix in Web

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.

3 participants