天道酬勤

博观而约取,厚积而薄发!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  WCF

摘要:在企业级应用系统中,使用WCF+Silverlight3的难点不在开发,而部署是很让人头疼的,下面我将我的部署实践分享一下,我采用的是Silverlight3+WCF,SL的宿主采用IIS6.0,WCF宿主为windows系统服务:首先确认你的IIS是否安装了ASP.NET2.0,使用下面的命令可以安装ASP.NET2.0的支持,在命令行下敲入:C:\WINDOWS\Microsoft.NET\F... 阅读全文

posted @ 2010-07-23 10:56 Happy Coding 阅读(1520) 评论(0) 推荐(1)

摘要:以前我们用WebService做分布式系统的时候,认证是个麻烦的问题,通常的做法是继承一个SoapHeader,把用户名和密码放到里面,每调用一个方法都要把用户名和密码传递给服务器端来验证 ,效率相当低,代码编写相当的麻烦,而且还不安全! WCF支持多种认证技术,例如Windowns认证、X509证书、Issued Tokens、用户名密码认证等,在跨Windows域分布的系统中,用户名密码认证还... 阅读全文

posted @ 2010-07-21 11:05 Happy Coding 阅读(1119) 评论(2) 推荐(0)

摘要:上一篇中提到Silverlight + WCF实现文件上传的一个缺点:一次性的将文件读到内存。显然,当文件的尺寸大到内存难以容纳时,这种方法是有问题的。 处理这个问题时,自然的会想到,可以边读边上传。实测的情况,该方法实现也很简单,下面简要描述一下。 1. 创建解决方案的方法和修改配置的方法同“Silverlight中用WCF实现文件快速上传(一)”,不再赘述。 2. Si... 阅读全文

posted @ 2010-07-15 11:36 Happy Coding 阅读(583) 评论(0) 推荐(0)

摘要:在Silverlight中可能通过服务上传文件。通过服务上传文件可以比较方便地实现异步上传、分块上传、进度显示等等功能。因此,“Silverlight + 服务”组合可以实现比较强大类似于C/S模式中的那种上传功能。下面详细说明实现步骤。 1. 创建Silverlight应用程序。 这个是基本能力,不会的先找资料学习一下吧。 假定创建的解决方案为:UploadFiles。默... 阅读全文

posted @ 2010-07-15 11:35 Happy Coding 阅读(779) 评论(0) 推荐(0)

摘要:WCF总对于文件的传输方式可以通过各种方法来实现,而且对于大文件的传输也能轻松的实现。在这里我们可以通过WCF异步上传的方法来详细介绍一下这方面的应用知识,以此来加深大家对这方面的认识程度。在WCF下作大文件的上传,首先想到使用的就是Stream,这也是微软推荐的使用方式。处理流程是:首先把文件加载到内存中,加载完毕后传递数据。这种处理方式对小文件,值得推荐,比如几K,几十k的图片文件,文本文件对... 阅读全文

posted @ 2010-07-15 11:31 Happy Coding 阅读(706) 评论(3) 推荐(0)

摘要:我们知道WCF有3种典型的对serviceinstance进行实例化的方式,他们分别与WCF的三种InstanceContextMode相匹配,他们分别是PerCall,PerSession和Single。PerCall为每次service invocation创建一个新的serviceinstance; 而PerSession则让一个serviceinstance处理来自通过各Session(一... 阅读全文

posted @ 2010-04-30 13:00 Happy Coding 阅读(298) 评论(0) 推荐(0)

摘要:5、Session Management Service的实现现在我们来看看Session Management真正的实现,和我以前的例子不同,我不是把所有的实现都写在WCF service上,而是定义了另一个class来实现所有的业务逻辑:SessionManager。我们分析一下具体的实现逻辑。namespace Artech.SessionManagement.Service{ public... 阅读全文

posted @ 2010-04-30 12:59 Happy Coding 阅读(388) 评论(0) 推荐(0)

摘要:在上一篇文章中,我们通过自定义InstanceProvider实现了WCF和微软Enterprise Library Unity ApplicationBlock的集成, 今天我们已相同的方式实现WCF与Enterprise Library的另一个ApplicationBlock的集成:Policy Injection Application Block (PIAB)。PIAB,通过Method ... 阅读全文

posted @ 2010-04-30 12:58 Happy Coding 阅读(230) 评论(0) 推荐(0)

摘要:我们都知道,WCF支持Duplex的消息交换模式,它允许在service的执行过程中实现对client的回调。WCF这种双向通信的方式是我们可以以Event Broker或者订阅/发布的方式来定义和调用WCFService。今天我们就给大家一个具体的例子:通过WCF的duplex communication方式现在Session管理。1、Session 管理提供的具体功能我们的例子实现了下面一些S... 阅读全文

posted @ 2010-04-30 12:58 Happy Coding 阅读(232) 评论(0) 推荐(0)

摘要:松耦合、高内聚是我们进行设计的永恒的目标,如何实现这样的目标呢?我们有很多实现的方式和方法,不管这些方式和方法在表现形式上有什么不同,他们的思想都可以表示为:根据稳定性进行关注点的分离或者分解,交互双方依赖于一个稳定的契约,而降低对对方非稳定性因素的依赖。从抽象和稳定性的关系来讲,抽象的程度和稳定程度成正相关关系。由此才有了我们面向抽象编程的说法,所以“只有依赖于不变,才能应万变&rd... 阅读全文

posted @ 2010-04-30 12:57 Happy Coding 阅读(359) 评论(0) 推荐(0)

摘要:在上一篇文章中,我们讨论了如何通过CallContextInitializer实现Localization的例子,具体的做法是将client端的culture通过SOAPheader传到service端,然后通过自定义的CallContextInitializer设置当前方法执行的线程culture。在client端,当前culture信息是通过OperationContext.Current.O... 阅读全文

posted @ 2010-04-30 12:56 Happy Coding 阅读(286) 评论(0) 推荐(0)

摘要:在上一篇文章中, 我列出了WCF一系列的可扩展对象和元素,并简单介绍了他们各自的功能、适合的场景和具体解决的问题。从本篇开始我将通过一个个具体的例子来介绍如何利用这些扩展点对WCF进行扩展,从而解决一些我们在实现的项目开发中可能出现的问题。今天,我们将讨论如何通过WCFextension实现多语言、本地化的功能。我们模拟这样的一个场景:我们现在有一个支持多语言的项目,假设通过支持英文(en-US)... 阅读全文

posted @ 2010-04-30 12:55 Happy Coding 阅读(241) 评论(0) 推荐(0)

摘要:在本系列的第一部分、第二部分中,我们对WCF的channel layer进行了深入的讨论。我们接下来继续讨论WCF的service mode layer。本篇文章着重介绍service 端的ServiceMode。写作此篇文章旨在达到以下两个目的:希望读者对ServiceMode有一个大致的了解,结合前面介绍的channel layer的相关知识,帮助读者了解WCF的整个实现机制和执行的流程。 ... 阅读全文

posted @ 2010-04-30 12:54 Happy Coding 阅读(244) 评论(0) 推荐(0)

摘要:在本系列的每篇文章中,我多次提到WCF是一个极具可扩展性的分布是消息通信框架。为了让读者对WCF Extension有一个总体的的认识,在这里我会简单列举了我们经常使用的绝大部分的扩展点,以及通过这些扩展点能够解决实现项目开发中的那些问题。有一点需要特别提醒的是:对WCF extensions的灵活应用依赖于你对channel layer和service mode dispatching syst... 阅读全文

posted @ 2010-04-30 12:54 Happy Coding 阅读(215) 评论(0) 推荐(0)

摘要:在上一篇文章中,我们通过一个直接借助BasicHttpBinding对象实现Client和Server端进行通信的例子,对WCF channel layer进行了一个大致上的介绍。由此引出了一些列通信相关的概念和对象,比如Channel,Outputchannel, Input channel,Request channel, Reply Channel,Duplex channel,Channe... 阅读全文

posted @ 2010-04-30 12:53 Happy Coding 阅读(326) 评论(0) 推荐(0)

摘要:《我的WCF之旅》系列自开篇以来,得到了园子里很多朋友的厚爱,并荣登了博客园2007年度系列博文Top10。由于工作原因,沉寂了几个月,今天开始WCF新的旅程。如果说《我的WCF之旅》主要是对WCF基本原理概括性介绍,而对于这个新的系列,我将和大家分享我对WCF的一些实现机制、设计原理的理解,以及我在实际的项目开发中的一些实践经验(比如在后续的一些文章中,我将介绍通过WCFExtension实现一... 阅读全文

posted @ 2010-04-30 12:50 Happy Coding 阅读(218) 评论(0) 推荐(0)

摘要:一、One-way MEP V.S. Responsible Service我们知道MSMQ天生就具有异步的特性,它只能以One-way的MEP(Message Exchange Pattern)进行通信。Client和Service之间采用One-wayMEP的话就意味着Client调用Service之后立即返回,它无法获得Service的执行结果,也无法捕捉Service运行的Exceptio... 阅读全文

posted @ 2010-04-30 12:48 Happy Coding 阅读(234) 评论(0) 推荐(0)

摘要:一、为什么要使用MSMQ在一个分布式的环境中,我们往往需要根据具体的情况采用不同的方式进行数据的传输。比如在一个Intranet内,我们一般通过TCP进行高效的数据通信;而在一个Internet的环境中,我们则通常使用Http进行跨平台的数据交换。而这些通信方式具有一个显著的特点,那就是他们是基于Connection的,也就是说,交互双方在进行通信的时候必须保证有一个可用的Connection存在... 阅读全文

posted @ 2010-04-30 12:47 Happy Coding 阅读(274) 评论(0) 推荐(0)

摘要:在任何Application的开发中,对不可预知的异常进行troubleshooting时,异常处理显得尤为重要。对于一般的.NET系统来说,我们简单地借助try/catch可以很容易地实现这一功能。但是对于一个分布式的环境来说,异常处理就没有那么简单了。按照面向服务的原则,我们把一些可复用的业务逻辑以Service的形式实现,各个Service处于一个自治的环境中,一个Service需要和另一个... 阅读全文

posted @ 2010-04-30 12:45 Happy Coding 阅读(196) 评论(0) 推荐(0)

摘要:在一个基于面向服务的分布式环境中,借助一个标准的、平台无关的Communication Infrastructure,各个Service通过SOAPMessage实现相互之间的交互。这个交互的过程实际上就是Message Exchange的过程。WCF支持不同形式的MessageExchange,我们把这称之为Message Exchange Pattern(MEP), 常见的MEP包括:Requ... 阅读全文

posted @ 2010-04-30 12:45 Happy Coding 阅读(540) 评论(0) 推荐(0)