Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

If I add the RX-main package to a WPF application I get the following dependent packages installed:

  • Rx-Interfaces
  • Rx-Core
  • Rx-Linq
  • Rx-PlatformServices
  • Rx-Main

After adding Rx-main there are two additional packages related to WPF that can be installed

  • 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 anything is the difference between them, and why are there two separate packages that add a reference to the same assembly?

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

like image 368
Phil Avatar asked Dec 09 '22 16:12

Phil


1 Answers

I actually know the answer to this, as the former owner of the Rx-Xaml package. It used to be that there were only Rx-Silverlight and Rx-WPF. This made it difficult to create packages like ReactiveUI, since they had a dependency on one or the other depending on which platform you're using.

So, I created Rx-Xaml, which was literally just a merging of Rx-Silverlight and Rx-WPF. However, the Rx team realized that having separate packages was silly, and asked me if they could take over the name for themselves. I gladly obliged, and now Rx-Xaml is the package you should be using. Rx-Xaml since 2.0 is owned by Microsoft.

tl;dr: Use Rx-Xaml, ignore Rx-WPF and Rx-Silverlight, they're old and busted.

like image 112
Ana Betts Avatar answered Dec 11 '22 09:12

Ana Betts