[WCF REST] 解决资源并发修改的一个有效的手段:条件更新(Conditional Update)
    
            
摘要:条件获取(Conditional Update)可以避免相同数据的重复传输,进而提高性能。条件更新(Conditional Update)用于解决资源并发操作问题。如果我们预先获取一个资源进行修改或者删除,条件更新检验帮助我们确认资源被获取出来到针对它的修改/删除操作被提交的这段时间内是否被其他人改动过。[源代码从这里下载]一、HTTP对条件更新的支持HTTP为条件更新提供了相应的报头,我们按照分析条件获取的方式来分析条件更新在HTTP请求/回复过程中的实现。客户端第一次向服务端发起针对某个资源的请求,服务端除了将资源数据作为回复消息主体返回之外,会将与资源关联并且能够可以用于对其进行对等性判
        
阅读全文
摘要:Msdn解释:简而言之:如果使用WCF数据服务,就可以通过Rest的方式来访问和更改数据。实战:1:新建Asp.net空Web应用程序:2:因为WCF数据服务需要ado.net实体,所以添加一个实体,命名为Northwind3:添加了数据实体后,需要添加一个WCF数据服务NorthwindWcfDataService.cs代码如下:namespaceNorthwindDataServiceDemo{publicclassNorthwindWcfDataService:DataService</* TODO:在此放置数据源类名*/>{//仅调用此方法一次以初始化涉及服务范围的策略。p
        
阅读全文
摘要:条件获取(Conditional Retrieval)旨在解决这样的问题:客户端获取某个资源并对其进行缓存,当再次获取相同资源时,如果资源数据与之前获取的一致,则不再返回真正的资源数据,而是在回复中设置一个“标识”表明获取的资源并未发生改变。[源代码从这里下载]一、 HTTP对条件获取的支持HTTP对条件获取提供了原生的支持。具体的实现是这样的:服务端接收到客户端针对某个资源的第一次获取请求时,除了将资源数据作为HTTP回复主体返回之外,还会设置一个叫做ETag的回复报头。这个ETag与资源本身关联并且可以对资源进行对等性判断,比如我们可以将资源内容的哈希码作为这个ETag报头。客户端接收到资
        
阅读全文
摘要:REST服务采用面向资源的架构,而资源通过URI进行标识和定位,所以URI在REST中具有重要的地位。对于WCF来说,服务调用请求的URI映射为某个具体的操作,所以服务端需要解决的是如何根据请求URI选择出对应的操作。如果采用SOAP,操作的选择是根据消息的<Action>报头来实现的,那么REST服务又采用怎样的操作选择机制呢?目录一、URI模板二、UriTemplate三、UriTemplateTable四、WebHttpDispatchOperationSelector五、实例演示、自定义OperationSelector实现基于URI模板的操作选择机制一、URI模板在定义服
        
阅读全文
摘要:ASP.NET的输出缓存(Output Caching)机制允许我们针对整个Web页面或者页面的某个部分(主要针对用户控件)最终呈现的HTML进行缓存。对于后续针对相同资源的请求,只需要直接将缓存的HTML予以回复而无须按照页面处理生命周期对每次请求进行重复处理。WCF通过操作行为AspNetCacheProfileAttribute利用ASP.NET的输出缓存提供一种针对于某个操作的声明式缓存机制。[源代码从这里下载]一、AspNetCacheProfileAttributeWCF对ASP.NET缓存的支持是通过AspNetCacheProfileAttribute特性来实现的。通过如下的代
        
阅读全文
摘要:WCF为REST服务的寄宿提供了一个新的ServiceHost,即WebServiceHost。WebServiceHost是ServiceHost的子类,而WebServiceHostFactory是对应的ServiceHostFactory,在基于IIS/WAS寄宿中被使用。由于对REST服务绝大部分功能的支持都是通过WebHttpBehavior这么一个终结点行为实现的,所以WebServiceHost的核心功能就是将该终结点行为应用到寄宿服务的所有终结点。除此之外,WebServiceHost还具有一些额外的功能,这些功能都是通过重写OnOpening方法实现的。一、ServiceDe
        
阅读全文
摘要:http://www.cnblogs.com/gannan/archive/2012/02/06/2339883.html由于工作几个月来框架开发已经好久没写博客了,今天想抽点时间出来冒泡。在领域驱动开发中SOA已经成为我们开发的主流技术,在面对当前众多的UI框架选择(asp.net mvc,silverlight,wpf,winform,wp7等一些列甚至跨语言),我们能够重用和抽象的业务逻辑是不会变化的,为了屏蔽这些UI的复杂性和差异性,我们可能会采用诸如wcf soap的服务发布。再说在领域驱动开发中我们肯定会把各个逻辑分层次隔离解除耦合,这就出现了N层架构,在于我们的每一层次之间的耦合
        
阅读全文
摘要:对于Web HTTP编程模型来说,服务契约中作为操作的方法无须应用OperationContractAttribute特性,只需要根据需要应用WebGetAttribute与WebInvokeAttribute特性即可。前者针对GET HTTP方法,或者则针对其他HTTP方法。WebGetAttribute与WebInvokeAttribute的属性BodyStyle和IsBodyStyleSetExplicitly涉及到“Web消息主体风格”的话题。 1: [AttributeUsage(AttributeTargets.Method)] 2: public sealed class...
        
阅读全文
摘要:EntLib的异常处理应用块(Exception Handling Application Block)是一个不错的异常处理框架,它使我们可以采用配置的方式来定义异常处理策略。而ASP.NET MVC是一个极具可扩展开发框架,在这篇文章中我将通过它的扩展实现与EntLib的集成,并提供一个完整的解决异常处理解决方案。[源代码从这里下载]目录一、基本异常处理策略二、通过自定义Action处理异常三、通过配置的Error View处理异常四、自定义ActionInvoker:ExceptionActionInvoker五、自定义Controller:BaseController一、基本异常处理策略
        
阅读全文
摘要:最近在园子里转看到有人对如题的实现有疑问,今天有时间就写了项目把实现简单的讲解一下,如果你是牛逼人物那就绕道吧,哥不想浪费你的时间,现在开始:默认WCF是不允许将服务器的异常信息返回到客户端的(主要是客户端不一定能够识别clr的异常信息),如果你有这方面的需求可以通过SOAP的Fault包的形式返回异常信息,首先要做的就是设置配置文件,将默认不允许返回错误信息的设置改成如下: <behaviors> <serviceBehaviors> <behavior name="Bhc"> <serviceMetadata httpGetEn
        
阅读全文
摘要:介绍在.NET 3.0 SP1(与.NET 3.5一起发布) 中,WCF客户端创建有一个重要的性能改进。对BasicHttpBinding 来说,性能已经接近于创建ASMX代理。ASMX 代理 vs WCF 代理ASMX 代理比WCF代理更简单。前者是类型System.Web.Services.Protocols.SoapHttpClientProtocol的一个包装。在ASMX世界中,编程模型是两条平行线: 1) 没有ServiceContract的概念。客户端代理中的所有服务操作(WebMethod)的签名都是唯一的。客户端直接通过SoapHttpClientProcotol.Invoke
        
阅读全文
摘要:在本人的“.NET简谈事务本质论”一文中我们从整体上了解了事务模型,在我们脑子里能有一个全局的事务处理结构,消除对数据库事务的依赖理解,重新认识事务编程模型。今天这篇文章我们将使用.NET C#来进行事务性编程,从浅显、简单的本地事务开始,也就是我们用的最多的ADO.NET事务处理,然后我们逐渐扩大事务处理范围,包括对分布式事务处理的使用,多线程事务处理的使用。数据库事务处理数据库事务处理我们基本都很熟悉了,begin Transaction ……end Transaction,将要进行事务性的操作包在代码段里,为了便于文章有条理的讲解下去,我还是在这里穿插一个简单的小示例,便于与后面的代码进
        
阅读全文
摘要:.Net Remoting与WCF实现Server与Client通讯比较2011-11-12 20:26 by tyb1222, 779 visits,收藏,编辑 .Net Remoting是微软早前推出的一项分布式通讯技术框架,在.Net架构的程序中有着比较广泛的应用。在WCF中,已经集成了Remoting的技术。不过,他们有着很多相同的概念,如:信道(Channel)、代理(Proxy)、寄宿(host)等。在如今仍有一些分布式系统应用中运行着由Remoting技术构建的系统。本文将描述在服务端与客户端的交互中,他们各自的实现方式。 1、Remoting的实现。 ...
        
阅读全文
摘要:刚开始使用WCF时,总是在using中进行调用,比如:using (CnblogsWcfClient client = new CnblogsWcfClient()){ client.Say("Hello, cnblogs.com!");}后来发现,这是微软的一个“骗局”,当时我写了篇博客“不要在using语句中调用WCF服务”。从此改为这样调用:CnblogsWcfClient client = new CnblogsWcfClient();client.Say("Hello, cnblogs.com!");try{ client.Close();}c
        
阅读全文
摘要:前几节介绍了REST WCF 服务的一些基本的特点,本节说明一下,如何基于HTTP的标准动作来使用REST WCF 服务。由于RESTful服务的架构风格基于HTTP协议,并且其设计原则中明确指出:通过通用的连接器接口来使用资源。对于REST架构风格的服务,主要通过它8个动作中的4个来使用资源,即:GET,POST,PUT,DELETE。 在RESTful 服务中,GET,POST,PUT,DELETE的标准操作如下: GET:获取资源 POST:修改资源 PUT:创建资源 DELETE:删除资源本节涉及的要点如下:1、如何定义接口规范,使客户端通过能通过HTTP协议的标准动作来使用...
        
阅读全文
摘要:代码下载位置:VSTONet2007_12.exe(419 KB)Browse the Code Online本文以 Visual Studio 2008 的预发布版为基础。文中包含的所有信息均有可能变更。本文讨论:VSTO 如何使 Office 开发更强大在 Office 解决方案中使用 WCF、WPF 与 LINQ轻松将高级功能添加到 Office 应用程序简便地构建服务本文使用了以下技术:VSTO, WPF, WCF, LINQ目录示例解决方案构建 WCF 服务WPF UserControl将 WPF UserControl 连接到 VSTO在 VSTO 解决方案中使用 WCF 服务安全
        
阅读全文
摘要:前段时间去图书馆借书,无意中发现这样一本书,书名是”新一代 .NET Office开发 Excel篇”,书名比较有意思,就借出来看看.看完以后,发现确实不错.它挖掘了Office产品中我们经常忽略的部分.比如图表,透视表等.下面根据我对这本书的笔记来看看VSTO这个被微软偷偷发布,而被我们遗弃的东东到底是什么样子?由于这本书只针对Excel部分做操作,所以这是重点,不过后面还有一个示例是基于Word的. 我们首先创建一个WindowApplication程序,然后引入必要的类库.如图-1所示.图-1 创建WindowApplication的目的是熟悉Office操作的语法.我们现在用代码来实际
        
阅读全文
摘要:WCF服务编程-契约回调Gary Zhang 2009-06-03 16:24 阅读:464 评论:1WCF服务编程-非WCF应用程序使用WCF服务Gary Zhang 2009-06-03 10:59 阅读:758 评论:0WCF服务编程-WCF应用程序的消息跟踪Gary Zhang 2009-06-02 17:15 阅读:697 评论:4WCF服务编程-HelloWorldGary Zhang 2009-06-02 16:19 阅读:1596 评论:2WCF服务编程-基础Gary Zhang 2009-06-02 15:31 阅读:2049 评论:0当前标签: BizTalk开发系列Biz
        
阅读全文
摘要:WCF技术的不同应用场景及其实现分析(续)摘要: 上一篇 我总结介绍了WCF技术的背景,核心要素,和典型场景,目的是希望让大家更好地掌握WCF技术,并且在工作中知道如何选择。 由于篇幅较长,这一篇继续写完第二部分。 应用场景: WCF 从发布到现在的...阅读全文 posted @ 2011-06-21 19:02 陈希章 阅读(675) | 评论 (4) 编辑 WCF技术的不同应用场景及其实现分析摘要: 这一篇文章,是总结一下WCF技术,以及基于这个技术发展出来的几个典型应用场景,并且我将尝试对这些不同的WCF实现的原理进行一些比较分析。 关于WCF这个技术的基本概念,如果你不是很清楚,可以
        
阅读全文
摘要:源代码见http://wcfextension.codeplex.com/注意:1) 本来没打算这么早开源,这只是一个比较原始的实现,请勿直接在商业环境使用2) 请注意本框架的授权条款Apache License 2.03) 本框架依赖的外部程序集或框架版权归原作者所有4) 框架之后可能会增加很多功能,请关注项目主页即使获得最新信息解压缩代码打开sln文件后可以看到这样的结构1) WcfExtension就是核心框架:Client文件夹放的是客户端用到的一些代码,Server自然是服务端用到的一些代码Log是日志相关的一些代码(四种日志),Config是配置相关的代码Setting是框架本身设
        
阅读全文