Rx 1.0解决了异步数据访问的问题

酝酿两年之后,微软发布了Reactive Extensions(Rx)库的1.0版。Rx把事件驱动UI与LINQ、并发性和异步调用结合起来。

Rx尝试解决从基于事件的UI异步访问数据的问题。标准的迭代器模式以及它的基本接口IEnumerable和IEnumerator对于异步操作是不足够的,因此Rx通过引入观察者模式来解决这个问题,这个模式包含两个主要的接口,IObservable和IObserver。不是客户端一步一步地迭代数据集合,而是集合把数据作为异步调用的结果推送给客户端,终结了调用循环。

这种做法在云计算里特别有用,Rx项目的主管Erik Meijer说。由于固有的网络延迟性,云计算使用异步调用,因此客户端最好是请求数据,然后继续执行其它任务,当数据可用时才接收。虽然这个问题用更标准的方式来解决也很简单,但Rx的强大之处在于它内置了LINQ和并发性的支持。因此,用户并不仅能以异步的方式获得一组数据,而且可以在一组数据上产生异步LINQ查询,然后并行地运行它们。Rx通过构建在Parallel Extensions(PFX)之上处理并发性,这个托管并发库包含了Parallel LINQ和Task Parallel Library。

酝酿两年之后,Rx成为微软的官方产品,并在Data Developer Center首次发布稳定的1.0版。开发者可以通过C#、VB.NET、C++、F#和JavaScript在所有XP之后的Windows和Windows Phone 7上使用Rx进行编程。

其它资源:InfoQ最近的采访Bart De Smet on Reactive Extensions(Rx)for .NET and JavaScript、Rx MSDN文档和Channel 9 Rx研讨会。

查看英文原文:Rx 1.0 Solves the Problem of Asynchronous Data Access

你可能感兴趣的:(Rx 1.0解决了异步数据访问的问题)