Skip to main content

The Reactive Extensions (Rx)...

...is a library to compose asynchronous and event-based programs using observable collections and LINQ-style query operators.


 

Get it
Get it
Get Started
Beginner's Guide
Learn more
Learn more

 

About the Reactive Extensions

The Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators. Using Rx, developers represent asynchronous data streams with Observables, query asynchronous data streams using LINQ operators, and parameterize the concurrency in the asynchronous data streams using Schedulers. Simply put, Rx = Observables + LINQ + Schedulers.

Whether you are authoring a traditional desktop or web-based application, you have to deal with asynchronous and event-based programming from time to time. Desktop applications have I/O operations and computationally expensive tasks that might take a long time to complete and potentially block other active threads. Furthermore, handling exceptions, cancellation, and synchronization is difficult and error-prone.

Using Rx, you can represent multiple asynchronous data streams (that come from diverse sources, e.g., stock quote, tweets, computer events, web service requests, etc.), and subscribe to the event stream using the IObserver<T> interface. The IObservable<T> interface notifies the subscribed IObserver<T> interface whenever an event occurs.

Because observable sequences are data streams, you can query them using standard LINQ query operators implemented by the Observable type. Thus you can filter, project, aggregate, compose and perform time-based operations on multiple events easily by using these static LINQ operators. In addition, there are a number of other reactive stream specific operators that allow powerful queries to be written. Cancellation, exceptions, and synchronization are also handled gracefully by using the extension methods provided by Rx.

Reactive Extensions Highlights Entity Framework Highlights

Reactive Extensions

Rx: Curing your Asynchronous Programming Blues
At DevCamp 2010 in Vienna, Bart delivered a keynote on Rx. In this video, you’ll learn about the design philosophy behind Rx, the essential interfaces, important query operators, and more. This session is also jam-packed with demos of the technology, ultimately resulting in a “dictionary suggest” sample application.
Bridging Rx with C# and VB “async” and IAsyncEnumerable
During PDC 2010, future C# and Visual Basic language features for asynchronous programming have been introduced. How does it relate to Rx? In this video, Wes and Jeffrey show how both technologies can peacefully co-exist and complement each other.
Inside Rx Virtual Time
Wes and Jeffrey talk about new tools for testing reactive applications written using Rx, based on the concept of virtual time schedulers. What is virtual time, exactly? What purpose does it serve? How does it help with testing asynchronous programming? Tune in and learn more!
Observations on IQbservable – The Dual to IQueryable
Queries over enumerable collections using LINQ can also be applied to other data stores such as SQL. Running such a query involves a translation of the query into a target domain-specific language (e.g. T-SQL). With the introduction of IQbservable, you can now write query providers against observable data sources such as LINQ to WMI Events. In this video, Bart talks about the theory behind IQbservable and its applications.
Introducing RxJS – Reactive Extensions for JavaScript
Reactive Extensions for JavaScript have arrived. You can now write event-driven asynchronous web sites using all your favorite Rx query operators in JavaScript. RxJS comes with plenty of conversions to interoperate with the DOM, AJAX’s XmlHttpRequest, jQuery, and more.

 

Team Blog Posts

Reactive Extensions

NuGet 1.7 available – Easy installation of Rx v2.0 Beta
The NuGet team has announced the availability of NuGet 1.7 today. One cool thing about this new rele... Mehr
Mittwoch, Apr 4 Rx team
Reactive Extensions v2.0 Beta available now!
After the release of Reactive Extensions (Rx) v1.0 SP1 and Reactive Extensions for JavaScript (RxJS)... Mehr
Montag, Mrz 12 Rx team
Reactive Extensions v1.0 Stable and v1.1 Experimental available now!
We're happy to announce the first official releases of Reactive Extensions v1.0 Stable and v1.1 Expe... Mehr
Mittwoch, Jun 29 Rx team
Pre-release Documentation Available
With the release of Reactive Extensions RC1, we are now in the final stages of preparing for our fir... Mehr
Dienstag, Jun 14 Rx team

More...

Anzeige
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur -Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die -Website verlassen.

Möchten Sie teilnehmen?