产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

微软发布 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:527055
用户头像

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

关注

评论

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

常见的虚拟化技术有哪些呢?

小齐写代码

流量变现的终极逻辑

老张

副业 码农副业 流量变现

解决 npm install 报错的常见问题

霍格沃兹测试开发学社

超算互联网统一存储平台技术研究

Alluxio

Alluxio GPU算力 模型训练优化 超算中心 超算互联网

为什么SD-WAN成为了组网发展大趋势?

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

商业世界的基本法则:通过业务协作提升财务水平

智达方通

企业财务管理

GaussDB(DWS)运维利刃:TopSQL工具解析

不在线第一只蜗牛

Java sql 运维

云服务器与云主机的性能对比:优势与应用场景分析

一只扑棱蛾子

云服务器

SD-WAN能解决企业网络的哪些问题?

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

2024上海国际智能科技及创新展览会

AIOTE智博会

科技展 创新展

AI应用开发:pgvector在文本搜索中的革命(上篇)

张文平

人工智能 postgresql AI 应用开发 pgvector

华为各应用发布妇女节专题,一起感受女性创作者的力量

最新动态

Vue router路由设计

霍格沃兹测试开发学社

课程预告 | 学姐领航,共学PolarDB-X:从入门到精通实操课

阿里云数据库开源

阿里云 分布式数据库 课程 polarDB PolarDB-X

2024年大语言模型的微调

快乐非自愿限量之名

人工智能 语言模型 LLM

Docker与低代码开发:重塑软件开发的未来

EquatorCoco

Docker 运维 低代码 容器化

Docker Logs命令详解

霍格沃兹测试开发学社

如何快速上手Vue,一篇文章教会你

霍格沃兹测试开发学社

HTTP Authorization 头的角色与作用

Liam

程序员 前端 后端 HTTP Authorization

妇女节:打开AI视界,成就“她力量”

飞桨PaddlePaddle

百度 开发者 百度飞桨 女性力量 三八妇女节

从注册开始,教你玩转GitHub

霍格沃兹测试开发学社

一文告诉你Vue的事件处理

霍格沃兹测试开发学社

百度智能云音视频处理产品 MCP 推出数字水印技术,为数字内容资产保驾护航

Baidu AICLOUD

数字水印

AI应用开发:你知道怎么用好pgvector吗(下篇)

张文平

数据库 postgresql AI 开发 pgvector

智能合约开发:比特币智能合约和应用程序综合指南

区块链软件开发推广运营

区块链开发 链游开发 NFT开发 公链开发

软件测试学习笔记丨Python语法与数据结构-函数定义与调用

测试人

软件测试

手把手带你认识GaussDB轻量化运维管理工具

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

SD-WAN保障零售业的持续经营

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

守护更多女性健康,华为云GeminiDB助力美柚数据库高效稳定迁移

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GeminiDB

Python中那些简单又好用的特性和用法

EquatorCoco

Python Linux 运维 开发语言

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