上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 30 下一页
摘要: 在上一篇中介绍的文件上传下载都是基于同步操作.本篇将就异步操作做个总结.本篇主要总结WebClient类异步上传实现方式和FtpWebRequest类异步上传实现方式,其实明白了异步上传,异步下载就是同样的道理实现.1.WebClient异步上传关键知识说明:WebClient类提供4个异步上传方法,使用方法都是差不多的.WebClient.UploadDataAsync方法将数据缓冲区上载到指定的资源WebClient.UploadFileAsync方法将指定的本地文件上载到指定的资源WebClient.UploadStringAsync方法将指定的字符串上载到指定的资源WebClient. 阅读全文
posted @ 2011-01-21 12:19 cpcpc 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 最近项目需要对FTP服务器进行操作,现把实现总结如下:打算分2篇总结:第1篇总结Ftp的一些常规的操作实现(例如:上传,下载,新建,删除,FTP间互传文件等操作)第2篇总结Ftp的操作的一些其他实现(例如:异步上传,异步下载等其他操作)Microsoft .NET Framework 2.0新增加了3个类使我们很方便的对文件传输协议(FTP)服务器进行操作FtpWebRequest类:实现文件传输协议(FTP)客户端public sealed class FtpWebRequest : WebRequestFtpWebResponse类:封装文件传输协议(FTP)服务器对请求的响应 publi 阅读全文
posted @ 2011-01-21 11:30 cpcpc 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章中,我们通过自定义InstanceProvider实现了WCF和微软Enterprise Library Unity Application Block的集成, 今天我们已相同的方式实现WCF与Enterprise Library的另一个Application Block的集成:Policy Injection Application Block (PIAB)。PIAB,通过Method Interception的机制实现了AOP(Aspect Oriented Programing)。按照PIAB的编程方式,我们将非业务逻辑,比如Caching、Authorization、Tra 阅读全文
posted @ 2011-01-18 09:06 cpcpc 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 松耦合、高内聚是我们进行设计的永恒的目标,如何实现这样的目标呢?我们有很多实现的方式和方法,不管这些方式和方法在表现形式上有什么不同,他们的思想都可以表示为:根据稳定性进行关注点的分离或者分解,交互双方依赖于一个稳定的契约,而降低对对方非稳定性因素的依赖。从抽象和稳定性的关系来讲,抽象的程度和稳定程度成正相关关系。由此才有了我们面向抽象编程的说法,所以“只有依赖于不变,才能应万变”。然后,对于面向对象的思想来讲,我们的功能通过一个个具体的对象来承载。对象是具体的,不是抽象的;创建对象是必然的;对象的创建从某种程度上即使对面向抽象的违背。所以模块之间的耦合度在很大程度上是由于对象创建的方式决定的 阅读全文
posted @ 2011-01-18 08:43 cpcpc 阅读(219) 评论(2) 推荐(0) 编辑
摘要: 在上一篇文章中,我们讨论了如何通过CallContextInitializer实现Localization的例子,具体的做法是将client端的culture通过SOAP header传到service端,然后通过自定义的CallContextInitializer设置当前方法执行的线程culture。在client端,当前culture信息是通过OperationContext.Current.OutgoingMessageHeaders手工至于SOAP Header中的。实际上,我们可以通过基于WCF的另一个可扩展对象来实现这段逻辑,这个可扩展对象就是MessageInspector。我们 阅读全文
posted @ 2011-01-18 08:39 cpcpc 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 在本系列的每篇文章中,我多次提到WCF是一个极具可扩展性的分布是消息通信框架。为了让读者对WCF Extension有一个总体的的认识,在这里我会简单列举了我们经常使用的绝大部分的扩展点,以及通过这些扩展点能够解决实现项目开发中的那些问题。有一点需要特别提醒的是:对WCF extensions的灵活应用依赖于你对channel layer和service mode dispatching system的深入理解。所以,如果你对channel layer不甚了解,可以参阅本系列的第一个部分(WCF是如何通过Binding进行通信的)和第二部分(如何对Channel Layer进行扩展——创建自定 阅读全文
posted @ 2011-01-18 08:36 cpcpc 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 在本系列的第一部分、第二部分中,我们对WCF的channel layer进行了深入的讨论。我们接下来继续讨论WCF的service mode layer。本篇文章着重介绍service 端的ServiceMode。写作此篇文章旨在达到以下两个目的:希望读者对ServiceMode有一个大致的了解,结合前面介绍的channel layer的相关知识,帮助读者了解WCF的整个实现机制和执行的流程。 介绍ServiceMode涉及到的绝大部分extension point,让读者在具体的项目开发中能够根据实际的需要灵活、自由地对WCF进行扩展。 较之channel layer,ServiceMode 阅读全文
posted @ 2011-01-18 08:34 cpcpc 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 注:(本文是从我的某文档中抽取出来的,所以每小节以9.2.x开头,读者勿怪)强名称是由程序集的标识加上公钥和数字签名组成的。其中,程序集的标识包括简单文本名称、版本号和区域性信息(如果提供的话)。强名称是使用相应的私钥,通过程序集文件(包含程序集清单的文件,并因而也包含构成该程序集的所有文件的名称和散列)生成的。Microsoft® Visual Studio® .NET 和在 .NET Framework SDK 中提供的其他开发工具能够将强名称分配给一个程序集。强名称相同的程序集应该是相同的。通过签发具有强名称的程序集,您可以确保名称的全局唯一性。强名称还特别满足以下要 阅读全文
posted @ 2011-01-17 17:04 cpcpc 阅读(18231) 评论(2) 推荐(10) 编辑
摘要: SliverLight捕捉WCF服务异常,1 Contract[ServiceContract] public interface IWCFService { [OperationContract] int DoWork(int a,int b); [OperationContract] int DoWork2(int a, int b); [OperationContract] int DoDevide(int a, int b, ref string errorMessage); [OperationContract] int Devide(int a, int b, ref Except 阅读全文
posted @ 2010-12-31 16:12 cpcpc 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 一、One-way MEP V.S. Responsible Service我们知道MSMQ天生就具有异步的特性,它只能以One-way的MEP(Message Exchange Pattern)进行通信。Client和Service之间采用One-way MEP的话就意味着Client调用Service之后立即返回,它无法获得Service的执行结果,也无法捕捉Service运行的Exception。下图简单表述了基于MSMQ的WCF Service中Client和Service的交互。但是在有些场景 中,这是无法容忍的。再拿我在上一篇文章的Order Delivery的例子来说。Clien 阅读全文
posted @ 2010-12-31 15:55 cpcpc 阅读(245) 评论(0) 推荐(0) 编辑
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 30 下一页