02 2012 档案

摘要:不知道大家是否意识到一个现象,我们所说的Web服务其实并没有直接建立在Web上而是建立在SOAP上。SOAP居然成为了Web服务的标准,以至于我们提到Web服务就会想到SOAP。随着在Web服务中引入了REST架构,SOAP在整个Web服务体系中的垄断地位正在发生改变,或者已经发生了改变。REST提倡一种面向资源的架构(ROA: Resource Oriented Architecture),鼓励我们直接在Web上建立一种轻量级的Web服务。WCF在3.5就提供了对REST的支持,在4.0中对此进行较大的改进。 阅读全文
posted @ 2012-02-15 08:56 Artech 阅读(21901) 评论(32) 推荐(17) 编辑
摘要:条件获取(Conditional Update)可以避免相同数据的重复传输,进而提高性能。条件更新(Conditional Update)用于解决资源并发操作问题。如果我们预先获取一个资源进行修改或者删除,条件更新检验帮助我们确认资源被获取出来到针对它的修改/删除操作被提交的这段时间内是否被其他人改动过。 阅读全文
posted @ 2012-02-14 08:41 Artech 阅读(6750) 评论(6) 推荐(9) 编辑
摘要:对于一个Numeric属性/字段,ASP.NET MVC会自动进行数据类型的验证(客户端验证),以确保输入的是一个有效的数字,但是呈现在页面上的错误消息总是一段固定的文本:“The field {0} must be a number”,本篇提供一种解决方案使我们可以对此验证消息进行定制。 阅读全文
posted @ 2012-02-13 13:13 Artech 阅读(8302) 评论(9) 推荐(9) 编辑
摘要:条件获取(Conditional Retrieval)旨在解决这样的问题:客户端获取某个资源并对其进行缓存,当再次获取相同资源时,如果资源数据与之前获取的一致,则不再返回真正的资源数据,而是在回复中设置一个“标识”表明获取的资源并未发生改变。 阅读全文
posted @ 2012-02-13 08:56 Artech 阅读(7970) 评论(18) 推荐(7) 编辑
摘要:ASP.NET的输出缓存(Output Caching)机制允许我们针对整个Web页面或者页面的某个部分(主要针对用户控件)最终呈现的HTML进行缓存。对于后续针对相同资源的请求,只需要直接将缓存的HTML予以回复而无须按照页面处理生命周期对每次请求进行重复处理。WCF通过操作行为AspNetCacheProfileAttribute利用ASP.NET的输出缓存提供一种针对于某个操作的声明式缓存机制。 阅读全文
posted @ 2012-02-10 08:58 Artech 阅读(8002) 评论(16) 推荐(9) 编辑
摘要:REST服务采用面向资源的架构,而资源通过URI进行标识和定位,所以URI在REST中具有重要的地位。对于WCF来说,服务调用请求的URI映射为某个具体的操作,所以服务端需要解决的是如何根据请求URI选择出对应的操作。如果采用SOAP,操作的选择是根据消息的报头来实现的,那么REST服务又采用怎样的操作选择机制呢? 阅读全文
posted @ 2012-02-09 09:13 Artech 阅读(11697) 评论(14) 推荐(12) 编辑
摘要:WCF为REST服务的寄宿提供了一个新的ServiceHost,即WebServiceHost。WebServiceHost是ServiceHost的子类,而WebServiceHostFactory是对应的ServiceHostFactory,在基于IIS/WAS寄宿中被使用。由于对REST服务绝大部分功能的支持都是通过WebHttpBehavior这么一个终结点行为实现的,所以WebServiceHost的核心功能就是将该终结点行为应用到寄宿服务的所有终结点。除此之外,WebServiceHost还具有一些额外的功能,这些功能都是通过重写OnOpening方法实现的。 阅读全文
posted @ 2012-02-08 09:00 Artech 阅读(14244) 评论(17) 推荐(15) 编辑
摘要:可以说WebHttpBinding和WebHttpBehavior是整个Web HTTP编程模型最为核心的两个类型,前者主要解决消息编码问题,而余下的工作基本上落在了终结点行为WebHttpBehavior上。WebHttpBehavior属性HelpEnabled和AutomaticFormatSelectionEnabled是“帮助页面”与“自动消息格式选择”这两个特性的总开关。 阅读全文
posted @ 2012-02-07 08:37 Artech 阅读(15543) 评论(18) 推荐(15) 编辑
摘要:我们知道请求消息和回复消息分别是对操作方法输入参数和返回值(输出参数和引用参数)的封装,而请求消息和回复消息的主体具有两种不同的风格,即Bare和Wrapped。的Bare表示请求消息和回复消息的主体部分仅仅包含针对输入参数和返回值(输出参数和引用参数)序列化后的内容,而Wrapped则会在外面包装一个基于当前操作的“封套”。 阅读全文
posted @ 2012-02-06 08:52 Artech 阅读(14747) 评论(23) 推荐(8) 编辑
摘要:不论是我们采用SOAP还是REST架构风格,运行时框架体系依然不曾改变,终结点也仍旧是通信的核心。在Web HTTP编程模型中,我们采用基于WebHttpBinding绑定的终结点。绑定是一组相关绑定元素的有序组合,绑定的特性与能力决定于它包含的绑定元素,在这里我们通过分析绑定元素的方式来剖析WebHttpBinding绑定与其它绑定有何不同 阅读全文
posted @ 2012-02-05 09:36 Artech 阅读(22828) 评论(17) 推荐(6) 编辑
摘要:微软在WCF 3.5中就通过提供基于Web HTTP的编程模式使我们很容易地创建基于REST的服务,WCF 4.0中对此进行了较大的改进。为了让读者对REST在WCF中的应用有一个大致的了解,我们先来进行一个简单的实例演示。 阅读全文
posted @ 2012-02-04 11:47 Artech 阅读(50009) 评论(66) 推荐(53) 编辑