控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

微软随.NET 4.5发布新REST API框架

作者:未知 出处:cnblog 2012年09月26日 阅读:

 在最近发布的 Visual Studio 2012 及 .NET 4.5中, 微软正式推出新的网络服务框架 ASP.NET Web API。作为 ASP.NET MVC 4 的一部分,ASP.NET Web API 这套开源框架的设计目的是简化 RESTful 服务的开发和使用。

 
  在“Where does ASP.NET Web API Fit?”这篇博文中, West Wind Technologies 的 Rick Strahl 解析了 ASP.NET Web API 的目标与优势。
 
  ASP.NET Web API 与之前的内建 HTTP 服务解决方案的不同之处在于,它一开始就是围绕 HTTP 协议及其消息语义构建起来的。与 WCF REST 或 ASP.NET AJAX 加 ASMX 相比,它不是对现有框架的增强,而是一个全新的平台。新的 ASP.NET Web API 的优势在于它汇集了之前各平台的各种最佳特性,结合为一个全面而不臃肿的 HTTP 平台。这套 Web API 基于 ASP.NET,又借用了很多 ASP.NET MVC 的概念,应该很容易被 ASP.NET 的开发者适应和熟悉。
 
  Strahl 指出 ASP.NET Web API 有一些核心功能,能让它成为 ASP.NET MVC 框架现用户的自然选择,同时也切合 HTTP 端点开发者的需要。
 
完善支持 URL 路由,透过用户熟悉的 MVC 风格路由语义,生成干净的 URL 
根据 Accept 标头对请求和响应的序列化形式进行内容协商(Content Negotiation) 
支持大量输出格式,包括 JSON、XML、ATOM 等 
默认对 REST 语义有完善支持,同时又不强制限定必须使用 REST 语义 
易于扩展的 Formatter 机制,支持添加新的输入/输出类型 
可通过 HttpResponseMessage 类、HttpRequestMessage 类和强类型枚举来描述大量的 HTTP 操作,提供对更高级的 HTTP 特性的深度支持 
基于惯例的设计引导用户按 HTTP Services 的正确方式行事 
Formatters 和 Filters 延续了 MVC 的扩展模型,具备出色的扩展能力 
用于非 Web 程序时,可以脱离 IIS 运行(Self-hostable) 
具备可测试性,测试机制的设计类似于 MVC 
  微软现有的 Web 服务框架叫做 Windows Communication Foundation( WCF),它利用 TCP、HTTP、MSMQ 等传输协议构建“契约先行”的服务。WCF 最初为基于 SOAP 的服务而设计,首先支持的是 WS-*功能,但后来添加了少量迎合 REST 的功能。按照 Ido Flatow 在一篇 Code Project 文章中的描述,ASP.NET Web API 一开始也归在 WCF 框架旗下,但最终被移交到 ASP.NET 团队。
 
  随着时间流逝,WCF Web API 为了让 WCF 适配到”原生”HTTP 世界,遇到了很多困难。因为 WCF 主要是为基于 SOAP 的 XML 消息设计的,为了让 Web API 成为 WCF 一部分,需要动的手术实在有点大(至少 Web API 的开发者们给了我这样的印象)。另一方面,ASP.NET MVC 的基础设施既能优雅地处理 HTTP 请求和响应,又能轻松创建各种控制器,好像是创建这种新类型服务的合适途径。
 
  WCF 在最新的 .NET 4.5 中依然健在,Flatow 给出了一些在 WCF 和 ASP.NET Web API 之间做出选择的标准。
 
如果想让服务支持特殊场景,如单向消息传递、消息队列、双向通信等等,最好选择 WCF。 
如果想让服务优先使用快速传输通道,如 TCP、Named Pipes,甚至 UDP(在 WCF 4.5 中),然后在所有其他传输都不可用的时候支持 HTTP,那么最好选择 WCF,并且把 SOAP 和 WebHttp 两种绑定都用上。 
如果服务是建立在 HTTP 之上的面向资源的服务,需要发挥 HTTP 的全部功能,如定义浏览器的缓存控制,用 ETags 做版本与并发,传送图像、文档、HTML 页面等多种类型的内容,在响应中用 URI 模板去包含 Task URIs,那么新的 Web API 是最好的选择。 
如果服务是多目标环境的,既可作为面向资源的服务走 HTTP 通道,又可作为 RPC 风格的 SOAP 服务走 TCP 通道——先跟我谈谈吧,我会给你一些指点。 
  ASP.NET Web API 已经包含在 Visual Studio 2012 中,Visual Studio 2010 用户可单独下载。需要上手指导的开发者可以在该团队的 Codeplex 网站上找到很多示例项目。
 

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统