WCF 3.5对HTTP编程的增强

Justin Smith在MSDN杂志上发表了文章《使用 WCF 和 .NET Framework 3.5 进行 HTTP 编程》,畅谈了WCF 3.5对于HTTP编程的改进。以下几点值得关注:

.NET Framework 3.5 中的 WCF 构建于 .NET Framework 3.0 的扩展点 之上,从而为构建符合 Web 原则的服务提供一流的支持。它包含一个易于使用 的 HTTP 编程模型、JavaScript Object Notation (JSON) 消息传递功能,以及 新的整合 API,使创建和使用整合的内容变得非常简便。凭借此功能集,WCF 现 已成为将服务连接到 Web 客户端的首选服务平台,不论这些客户端是 ASP.NET AJAX 控件、SilverlightTM 客户端,还是浏览器。

应该说,这对于微软 的SOA战略来讲,是一个非常有力的改进与增强。如何将原有的BS系统、富客户 端与服务进行通信,提供服务和消费服务,对于一个企业要实现SOA解决方案来 讲,始终是一件弥足轻重的任务。可以说,WCF 3.5提供的简洁的HTTP编程模型 ,弥补了这一缺点。

使 .NET Framework 3.5 中的 WCF 如此引人注目的 特色之一是,以 Web 为中心的通信与 SOAP 和 WS-* 标准组合到了一个服务堆 栈和对象模型中。这意味着您可以构建这样一个服务,即采用 SOAP 和 WS-* 在 企业内部或跨企业边界进行通信,同时还可以将同一服务配置为使用 Web 协议 与外部通信。

这是多么让人愉快的选择!这意味着对于同一个服务,面 对不同的场景,我们可以选择不同的协议完成与客户端的通信。尤其是WCF支持 基于TCP传递SOAP/WS-*消息,而一直以来,WCF到WCF之间采用二进制形式的消息 传递,使得我们可以构建更加快速的企业内部网,实现企业信息化的高效与稳定 。

WCF对于REST的支持已经到了空前强大的地步。使用WCF的REST模式, 可以发送POX(Plain Old XML)消息或者使用联合(Syndication)格式。WCF 3.5专门提供了WebHttpBinding,WebHttpBehavior,以及关于HTTP动作的特性, 例如WebGetAttribute和WebInvokeAttribute。其中,WebGetAttribute对应HTTP 的GET动作,而WebInvokeAttribute则可以被除HTTP GET之外的动作所使用。例 如:

[ServiceContract]
public interface IPictureService
{
 [OperationContract]
 [WebGet (UriTemplate = "picture/{pictureId}")]
 Stream GetPicture(String pictureId);
 [OperationContract]
  [WebGet(UriTemplate = "picture/t/{pictureId}")]
  Stream GetPictureThumbnail(String pictureId);
 
  [OperationContract]
 [WebInvoke(UriTemplate="update", Method="POST")]
 void UpdatePictureInfo(PictureInfo info);
}

为了支持对应的客户端代理的创建,WCF 3.5还增 加了一个工厂类WebServiceHostFactory以及宿主类WebServiceHost,前者继承 于ServiceHostFactory类,后者则继承自ServiceHost类。

时间: 2024-08-04 05:47:37

WCF 3.5对HTTP编程的增强的相关文章

艾伟:WCF 3.5对HTTP编程的增强

Justin Smith在MSDN杂志上发表了文章<使用 WCF 和 .NET Framework 3.5 进行 HTTP 编程>,畅谈了WCF 3.5对于HTTP编程的改进.以下几点值得关注: .NET Framework 3.5 中的 WCF 构建于 .NET Framework 3.0 的扩展点之上,从而为构建符合 Web 原则的服务提供一流的支持.它包含一个易于使用的 HTTP 编程模型.JavaScript Object Notation (JSON) 消息传递功能,以及新的整合 A

WCF分布式开发步步为赢(9):WCF服务实例激活类型编程与开发

.Net Remoting的激活方式也有三种:SingleTon模式.SingleCall模式.客户端激活方式,WCF服务实例激活类型包括三种方式:单调服务(Call Service),会话服务(Sessionful Service),单例服务(Singleton Service).他们之间有什么联系.WCF服务激活类型的优势和缺点,以及如何在项目里编程开发和设置服务实例.全文分为5个部分,首先一次介绍单调服务(Call Service),会话服务(Sessionful Service),单例服

使用WCF实现SOA面向服务编程—— 架构设计

本文转载:http://kb.cnblogs.com/page/96479/   SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功 能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的.因此,基于SOA的架构也一定是从企业的具体需求开始构建的.但 是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性.业务灵活性是指企业能对业务变更快速和有效地进行响应.并且利用业务

使用WCF实现SOA面向服务编程“.NET研究”—— 架构设计

SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统上海企业网站制作中,具体应用程序的功能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的.因此,基于SOA的架构也一定是从企业的具体需求开始构建的.但是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性.业务灵活性是指企业能对业务变更快速和有效地进行响应.并且利用业务变更来得到竞争优势的能力.对企业级架构设计师来说,创建一个业务灵活的架

“.NET技术”使用WCF实现SOA面向服务编程—— 架构设计

SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的.因此,基于SOA的架构也一定是从企业的具体需求开始构建的.但是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性.业务灵活性是指企业能对业务变更快速和有效地进行响应.并且利用业务变更来得到竞争优势的能力.对企业级架构设计师来说,创建一个业务灵活的架构意味着创建一个

使用WCF实现SOA面向服务编程——使用AJAX+WCF服务“.NET技术”页面开发

在上一篇讲到,如果将BLL层的每一个类都转化为*.svc,这是一个不实在的想法.它会使服务变化复杂,难于管理. 这时候,我们第一时间想到的是23个简单开发模式中的Factory,在这里,Factory正好派上用场.我们把这个Factory称之为管道(pipeline) ,通过这个管道客户端可以随意调用服务器BLL层里面的类. (关于管道的概念,建议参考Cory Isaacson的杰作<多核应用架构关键技术-软件管道与soa>) 当你使用B/S方式开发UI层时,只要了解此开发模式,使用Ajax加

一起谈.NET技术,使用WCF实现SOA面向服务编程——使用AJAX+WCF服务页面开发

在上一篇讲到,如果将BLL层的每一个类都转化为*.svc,这是一个不实在的想法.它会使服务变化复杂,难于管理. 这时候,我们第一时间想到的是23个简单开发模式中的Factory,在这里,Factory正好派上用场.我们把这个Factory称之为管道(pipeline) ,通过这个管道客户端可以随意调用服务器BLL层里面的类. (关于管道的概念,建议参考Cory Isaacson的杰作<多核应用架构关键技术-软件管道与soa>) 当你使用B/S方式开发UI层时,只要了解此开发模式,使用Ajax加

一起谈.NET技术,使用WCF实现SOA面向服务编程——简单的WCF开发实例

前面为大家介绍过WCF的特点,现在再讲解一下WCF基础概念. 在WCF里,各个Application之间的通信是由EndPoint来实现的,EndPoint是WCF实现通信的核心要素.一个WCF Service可由多个EndPoint集合组成,每个EndPoint只能有一种绑定,就是说EndPoint就是通信的入口,客户端和服务端通过 EndPoint交换信息. <service name = " " >< endpoint address = ""

使用WCF和.NET Framework 3.5进行HTTP编程

本文以 Visual Studio 2008 的预发布版为基础.文中包含的所有信息均有 可能变更. 本文讨论: HTTP 消息基础知识 在 URI 中添加 信息 WCF 和 HTTP 借助 WCF 使用 RSS 和 ATOM 本文使用 了以下技术: Windows Communication Foundation 目录 HTTP 消息基础知识 表达其他信息 REST 和 Web 使 用 WCF 进行 HTTP 编程 WCF 约定中的 HTTP 动词 绑定和承载 新的整合 API 创建 Syndi