导出 (0) 打印
全部展开

Windows Phone 的 Reactive Extensions for .NET Framework 概述

2012/2/9

本主题简要介绍 Reactive Extensions for .NET Framework,同时还说明可以在 Windows Phone 应用程序中使用的一些方法。

Reactive Extensions for .NET Framework 是一个托管库,它提供用于编写反应式应用程序的 API。反应式应用程序是由其环境驱动的。在反应式模型中,数据流、异步请求以及事件都表示为可观察序列。应用程序可以订阅这些可观察序列,以在新数据到达时接收异步消息。Reactive Extensions 允许应用程序使用查询运算符组合这些序列。

如果您的应用程序与多个数据源(如用户输入事件、Web 服务请求以及系统通知)交互,则管理所有这些交互的便利方法是为每个数据流实现单独的处理程序。在这些处理程序中,您必须提供代码以在所有不同的数据流之间进行协调并将该数据处理为可使用的形式。Reactive Extensions 允许您编写一个查询,该查询将所有这些数据流组合成触发单个处理程序的单个流。筛选、同步和转换数据等工作由 Reactive Extensions 查询执行,以便您的处理程序只需对接收的数据进行反应并对该数据进行某些处理。

Reactive Extensions 是一个编程模型,该模型拥有应用广泛的应用程序,但对于在移动设备上运行的应用程序尤其有用,因为它们倾向于充当接收和处理来自多个源的用户数据的中心。本节将重点介绍 Windows Phone 开发人员特别感兴趣的一些 Reactive Extensions 方案。

筛选事件

Microsoft 定位服务显示一个事件,获取位置数据时,该事件将通知您的应用程序。内置 API 可以筛选数据并且允许您请求仅在位置数据至少更改指定的数量时才获得通知。例如,Reactive Extensions 允许您进一步筛选事件以便仅在位置落在指定的边界矩形内时通知您的应用程序。Reactive Extensions 允许您定义一个查询,该查询筛选某个数据流以便只有满足指定条件的数据才能在最终流中结束。

组合多个异步 Web 服务请求

移动设备的应用程序通常是通过将多个 Web 服务的内容和功能组合在一起创建的。Web 服务返回某个请求所花费的时间本质上是无法预测的,因为这取决于设备的连接速度、Internet 流量以及服务自身的实现。Reactive Extensions 使您能够发出某些数量的 Web 服务请求并只接收落在指定时间范围内的响应。还可以使用它来组合编写查询,以便在返回指定的最小数量的搜索查询之后,发布到多个 Web 服务的搜索将返回到您的应用。

模拟数据流

面向移动设备的应用程序开发极具挑战性,因为应用程序在工作环境中所面临的很多条件在开发环境中并不存在。例如,当在设备模拟器上开发应用程序时,很难模拟加速度计和位置数据。由于 Reactive Extensions 模型通过所定义的一个接口将数据的使用者和制造者包装到观察者和可观测对象中,因此可以轻松从包含模拟数据的文件流到实时传感器编写一个使用者(如加速度计数据的处理程序)并换出制造者。

显示:
© 2014 Microsoft