Skip to content

Batch 3: Framework upgrade to net8.0+net10.0, remove Netty ConstantPool, AOT prep#366

Merged
JusterZhu merged 1 commit into
masterfrom
batch-3-framework-aot
May 24, 2026
Merged

Batch 3: Framework upgrade to net8.0+net10.0, remove Netty ConstantPool, AOT prep#366
JusterZhu merged 1 commit into
masterfrom
batch-3-framework-aot

Conversation

@JusterZhu
Copy link
Copy Markdown
Collaborator

Summary

Upgrades the Core project from netstandard2.0 to multi-target netstandard2.0;net8.0;net10.0, removes the Netty ConstantPool pattern, and prepares for AOT compilation.

Changes

csproj upgrade

  • TargetFrameworks: netstandard2.0;net8.0;net10.0 (backward-compatible)
  • IsAotCompatible + EnableTrimAnalyzer enabled for net8.0+
  • Conditional package references per TFM
  • IsExternalInit.cs only compiled for netstandard2.0

Netty ConstantPool removal (~200 lines removed)

  • Removed AbstractConstant, AbstractConstant\<T\>, ConstantPool, IConstant, IUpdateConfiguration
  • UpdateOption now uses a simple ConcurrentDictionary registry
  • UpdateOption\<T\>.DefaultValue built into the option key
  • GetOption() returns DefaultValue as fallback when not explicitly set
  • Removed PopulateDefaults() — defaults now live on UpdateOptions constants

Strategy fixes

  • Commented out DrivelutionMiddleware references until project reference is added
  • Fixed AppType name shadowing in UpdateOptions

Build

  • dotnet build src/c#/GeneralUpdate.slnx — 0 errors
  • dotnet build -f net10.0 — 0 errors
  • dotnet build -f net8.0 — 0 errors

Net reduction: 293 lines removed, 118 added

Closes #365

…ol, AOT prep

- Upgrade Core csproj: netstandard2.0 → netstandard2.0;net8.0;net10.0
  with IsAotCompatible and EnableTrimAnalyzer for net8.0+
- Remove Netty-style ConstantPool/AbstractConstant/IConstant patterns
  from UpdateOption. Replace with simple ConcurrentDictionary registry.
- UpdateOption<T> now carries DefaultValue; GetOption() returns it as fallback.
- Remove PopulateDefaults() from AbstractBootstrap — defaults live on options.
- Conditional IsExternalInit (only for netstandard2.0, built-in in net8.0+)
- Conditional SignalR.Client package references per target framework
- Comment out DrivelutionMiddleware references until project reference is added
- Fix AppType name shadowing in UpdateOptions

Closes #365
Copilot AI review requested due to automatic review settings May 24, 2026 10:10
@JusterZhu JusterZhu merged commit 6fd59f4 into master May 24, 2026
1 check failed
@JusterZhu JusterZhu deleted the batch-3-framework-aot branch May 24, 2026 10:11
@JusterZhu JusterZhu review requested due to automatic review settings May 24, 2026 10:34
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.

Batch 3: Framework upgrade to net8.0+net10.0 and AOT compatibility

1 participant