ReactiveUI packages are now signed by the dotnet foundation. Only builds from their infrastructure carry this seal. ReactiveUI uses Azure Dev Ops for our CI pipeline. Each platform has packages that extend the base ReactiveUI offerings for it's concerns. Installing the correct packages for the correct platform can be somewhat of a pain.
Platform | ReactiveUI Package | NuGet |
---|---|---|
.NET Standard | ReactiveUI | |
ReactiveUI.Fody | ||
.NET | ReactiveUI | |
ReactiveUI.Fody | ||
Unit Testing | ReactiveUI.Testing | |
WPF | ReactiveUI.WPF | |
WinUI | ReactiveUI.WinUI | |
MAUI | ReactiveUI.Maui | |
Windows Forms | ReactiveUI.WinForms | |
Xamarin.Forms | ReactiveUI.XamForms | |
Xamarin.Essentials | ReactiveUI | |
AndroidX (Xamarin) | ReactiveUI.AndroidX | |
Xamarin.Android | ReactiveUI.AndroidSupport | |
Xamarin.iOS | ReactiveUI | |
Xamarin.Mac | ReactiveUI | |
Tizen | ReactiveUI | |
Blazor | ReactiveUI.Blazor | |
Uno | ReactiveUI.Uno | |
Uno WinUI | ReactiveUI.Uno.WinUI | |
Avalonia | Avalonia.ReactiveUI | |
Any | ReactiveUI.Validation |
Note ReactiveUI has packages for older .NET versions. Those packages are unlisted from NuGet and not supported, but you can still use them at your own risk to have ReactiveUI running on good old devices, such as Lumias, Surface Hubs, Windows XP, etc. See Delisting of versions before 8.0.0 from NuGet blog post for more info.
Example
The following isn't an exhausitve example, as some solutions will follow a different project structure or only use a subset of the platforms, but it should be enough to help with which packages to install on each platform project. Note non-platform specific packages (Reactive.Fody etc.) can be installed on any platform; Fody is often included in the core library to automatically generate the INotifyPropertyChanged boilerplate needed in the ViewModels.
. ├── {NAME}.Tests.Unit ├── ReactiveUI.Testing ├── {NAME}.Core (.NetStandard) ├── ReactiveUI ├── ReactiveUI.Fody ├── {NAME}.Droid ├── ReactiveUI.AndroidSupport ├── {NAME}.AndroidX ├── ReactiveUI.AndroidX ├── {NAME}.iOS ├── ReactiveUI ├── {NAME}.Mac ├── ReactiveUI ├── {NAME}.Forms (Xamarin Forms project) ├── ReactiveUI.XamForms ├── {NAME}.WPF ├── ReactiveUI.WPF ├── {NAME}.WindowsForms ├── ReactiveUI.WinForms ├── {NAME}.Tizen ├── ReactiveUI ├── {NAME}.Uno ├── ReactiveUI.Uno └── {NAME}.Avalonia └── Avalonia.ReactiveUI
Release Packages
ReactiveUI is published to NuGet.org when a release of the software is done. Get email notifications when new release is pushed over at reactiveui libraries
- Splat
- Splat is a library to make things cross-platform that support .NET Standard 2.0
- Splat.Microsoft.Extensions.DependencyInjection
- Splat.Microsoft.Extensions.DependencyInjection is a library to make things cross-platform that support .NET Standard 2.0
- Splat.Micrsoft.Extensions.Logging
- Splat.Microsoft.Extensions.Logging A library to extend the functionality of Splat
- ReactiveUI
- ReactiveUI is the base package that has the base platform implementations.
- ReactiveUI.Blazor
- ReactiveUI.Blazor this package has ReactiveUI platform specific extensions for Blazor
- ReactiveUI.WinForms
- ReactiveUI.WinForms this package has ReactiveUI platform specific extensions for Windows Forms
- ReactiveUI.WPF
- ReactiveUI.WPF this package has ReactiveUI platform specific extensions for WPF
- ReactiveUI.XamForms
- ReactiveUI.XamForms this package has ReactiveUI platform specific extensions for Xamarin Forms
- ReactiveUI.Fody
- ReactiveUI.Fody this package is a Fody extension that will generate RaisePropertyChange notifications for properties and ObservableAsPropertyHelper properties.