Rx 1.0, the first full version of the Reactive Extensions.NET library, is now available for download from Microsoft.
Reactive Extensions (Rx) is Microsoft's .NET library aimed at making it easy to create asynchronous and event based programs using observable collections and LINQ-style queries. It is a superset of LINQ's standard query operators that turn asynchronous or event-driven code into push based observable collections.
The idea is that you are familiar with the IEnumerable<T> interface - a pull-based enumerator where you have to call the enumerator to get the next item. Using an IObservable<T> collection you subscribe to the collection and it notifies clients when a new item is available. This is simple enough but add to the mix Rx LINQ and you can build asynchronous queries and processing chains. Essentially what is going on is that the stream of asynchronous data is being treated as if it was a standard collection or database.
Rx works on the desktop in .NET 4.0, XBox and in Silverlight and Windows Phone 7. You can imagine that Rx would be particularly useful in an environment where realtime events such as location sensors have to be handled.
Download Rx 1.0
Reactive Extensions (Rx) website