04 2013 档案
摘要:我们首先先新建一个WCF服务项目(代码没有改变,都是默认生成),然后把它部署到IIS上面,为我们下面客户端调用做准备(当然IIS宿主只是其中一种,还有Windows服务、Winform程序、控制台程序中进行寄宿); 方式一:利用工具svcutil.exe命令生成代理类 svcutil.exe {终结
阅读全文
摘要:一、概述 WCF在通信过程中有三种模式:请求与答复、单向、双工通信。以下我们一一介绍。二、请求与答复模式 描述: 客户端发送请求,然后一直等待服务端的响应(异步调用除外),期间处于假死状态,直到服务端有了答复后才能继续执行其他程序,如下图所示(图中的粗红线在此时代表顺序并不代表调用): 请求与答复模式为WCF的默认模式,如下代码所示:1 [OperationContract]2 string ShowName(string name); 即使返回值是void 也属于请求与答复模式。 缺点:如果用WCF在程序A中上传一个2G的文件,那么要想执行程序B也...
阅读全文
摘要:WCF寄宿方式是一种非常灵活的操作,可以在IIS服务、Windows服务、Winform程序、控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便、高效提供服务调用。本文分别对这几种方式进行详细介绍并开发例子进行说明,以求大家对WCF寄宿的方式进行全面的认识和了解。1、 WCF服务的IIS服务寄宿我在我前面几篇WCF开发框架的介绍文章中,介绍过了WCF常用的一种寄宿方式,IIS服务寄宿。这种寄宿方式是最为方便的方式,而且由于服务只需要IIS运行就能自动运行起来,因此广为使用。创建这种方式IIS寄宿方式的,只需要在解决方案里面,添加WCF服务应用程序,就可以生成这种的服务模块了。这个是一
阅读全文
摘要:本篇博文只是简单说下WCF中的契约的种类、作用以及一些简单的代码示例。在WCF中契约分为服务契约、数据契约和消息契约。下面对这几种契约进行简单的介绍。服务契约服务契约描述了暴露给外部的类型(接口或类)、服务所支持的操作、使用的消息交换模式和消息的格式。每个WCF服务必须实现至少一个服务契约。使用服务契约必须要引用命名空间System.ServiceModel 。服务契约中常用到的三个特性:ServiceContractAttribute该特性定义在类或接口上,用来描述一个相关操作的集合。ServiceContractAttribute特性还有如下的一些属性值可以设置:Name:给服务契约定义一
阅读全文
摘要:在宿主程序中初始化ServiceHost有直接写代码和使用配置文件两种方式。使用ServiceHost首先要引用System.ServiceModel 命名空间。1 代码方式using(ServiceHost host=new ServiceHost(typeof(HelloWordService))){ host.AddServiceEndpoint(typeof(IHelloWordService), new BasicHttpBinding(), new Uri("http://localhost:10000/HelloWorldService")); host...
阅读全文
摘要:Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。构建一个WCF程序通常分为三个部分:服务类(Server)、宿主(Host)、客户程序(Client)。有一个很重要的程序集(System.ServeiceModel)要引用,它包含WCF的核心功能。贯穿整个WCF的程序会涉及到服务、契约、寄存、端点、地址、绑定、与数据、代理、通道、行为等概念,下面一一介绍下服务:通
阅读全文
摘要:(一)物理路径(可以复制)IResource input = new FileSystemResource(@"self.xml");IObjectFactory fac = new XmlObjectFactory(input);(二)程序集方法url语法:file://文件名(复制)assembly://程序集名/命名空名/文件名(嵌入)IApplicationContext context = new XmlApplicationContext("file://self.xml");IObjectFactory fac = (IObjectFact
阅读全文
摘要:首先先引用一下AOP相关知识; AOP(Aspect-Oriented Programming,面向切面的编程),它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。它是一种新的方法论,它是对传统OOP编程的一种补充。 OOP是关注将需求功能划分为不同的
阅读全文
摘要:在开始写之前,先给出spring.net官方网站,在那里有大家所需要的例子和教程。 Spring.Net有两个很重要的感念就是IoC(控制反转)和DI(依赖注入)。 控制反转通俗的讲就是将对象的控制权转移给外部容器,即控制权的转移。 例: 有一个IUser接口和一个继承了他的类UseDAO,传统的实现我们会采取直接实例化接口IUser user =new UserDAO 或者通过一个工厂类来创建这个接口的实例。IUser dal = UserFactory.CreateUserDao(); 但通过spring.net的IoC实现,可以这么来写IApplicationContext...
阅读全文
摘要:学以致用”,如果仅仅是希望能够在项目中合理地应用WCF,那么对于程序员而言,可以有两种选择,一种是“知其然而不知其所以然”,只要掌握了WCF的基础知识,那么对于一般的应用就足够了。要做到这一点就很容易了,微软秉承了一贯的方式,将WCF这门技术优雅地呈现给开发者,封装了复杂的实现逻辑,提供了易于调用的类库和相关的工具,使得开发者能够快速地完成WCF程序的开发。另外一种方式自然就是深度挖掘WCF的内部实现了,这是对WCF专家提出的要求。如果我们要应用WCF实现SOA解决方案,就会遭遇许多WCF的高级应用,如何合理、有效地应用WCF,并根据项目实际情况对WCF进行扩展,就成为了WCF专家必须解决的难
阅读全文