003.Rx(Reactive Extensions)的由来

既然我们已经介绍了响应式编程,现在是时候了解我们的明星了:响应式扩展,通常简称为Rx。微软开发了Reactive扩展库,使其易于处理事件流和数据流。在某种程度上,时变值本身就是一个事件流;每个值更改都是一种类型的事件它会更新依赖于它的值。

Rx通过将事件流抽象为可观察对象来简化事件流的处理序列,这也是Rx表示时变值的方式。可观测的手段作为用户,您可以观察到序列所携带的值,以及序列的含义所携带的东西是有命令的。Rx是由Erik Meijer和Brian Beckman设计的,其灵感来自函数式编程风格。在Rx中,一个流由可观察对象表示,这些可观察对象可以从。net事件、任务或集合中创建。或者可以自己从另一个来源创建。使用Rx,您可以使用LINQ操作符查询可观察对象,并使用调度程序控制并发性这就是为什么是Rx通常在Rx中定义。. NET源代码为Rx = Observables + LINQ + schedulers的Rx的层。如图1.4所示。
在这里插入图片描述
图1.4 Rx层。中间的是关键的接口,表示事件流,下面是调度程序控制并发性的流处理。最重要的是强者操作符库允许您创建事件处理LINQ风格的流水线。

让我们看看Rx起源的简短历史。我认为,要完全控制某件事(尤其是技术),你应该了解它的历史和幕后的细节。让我们从Rx标志开始,其中有一条电鳗,如图所示图1.5;这条鳗鱼是微软Live实验室的Volta项目标志。
在这里插入图片描述
Volta项目是一个用于创建多层的实验性开发人员工具集云的应用程序,在云这个术语正式定义之前。利用沃尔塔,您可以指定应用程序的哪一部分需要在云中运行(服务器)和客户端(桌面、JavaScript或Silverlight),以及Volta编译器会为您做艰苦的工作。很快,差距就显现出来了在将从服务器产生的事件传输到客户端时。因为。net事件不是一等公民,它们不能被序列化并推送到客户端,因此形成了可观察对象和观察者对(尽管当时还没有这样称呼)。

Rx并不是Volta项目的唯一技术。JavaScript编译器的中间语言(IL)也被发明出来,它是微软的起源
打印稿。制作《Volta》的团队也是创造《Rx》的团队。

自2010年发布以来,Rx一直是一个成功的故事,被许多人采用公司。它在.NET之外的其他社区也取得了成功,而且很快就成功了被移植到其他语言和技术。例如,Netflix就使用Rx广泛地在其服务层,并负责RxJava端口,微软还在内部使用Rx来运行cortana——托管的智能个人助理。在每个Windows Phone设备中;当你创建一个事件时,一个可观察对象是在后台创建的。

在撰写本文时,Rx在10多种语言中得到支持,包括JavaScript, c++, Python和Swift。响应式扩展现在是一个开放的项目。您可以在https://reactivex.io/找到有关它们的信息以及文档和新闻,.NET的响应式扩展托管在GitHub,网址是https://github.com/Reactive-Extensions/Rx.NET。现在我们已经了解了一些历史,并得以讲述它,让我们开始探索Rx的内部吧。

——未完待续

译者:重庆教主 20240513

网站:WPF中文网 wpfsoft.com

相关推荐

  1. 1. 面向对象由来

    2024-05-14 17:26:03       10 阅读
  2. js arguments对象由来和用法

    2024-05-14 17:26:03       26 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-14 17:26:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-14 17:26:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-14 17:26:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-14 17:26:03       18 阅读

热门阅读

  1. Kubernetes——命令指南

    2024-05-14 17:26:03       7 阅读
  2. C#如何通过反射获取外部dll的函数

    2024-05-14 17:26:03       11 阅读
  3. 力扣阶段练习(1).消失的数字

    2024-05-14 17:26:03       13 阅读
  4. 通过vue2来类比学习vue3

    2024-05-14 17:26:03       11 阅读
  5. Python 自动化脚本系列:第4集

    2024-05-14 17:26:03       10 阅读
  6. DOTCPP题目 2782: 整数大小比较

    2024-05-14 17:26:03       10 阅读
  7. vue2响应式和vue3响应式

    2024-05-14 17:26:03       10 阅读
  8. [Python]锁

    2024-05-14 17:26:03       11 阅读
  9. spring boot 线程池的应用

    2024-05-14 17:26:03       14 阅读
  10. 基因专利的得与失

    2024-05-14 17:26:03       9 阅读
  11. Edge的使用心得与深度探索

    2024-05-14 17:26:03       13 阅读