Skip to content

[Add] net10.0 as a target framework to all 12 library projects#391

Merged
samatstariongroup merged 1 commit into
developmentfrom
add-net10-to-tfm
May 4, 2026
Merged

[Add] net10.0 as a target framework to all 12 library projects#391
samatstariongroup merged 1 commit into
developmentfrom
add-net10-to-tfm

Conversation

@samatstariongroup

Copy link
Copy Markdown
Member

Prerequisites

  • I have written a descriptive pull-request title
  • I have verified that there are no overlapping pull-requests open
  • I have verified that I am following the COMET-SDK code style guidelines
  • I have provided test coverage for my change (where applicable)

Description

  • Added net10.0 to <TargetFrameworks> in all 12 library projects. The 10 projects that were net48;netstandard2.0 become
    net48;netstandard2.0;net10.0; CDP4ServicesMessaging and CDP4Web move from netstandard2.0 to netstandard2.0;net10.0. Existing net48
    and netstandard2.0 consumers are unaffected.

  • CDP4Common\Polyfills\TypePolyfills.cs: #if NETFRAMEWORK#if NETFRAMEWORK || NET so net10 uses direct Type.Assembly / Type.IsValueType instead of the GetTypeInfo() shim — relevant for the MetaInfo / PocoThingFactory reflection hot path.

  • CDP4Common\Extensions\IEnumerableExtensions.cs: wrapped the DistinctBy polyfill in #if !NET to resolve CS0121 ambiguity with the in-box System.Linq.Enumerable.DistinctBy on net10.

  • <PackageReleaseNotes> reset to [Add] net10.0 as a Target Framework across all 12 library csproj files.

  • The 22 #if NETFRAMEWORK MEF blocks already correctly route net10 through the #else (no-MEF, plain DI) branch — same contract as the existing netstandard2.0 path. No changes required.

    Why

Net10 consumers (including this SDK's own *.NetCore.Tests projects) currently load the netstandard2.0 build via compatibility shims and pull polyfilled NuGet packages instead of the in-box BCL. A native net10.0 TFM gives them in-box System.Text.Json (with hardware-intrinsic UTF-8 in Utf8JsonReader/Writer), faster Span<T>, optimized ConcurrentDictionary(used heavily inAssembler`), and dynamic PGO over the DTO ↔ POCO conversion pipeline. Purely additive — no breaking changes.

@samatstariongroup samatstariongroup merged commit f5e96fe into development May 4, 2026
7 checks passed
@samatstariongroup samatstariongroup deleted the add-net10-to-tfm branch May 4, 2026 07:37
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