写点什么

支持 REST 设计的 WCF Web 编程模型

  • 2007-05-21
  • 本文字数:1627 字

    阅读完需:约 5 分钟

MIX07 大会上 Don Box Steve Maine 的“浏览可编程Web ”联合演讲中,他们介绍了即将随Visual Studio Orcas 一同发布的WCF Web 编程模型。在统一的WCF 编程模型下,Web 编程模型从而可以支持Web 服务 REST 化设计的功能。

新的功能可以帮助在没有 SOAP 封装或者任何 WS 规范的情况下编写简单的服务。这儿的 Web 编程模型是以 URI 和 HTTP 动词为中心的。为了保持 WCF 编程模型的延续性,ServiceContract、DataContract 和其他的 WCF 的服务模型等仍然可以使用。新的模型主要位于一个名为 WebServiceHost 的新 WCF 服务主机(Host)里,以及有一个新的标准绑定:WebHttpBinding。新功能包括:

  • 通过 System.UriTemplate 支持 URI 模板。URITemplate 用来定义 URI 的特定模板。在 Joe Gregorio 博客里,他描述了 URI 模板的相关思想。
  • 在要寻找最佳匹配的时候,System.UriTemplateTable 可以用于存储一些能和具体的 URI 相配的 UriTemplate 数据。
  • 用于服务操作的 [WebGet] 和 [WebInvoke] 属性,被 WCF 调度器(Dispatcher)用来将 HTTP 请求映射到一个实现方法上。
  • WebServiceHost 和 WebHttpBinding。
  • System.ServiceModel.Syndication 命名空间,增加了对产生和消费 RSS/Atom 种子的支持。

在 Steve Maine 关于 Web 编程模型的讲座中,详细解释了所有的功能: Web 编程模型之道一 Web 编程模型之道二 Web 编程模型之道三 UriTemplate 101 UriTemplate.Match 等。

根据 Jef Newson 的说法,DonBox 和 Steve Maine 的演讲代表了微软针对分布式计算的过往实现方法的一种宣泄:

所以,我很有兴趣来观察像 Clemens Vasters 和 Don Box(还有 Steve Maine 等)这些人开始扔掉 WS-Splat 的包裹,只是 GET 它。而且我想他们是很实际的,能很好地抓住这 80% 的需求(GET),但是他们在通过一种并不严谨的方式增加了一些看上去很好的 REST 支持。当像“喔,你们不应该再给它增加一个 SOAP 层吗?”这样的问题被提出来的时候,他们会泰然自若而且平静非凡,说“哈,这儿你们将来不需要它的。”在外人看来,这好像有点滑稽。

他已经小有所成,并写了一些关于他在和 Web 编程模型争斗时,第一回合第二回合的经验心得。

David Ing 称这个对话为“简易对象辩解协议”(Simple Object Apology Protocol),因为“在所有基于架构和编程模型的工作与代码放到 SOAP 里面后,Web 编程模型在本质上是应用协议堆栈的倒退,差不多退回到 2002 年左右。”他还提到一些在 WCF 堆栈上增加新模型的风险:

对于“增加一个可选的层,现在我们知道了”这种方法的一个大问题是:许多开发者会引用最新的技术作为解决问题的最新指导。……通过提供这样一个使用什么技术(如 REST、HTTP/POX、SOAP 和 Remoting 等)的广泛选择,然后让人们找出“一个简单的答案”,其实只是增加了这一过程的复杂性和迷惑性。那些新东西的复杂性代价开始有点像联邦赤字一样——一直在错误的道路上行走。

Steve Maine 通过证明 WCF 本质上是能够“平衡目标和丰富性(Reach & Rich)”(译者注: Reach 指一个运行在所有 WEB 浏览器上的、不用额外的安装机制的前台终端,Rich 是指具有高度互交性的交互式用户接口)这一观点,回应了以上两个不同的说法:

我认为我们现在所做的延伸编程模型工作,在 V1 里增加了丰富协议堆栈的价值,因为在丰富性和目标之间它远离了传统的场景束缚。以 Rails 框架为例,使用它做一些通用场景就很容易。当然,Rails 差不多只能满足 80% 的情况。如果因为某种原因,你突然遇到了 20% 的情况,可能就无所适从了(像 Twitter 的人所发现的一样)。我们想为那些企图通过采用 WCF 摆脱在分布式系统上困惑的家伙提供保护。通过提供 Orcas Web 功能,在这个方向上我们已经取得了很大的进步,相信我们还会走的更远。

就加固在 WCF 之下开发分布式应用时所用到的全部已知协议和方法的编程模型而言,Web 编程模型是一个进步。另外它还是微软真心喜欢 REST 方法以及在他们的项目路线图里融入 REST 设计的信号之一: Astoria 项目已经基于这种新的模型了。

2007-05-21 21:531108

评论

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

TiUP 源码初探

TiDB 社区干货传送门

集群管理 管理与运维 安装 & 部署 TiDB 源码解读

星辰资讯:TiDB v8.1.0 发版!稳!

TiDB 社区干货传送门

新版本/特性解读 8.x 实践

PDF Shaper Professional / Premium(PDF转换软件) v14.2 激活版

iMac小白

TiDB 迁移升级思考

TiDB 社区干货传送门

版本升级 管理与运维 应用适配 7.x 实践

小梅西、狮子哥和Tidb升级赛跑记

TiDB 社区干货传送门

性能测评 新版本/特性解读 6.x 实践 7.x 实践 8.x 实践

如何使用GPT-4o?GPT-4o 有什么新功能?如何使用 GPT-4o API?如何升级GPT4Plus?

蓉蓉

openai GPT-4 gpt4o

币币交易开发的深度探索

dappweb

币币交易所开发

win版dBpoweramp Music Converter 2024(音频转换器) 2024.05.30 直装版

iMac小白

【TiDB 社区第三届专栏征文大赛】TiDB 在单机上模拟部署生产环境集群

TiDB 社区干货传送门

版本测评 安装 & 部署 8.x 实践

深入剖析 Kubernetes 原生 Sidecar 容器

Se7en

快速上手TiDB,体验全新的一栈式实时HTAP数据库

TiDB 社区干货传送门

安装 & 部署

win版Binary Ninja Personal (逆向编译调试) v4.0.5336特别版

iMac小白

TiDB Vector + Dify 快速构建 AI Agent

TiDB 社区干货传送门

实践案例 应用适配 数据库前沿趋势

精彩回顾!月之暗面安全实践思考分享

云起无垠

Charles抓包神器:深度解析网络数据传输的秘密

测吧(北京)科技有限公司

测试

反向代购系统搭建|逆向海淘平台搭建|对接淘宝京东1688微店拼多多等国内平台货源

tbapi

淘宝代购系统 逆向淘宝代购系统 海淘系统

墨天轮《2023年中国数据库行业年度分析报告》正式发布!

墨天轮

人工智能 数据库 时序数据库 图数据库 向量数据库

喜讯!MIAOYUN入围新疆信息产业公司多项技术服务框架采购协议!

MIAOYUN

运维 云原生 数字化 智慧电力 AI人工智能

快速入门:使用 JavaScript 读取文件的最佳实践

Apifox

JavaScript 程序员 前端 Web 读取文件

win版Canvas X Draw 20(矢量图形编辑软件) v20 Build 914特别版

iMac小白

win版VCartoonizer(卡通特效制作软件) v2.3.6 特别版

iMac小白

和鲸“101数智领航计划”——在武大解码 GeoAI,地理空间智能(GeoAI)学术研讨会及编程工作坊圆满落幕

ModelWhale

人工智能 遥感影像 气象预测 地球科学 地理空间智能

Aloudata 重磅发布《NoETL 开启自动化数据管理新时代》白皮书

Aloudata

数据管理 noetl

一文对比 Amazon Aurora 与 TiDB

TiDB 社区干货传送门

数据库架构选型 数据库架构设计

TiDB多数派节点故障恢复指南

TiDB 社区干货传送门

实践案例 集群管理 管理与运维 6.x 实践

PingCAP 成为唯一获评 2024 Gartner® Peer Insights™ 云数据库管理系统「客户之选」的中国厂商

先锋IT

win版Atlantis Word Processor(文字处理器) v4.3.10.3 注册版

iMac小白

技术分享 | SpringBoot 流式输出时,正常输出后为何突然报错?

LigaAI

spring 大模型 java 问题分析及解决 企业号 2024年5月 PK 榜

win版PDF Extra Ultimate(专业pdf办公软件) v9.30中文版

iMac小白

深入揭秘 TiDB LTS v8.1.0:为何这次更新是数据管理者的福音?

TiDB 社区干货传送门

8.x 实践

win版Broadgun pdfMachine Ultimate(PDF编辑办公软件) v20.21 注册版

iMac小白

支持REST设计的WCF Web编程模型_SOA_Hartmut Wilms_InfoQ精选文章