Original article: Author: Hehe Yiwen Installation Method for Rx installation, you can directly download and install through the ReactiveExtensions (Rx) homepage, of course, you can also use NuGet to import dll (nuget. orgpackagesRx-Main
Original article: http://www.atmarkit.co.jp/fdotnet/introrx/introrx_01/introrx_01_02.html Author: Hehe Yiwen Installation Method on the Rx installation, can be directly downloaded through the Reactive Extensions (Rx) Home Page installation, of course, can also use NuGet import dll (http://nuget.org/packages/Rx-Main)
Original article: http://www.atmarkit.co.jp/fdotnet/introrx/introrx_01/introrx_01_02.html
Author: Hehe Yiwen
Installation Method
For Rx installation, you can directly download and install through the Reactive Extensions (Rx) Home Page, of course, you can also use NuGet to import dll (http://nuget.org/packages/Rx-Main: nuGet is an online dll Deployment Tool integrated with VS, which is very convenient]. Rx, Whether installed by Installer or NuGet, has two types: Stable and Experimental.
The Stable version is the Chinese API method and will not be changed, while the Experimental version adds some Experimental methods to the Stable version. For example, the await/async keyword and Expand method added in C #5.0 are only available in Experimental. Only methods in Experimental version are identified by the [ExperimentalAttribute] feature, which can be distinguished by the metadata representation in Visual Studio. Therefore, when using the Experimental version, these methods with the [ExperimentalAttribute] feature identifier may change the parameter list in the future.
In addition, Experimental is included in. NET Framework 4.5 and WinRT (Windows 8 runtime environment) in Developer Preview (Developer Preview. C #5.0, especially for asynchronous programming, is already reflected in Experimental.
Assembly Classification
Rx Assembly is divided by the following functions.
Set Name |
NuGet Package name (* 1) |
Function |
System. Reactive |
Rx-Main |
Basic Core API |
System. Reactive. Windows. Forms |
Rx-WinForms |
ControlScheduler class (* 2) and Extension Method Used in Windows form |
System. Reactive. Windows. Threading |
Rx-WPF Rx-Silverlight |
DispatcherScheduler class (* 2) and Extension Method Used in WPF/Silverlight |
System. Reactive. Providers |
Rx-Providers |
IQbservable interface and other class libraries (* 3) |
Microsoft. Reactive. Testing |
Rx-Testing |
UnitTest and Mockup |
Rx Assembly Overview |
Rx Assembly Files are generally stored in "C: \ Program Files \ Microsoft Reactive Extensions SDK" (32bit version), while 64bit is stored in "C: \ Program Files (x86) \ Microsoft Reactive Extensions SDK 」) |
* 1 the Package mentioned in the list refers to the Stable version, while the Experimental version carries "_ Experimental" such as: "Rx_Experimental-Main 」 |
* 2 Scheduler is a Class Based on Rx time and thread management. The ControlScheduler class calls BeginInvoke for WinForm and controls, and the dispatcherschedcher class calls BeginInvoke for Dispatcher. |
* 3 the "IQbservable" interface name is taken from "Queryable Observable 」. The expression tree can generate an Observable object. The relationship between the IObservable interface and the IQbservable interface is equivalent to that between the IEnumerable interface and the IQueryable interface.
|
As a Core, the System. Reactive assembly must be referenced. You can add references as needed. For example, if you want to use WPF, you must also reference System. Reactive. Windows. Threading.
The standard Rx Assembly integrated in the Windows Phone 7 SDK is somewhat different from the above:
Set Name |
Function |
System. Observable |
IObservable /IObserver Interface |
Microsoft. Phone. Reactive |
Core API and DispatcherScheduler class |
|
Overview of Windows Phone 7 SDK assembly |
In Windows Phone 7, you can also directly reference the Assembly released in the Data Developer Center to use Rx. However, pay attention to the difference between the two, some APIs are different. For example, if the namespace is different, the class names are also different, the parameter lists of methods are also different, and methods for adding and deleting methods are also available. In general, Data Developer Center should provide high performance and more powerful features.
If you pay more attention to whether a standard assembly is used and no additional reference is required, you can directly use Microsoft. phone. reactive; if you want to port Data in WPF and Sliverlight, select the Data Developer Center version.
Related Libraries
The Javascript version is not included in Install, but you can download the ZIP code at the bottom of the Rx homepage. The main body of the library is Rx. js, in addition to jQuery and prototype. js.
Namespace category
Rx is mainly centered on the extension method. It cannot be used if using/Import is not properly used to Import the namespace. The following lists the main namespaces and their functions and classes.
Blank before name |
Features |
System |
How to extend the Lambda expression used by Subscribe to the IObservable Interface |
System. Reactive |
Main interfaces and some basic classes |
System. Reactive. Concurrency |
Classes that implement the IScheduler Interface |
System. Reactive. Disposables |
Classes that implement the IDisposable Interface |
System. Reactive. Joins |
Class for the Join operation using the Observable. And/Observable. Then Method |
System. Reactive. Linq |
Some extension methods of the main Rx namespaces, the Observable class, And the IObservable Interface |
System. Reactive. Subjects |
Classes that implement the ISubject interface (events that implement Rx semantics) |
System. Reactive. Threading. Tasks |
Extension of Task mutual conversion |
|
Rx namespaces, representative functions, and classes |
In addition, in Windows Phone, Rx in the Microsoft. Phone. Reactive assembly is all in the Microsoft. Phone. Reactive namespace.
[Series of articles]
Reactive Extensions (Rx) entry (1) -- Reactive Extensions Overview
Reactive Extensions (Rx) entry (2) -- install Reactive Extensions
Reactive Extensions (Rx) entry (3) -- Rx event programming ①