Is there any difference between Rx-WPF and Rx-Xaml packages?

If I add the main RX package to the WPF application, I get the following dependent packages:

  • Rx interfaces
  • Rx-core
  • Rx-linq
  • Rx-PlatformServices
  • Rx-main

After adding Rx-main, there are two additional WPF-related packages that you can install

  • Rx-xaml
  • Rx-wpf

Rx-Xaml is dependent on Rx-Main, and Rx-WPF is dependent on Rx-Xaml. However, both of these packages add a reference to System.Reactive.Windows.Threading. What if there is a difference between them and why are there two separate packages that add a link to the same assembly?

Also, do I need to add one or both in order to be able to use RX in WPF?

+4
source share
2 answers

I really know the answer to this question as a former owner of the Rx-Xaml package. Previously, there was only Rx-Silverlight and Rx-WPF. This made it difficult to create packages like ReactiveUI , since they depended on one or the other, depending on the platform you were using.

So, I created Rx-Xaml, which was literally just a merger of Rx-Silverlight and Rx-WPF. However, the Rx team realized that the individual packages were stupid, and asked if they could take on that name. I gladly agreed, and now Rx-Xaml is the package you should use. Rx-Xaml 2.0 is owned by Microsoft.

tl; dr : use Rx-Xaml, ignore Rx-WPF and Rx-Silverlight, they are old and damaged.

+15
source

From what I see using the NuGet Package Explorer , non- Rx-WPF Rx-Silverlight include any native DLL (or any other file, in fact) in their respective nupkg files, so they seem to only function as a container for Rx-Xaml . I assume that you should still point to Rx-WPF , as the Rx team may begin to add certain logic to it that would not be contained in the Rx-Xaml database .

-1
source

All Articles