feat: add reactive platform shim projects#259
Merged
Conversation
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.
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.
2d412db to
48b43da
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What kind of change does this PR introduce?
Adds the missing
.Reactivesibling projects for the ReactiveUI platform integration packages and PluginService.What is the new behavior?
.Reactiveprojects for ReactiveUI Avalonia, MAUI, WinForms, WinUI, and WPF integration packages.Extensions.Hosting.PluginService.Reactiveso PluginService can bind toExtensions.Hosting.Plugins.Reactiveand expose the reactive plugin namespace.REACTIVE_SHIMconditional namespaces so shared source compiles as either the original package surface orReactiveMarbles.Extensions.Hosting.Reactive.*.ReactiveUI.Primitives.*.Reactiveplatform packages.What is the current behavior?
Only
Extensions.Hosting.Plugins.Reactiveexists. The ReactiveUI platform integration projects and PluginService still only have non-reactive package surfaces.Checklist
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.slnxdotnet 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 DetailedMTP coverage summary remains 100.00% line coverage for the configured covered
Extensions.Hosting.*modules.GitHub CI:
BuildOnly / windows-latestpassed on commit328e3e5.