包Rx-WPF和Rx-Xaml之间有什么区别吗?

时间:2013-04-20 22:31:17

标签: wpf nuget system.reactive

如果我将RX-main软件包添加到WPF应用程序,我将安装以下依赖软件包:

  • Rx-Interfaces
  • Rx-Core
  • Rx-Linq
  • Rx-PlatformServices
  • RX-主

添加Rx-main后,还有两个与WPF相关的附加软件包可以安装

  • Rx-XAML
  • RX-WPF

Rx-Xaml依赖于Rx-Main,并且Rx-WPF依赖于Rx-Xaml。但是,这两个包都添加了对System.Reactive.Windows.Threading的引用。如果它们之间存在差异,为什么有两个单独的包添加对同一个程序集的引用呢?

另外,我是否需要添加其中一个或两个才能在WPF中使用RX?

2 个答案:

答案 0 :(得分:15)

我实际上知道这个问题的答案,作为Rx-Xaml软件包的前主人。过去只有Rx-Silverlight和Rx-WPF。这使得创建像ReactiveUI这样的包很困难,因为它们依赖于一个或另一个,具体取决于您正在使用的平台

所以,我创建了Rx-Xaml,它实际上只是Rx-Silverlight和Rx-WPF的合并。然而,Rx团队意识到拥有单独的包是愚蠢的,并问我是否可以自己接管这个名字。我很乐意,现在Rx-Xaml是你应该使用的包。 Rx-Xaml自2.0起归微软所有。

tl; dr :使用Rx-Xaml,忽略Rx-WPF和Rx-Silverlight,它们已经老了并被破坏了。

答案 1 :(得分:-1)

根据我使用NuGet Package Explorer看到的情况,Rx-WPF而非Rx-Silverlight在其各自的nupkg文件中都不包含他们自己的任何DLL(或任何其他文件,事实上)。因此它们似乎只是作为Rx-Xaml的容器。我的猜测是你仍然应该指向Rx-WPF,因为Rx团队可能会开始向它添加特定的逻辑,而这些逻辑不会包含在基础Rx-Xaml包中。