Skip to content

feat: add reactive platform shim projects#259

Merged
ChrisPulman merged 3 commits into
mainfrom
CP_add-reactive-platform-shims
Jul 5, 2026
Merged

feat: add reactive platform shim projects#259
ChrisPulman merged 3 commits into
mainfrom
CP_add-reactive-platform-shims

Conversation

@ChrisPulman

@ChrisPulman ChrisPulman commented Jul 5, 2026

Copy link
Copy Markdown
Member

What kind of change does this PR introduce?

Adds the missing .Reactive sibling projects for the ReactiveUI platform integration packages and PluginService.

What is the new behavior?

  • Adds linked-source .Reactive projects for ReactiveUI Avalonia, MAUI, WinForms, WinUI, and WPF integration packages.
  • Adds Extensions.Hosting.PluginService.Reactive so PluginService can bind to Extensions.Hosting.Plugins.Reactive and expose the reactive plugin namespace.
  • Uses REACTIVE_SHIM conditional namespaces so shared source compiles as either the original package surface or ReactiveMarbles.Extensions.Hosting.Reactive.*.
  • Adds central package versions for the required ReactiveUI.Primitives.*.Reactive platform packages.

What is the current behavior?

Only Extensions.Hosting.Plugins.Reactive exists. The ReactiveUI platform integration projects and PluginService still only have non-reactive package surfaces.

Checklist

  • Tests have been added or updated (for bug fixes / features)
  • Docs have been added or updated (for bug fixes / features)
  • Changes target the main branch
  • PR title follows Conventional Commits

Additional information

PR #258 had already been merged and its branch deleted, so this follow-up is on CP_add-reactive-platform-shims.

Validation performed locally:

  • dotnet restore Extensions.Hosting.slnx
  • dotnet build Extensions.Hosting.slnx -c Release -warnaserror --no-restore /m:1 '/clp:ErrorsOnly;Summary'
  • dotnet test --solution Extensions.Hosting.slnx -c Release --coverage --coverage-output-format cobertura --results-directory .\TestResults -- --output Detailed

MTP coverage summary remains 100.00% line coverage for the configured covered Extensions.Hosting.* modules.

GitHub CI: BuildOnly / windows-latest passed on commit 328e3e5.

Projects:

- Add linked-source reactive siblings for ReactiveUI Avalonia, MAUI, WinForms, WinUI, and WPF integration projects.

- Add Extensions.Hosting.PluginService.Reactive so service-host APIs can bind to Extensions.Hosting.Plugins.Reactive.

- Register the new projects in Extensions.Hosting.slnx and centralize the required ReactiveUI.Primitives platform .Reactive package versions.

Source compatibility:

- Add REACTIVE_SHIM namespace conditionals to the shared ReactiveUI integration and PluginService source files.

- Switch PluginService shared source to the reactive plugin namespace when compiled for the reactive shim.

Validation:

- Verified full Release solution build with warnings as errors and MTP/TUnit solution tests with coverage.
Switch the platform hosting extensions to the ReactiveUI.Reactive package variants and conditionally import the matching builder namespaces for shim builds.
@ChrisPulman ChrisPulman marked this pull request as ready for review July 5, 2026 22:35
Documentation updates:
- Replaces the README overview with a source-backed reference covering package selection, target frameworks, and normal versus .Reactive package namespaces.
- Documents WPF, WinForms, WinUI, Avalonia, MAUI, MainUIThread, SingleInstance, Plugins, PluginService, ReactiveUI/Splat, and Identity EF Core public APIs.
- Adds C# examples for each major feature and documents ReactiveUI.Primitives project-file using aliases.

Validation:
- Verified markdown fence balance.
- Ran git diff --check.
- Confirmed no new direct System.Reactive package references were introduced.
@ChrisPulman ChrisPulman force-pushed the CP_add-reactive-platform-shims branch from 2d412db to 48b43da Compare July 5, 2026 22:56
@ChrisPulman ChrisPulman merged commit 4f8db57 into main Jul 5, 2026
1 check passed
@ChrisPulman ChrisPulman deleted the CP_add-reactive-platform-shims branch July 5, 2026 23:00
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.

1 participant