写点什么

微软发布 Reactive 框架,简化异步及事件驱动编程

  • 2009-11-18
  • 本文字数:862 字

    阅读完需:约 3 分钟

对于流行的 Web 应用或者基于云的应用程序来说,保证伸缩性关键之一便是“异步”,事实上 Silverlight 已经阻止了所有阻塞的网络和线程操作。而对于传统的桌面应用程序来说,为了在高延迟的 IO 操作,或耗时的计算过程中保持流畅的响应能力,往往也必须使用异步任务来完成工作。而对于交互式应用程序来说,还有一个常见的特点是“事件驱动”。例如,用户会源源不断地通过 GUI 界面向程序产生“事件流”,这种异步事件流包括鼠标,键盘或其他一些输入方式。

微软近期于 DevLabs 发布了 Reactive 扩展,目标是简化异步及事件驱动程序的构建,尤其适合如 Silverlight 或基于云服务的应用程序。同时, Channel 9 对其主要设计者 Erik Meijer 进行了采访,Erik 谈论了 Reactive 框架的设计原因,思路及可用场景。

Erik 谈到,设计 Reactive 框架的原因是在于他希望寻找异步及事件驱动程序的共同点。例如对于普通的集合来说,如数组或 List,它们都是通过 IEnumerable 及 IEnumerator 来暴露内部元素。这是一种“拉(Pull)”模型,即代码可以不断通过 MoveNext 来获取元素。而 Reactive 框架则是一种与之相对的模型,通过 IObservable 和 IObserver 两个接口来产生元素,是为“推”模型。不过这两个模型的实现比 IEnumerable 或 IEnumerator 要复杂的多,它们基于.NET 4.0 中的并行库(或.NET 3.5 的并行扩展)所带来的并行及异步组件。

Reactive 框架中还包括面向 IObservable 和 IObserver 的 LINQ 扩展,如胶水般粘合了针对此类容器的异步或事件处理操作。这些容器可以是标准的.NET 事件、基于 APM 模型的异步计算,并行框架中的 Task,Windows 7 传感和定位 API,SQL StreamInsight 的事件流等等。也可以是 F#的事件和异步数据流。

目前 Reactive 框架基于 pre-release 授权许可发布,可用于测试和开发,但还不能用在生产环境中。目前 Reactive 框架有三个安装包,分别对应.NET Framework 3.5 SP1 .NET Framework 4.0 Beta 2 Silverlight 3 三种平台。你可以在 Reactive 框架开发团队博客 Channel 9 的 Rx 专辑中了解更多相关信息,也可以在论坛上给出反馈意见。

2009-11-18 02:527051
用户头像

发布了 157 篇内容, 共 54.5 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

更稳定!Apache Doris 1.2.1 Release 版本正式发布|版本通告

SelectDB

数据库 大数据 数据分析 bug 版本发布

北京大数据开发技术培训机构怎么样

小谷哥

得物染色环境落地实践

得物技术

测试 研发效能 测试环境 流量预测 企业号 1 月 PK 榜

iOS不上架怎么安装

雪奈椰子

iOS上架

常用EMC元器件简介——防护器件

元器件秋姐

电子工程师 元器件科普 EMC防护 硬件知识

如何学习大数据开发技术

小谷哥

web前端培训前景怎么样?

小谷哥

如何把可观测需求落地为业务大盘?

云布道师

阿里云

安卓app上架流程

雪奈椰子

IOS云打包 ios审核

探索工业互联网领域中的设备通信协议

JustYan

物联网 工业互联网 物联网协议

SOFARegistry | 聊一聊服务发现的数据一致性

SOFAStack

SOFA SOFARegistry'

2023春招最全Java面试八股文,已经帮助512人进入大厂

程序知音

Java java面试 Java面试八股文 后端面试

什么?比 MySQL 性价比更高的 TiDB Cloud Serverless Tier 来了?

PingCAP

#TiDB

ES Client性能测试初探

FunTester

解读重要功能特性:新手入门 Apache SeaTunnel CDC

Apache SeaTunnel

CDC 数据变更捕获

澳鹏中国第三年,缘何成为AI训练数据服务行业领头羊?

澳鹏Appen

人工智能 数据采集 数据安全 数据标注 AI向善

PingCAP 与 Wisconsin-Madison 大学建立科研合作,探索 Key-Value 存储系统的智能管理与自动调整

PingCAP

TiDB

Nydus 镜像扫描加速

SOFAStack

SOFA

JVM 如何获取当前容器的资源限制?

阿里巴巴云原生

Java 阿里云 容器 云原生

九科信息超级自动化平台前景广阔——Gartner:超级自动化是RPA行业未来发展的必然趋势

九科Ninetech

极光笔记 | 当前最佳实践:Header Bidding 与瀑布流混合请求技术

极光JIGUANG

后端 营销 运营

TiCDC 源码阅读(一)TiCDC 架构概览

PingCAP

TiCDC

基于低代码平台构筑金融行业IT运维服务体系

明道云

深入解读Netty 底层核心源码,全面分析Netty特新

程序知音

Java Netty io java架构 后端技术

大数据培训机构该如何选择?

小谷哥

web前端开发课程怎么样

小谷哥

事件总线 + 函数计算构建云上最佳事件驱动架构应用

阿里巴巴云原生

阿里云 云原生 函数计算 事件总线

时序数据库 TDengine 3.0 参数体系使用方式汇总

TDengine

数据库 tdengine 时序数据库

直播预约 | 微服务x容器开源开发者 Meetup 上海站回顾 & PPT下载

阿里巴巴云原生

阿里云 开源 容器 微服务 云原生

苹果app怎么上架

雪奈椰子

IOS云打包 ios审核

架构实战 3 - 外包学生管理详细架构

架构实战营 「架构实战营」

微软发布Reactive框架,简化异步及事件驱动编程_.NET_赵劼_InfoQ精选文章