心海巨澜

天行键,君子以自强不息;地势坤,君子以厚德载物!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  34 随笔 :: 1 文章 :: 146 评论 :: 3 引用

2011年9月2日 #

摘要: 您有在工作中有类似这样的需求吗:从10万条不重复的数据中随机取出1千条不重复的数据?这里我们通过几种方法来实现此需求,并对每种方法进行性能比较,然后得出较优的方案,如果您有更优的方案,欢迎分享。初始化数据: //最大值 const int maxValue = 1000000; //循环次数 int cycleCount = 1; //获取数量 int getCount = 1000; int[] iAry = ne...阅读全文
posted @ 2011-09-02 12:01 心海巨澜 阅读(4378) 评论(16) 编辑

2011年1月9日 #

摘要: 回调操作:是服务契约的一部分,取决于服务契约对回调契约的定义。一个服务契约最多只能包含一个回调契约,一旦定义了回调契约,就需要客户端支持回调,并在每次调用中提供指向服务的回调终结点,可以通过ServiceContract特性提供的Type类型的属性CallbackContract来定义回调契约。为了托管一个回调对象,客户端需要实例化回调对象,然后通过它创建一个上下文对象。 在客户端与服务端通讯过程中,只要服务终结点的契约定义了一个回调契约,客户端都必须使用代理创建双向通讯,并将回调终结点的引用传递给服务。只要客户端正在等待回调,就不能关闭代理,如果关闭回调终结点,当服务试图将调用返回时,就会.阅读全文
posted @ 2011-01-09 15:48 心海巨澜 阅读(4285) 评论(6) 编辑

2010年12月19日 #

摘要: 单向(One-Way)操作没有返回值,客户端也不会关心调用成功与否,是一种即发即弃的调用方式,通过使用OperationContractAttribute将操作标记为One-Way,在WSDL描述中只包括<input>消息,服务端抛出的任何异常,都不会传递给客户端。理想状态下,一旦客户端调用了一个单向方法,它只会在分发调用的一瞬间被阻塞。但实事上,单向调用并不等同于异步调用。当单向调用到达服务端时,不会立即分发这些调用,而是可能放入到服务端的队列中,并在某个时间被分发。这一过程与服务配置的并发模式行为、队列中的最大消息个数、配置的通道以及可靠性有关。如果队列消息数量超过了队列容量,应会阻塞客户阅读全文
posted @ 2010-12-19 21:57 心海巨澜 阅读(1789) 评论(3) 编辑

摘要: WCF的消息交换模式指Message Exchange Patterns,主要分为:请求(Request)/应答(Reply)、单向(One Way)、双向(Duplex)或者回调(Callback); 本章主要介绍请求(Request)/应答(Reply)操作,请求/应答操作是所有服务操作的缺省行为;通过查看WSDL描述,我们可以看到<wsdl:input>与<wsdl:output>消息的描述信息;该消息能够包含请求参数,返回数据,<body>元素,或者返回的SOAP错误等。 在请求/应答操作中,客户端以消息形式发出请求,它会阻塞客户端直到收到应答消息。应答的默认超时值为1分钟,如果超过这阅读全文
posted @ 2010-12-19 17:48 心海巨澜 阅读(1687) 评论(2) 编辑

2010年12月5日 #

摘要: WAS托管:Windows激活服务(WAS)是一个系统服务,是IIS7的一部分,也可以独立的安装与配置。IIS与WAS的主要区别在于WAS并不局限使用HTTP,它支持所有可用的WCF传输协议、端口与队列,支持的协议包括:HTTP、TCP、IPC、MSMQ。 WAS提供了大量基于自托管的强大功能,包括应用程序池、回收机制、空闲时间管理(Idle Time Mannagement)、身份管理(Ide...阅读全文
posted @ 2010-12-05 23:33 心海巨澜 阅读(4331) 评论(5) 编辑

2010年11月14日 #

摘要: 自托管(Self-Hosting),就是由开发者提供和管理宿主进程的生命周期。自托管方式适用以下场景:需要确定客户端与服务端的进程(或机器)边界时;使用进程内托管,即服务与客户端处理相同的进程中时。自托管进程可以是控制台应用程序、Windows应用程序、Windows服务等,进程必须在客户端调用服务之前运行。 自托管支持通信的协议包括:HTTP、TCP、IPC、MSMQ。 自托管宿主进程必须在运行...阅读全文
posted @ 2010-11-14 23:54 心海巨澜 阅读(4610) 评论(2) 编辑

摘要: 上一章讲述托管(Hosting)的基础知识,这一章我们主要介绍IIS托管。在IIS中托管服务与经典的ASMX Web服务托管相似,需要在IIS下创建虚拟目录,并提供一个.svc文件。.svc文件与.asmx文件相似,主要用于识别隐藏文件和类后面的服务代码。使用IIS托管,服务的基地址必须与.svc文件的地址保存一致。IIS除IIS7在启用WAS激活服务外只支持HTTP/HTTPS传输协议,根据II...阅读全文
posted @ 2010-11-14 15:35 心海巨澜 阅读(2764) 评论(1) 编辑

2010年10月31日 #

摘要: 在前面的一些章节中,我们根据DEMO来演示WCF的相关特性,其中我们一直在用WCF服务端,然而WCF服务类不能凭空存在。每个WCF服务都必须进行托管(Hosting)在Windows进程中,该进程被称为宿主进程(Host Process)。 宿主进程与WCF服务的关系:单个宿主进程可以托管多个服务,而相同的服务类型也能够托管在多个宿主进程中。 WCF的托管的环境有很多种,下面介绍一些常用的托管环境...阅读全文
posted @ 2010-10-31 09:37 心海巨澜 阅读(4126) 评论(4) 编辑

2010年10月24日 #

摘要: WS双向绑定(Duplex WS Binding):由WSDualHttpBinding类提供,WS双向绑定与WS绑定相似,但它还支持从服务到客户端的双向通信。双向绑定的特点是,无论使用单向消息发送还是请求/答复消息发送方式,服务和客户端均能够独立地向对方发送消息。 对于必须直接与客户端通信或向消息交换的任意一方提供异步体验(包括类似于事件的行为)的服务来说,这种双向绑定形式非常有用。 实现双向绑...阅读全文
posted @ 2010-10-24 22:04 心海巨澜 阅读(5495) 评论(6) 编辑

摘要: 上一章我们介绍了WCF绑定的自定义绑定,这一章我们通过一个DEMO来介绍如何创建一个基于HTTP或者TCP协议的程序。在绑定时,我们要指定WCF的地址:要为不在IIS里承接的服务指定基地址;要为所有相让服务支持的传输协议指定基地址,要指定相对于基地址的终结点地址。不要为终结点指定绝对地址,这样做的优势是:如果修改绑定使用一个不同的传输协议,修改简单的修改在配置中指定的绑定地址,而不在需要修改终结点...阅读全文
posted @ 2010-10-24 12:44 心海巨澜 阅读(3931) 评论(2) 编辑

2010年10月23日 #

摘要: 上一章我们介绍了WCF绑定的基本知识,这一章我们通过一个DEMO来介绍如何创建一个自定义绑定(CustomBinding)的程序。从本章起,我们假定读者对WCF一有定的了解,DEMO创建的过程介绍将省略一些简单的步骤。自定义绑定(CustomBinding)与前面介绍的WCF程序的区别主要在于通过修改配置文件来达到创建自定义绑定(CustomBinding)的目的。 开发环境:Visual Stu...阅读全文
posted @ 2010-10-23 17:13 心海巨澜 阅读(4254) 评论(10) 编辑

摘要: 服务之间的通信方式是多种多样的,有多种可能的通信模式。包括:同步的请求与应答(Request/Reply)消息,或者异步的即发即弃(Fire-and-Forget)消息等等,在通信时传输的消息编码格式也有许多种,为了简化之些操作,使之易于管理,WCF引入了绑定技术将这些通信特征组合在一起。一个绑定可以是封装了诸如传输协议、消息编码、通信模式、可靠性、安全性、事务传播以及互操作性等相关选项的集合,并...阅读全文
posted @ 2010-10-23 10:48 心海巨澜 阅读(3627) 评论(7) 编辑

2010年10月17日 #

摘要: 在契约版本管理的前二章,我们主要介绍了数据契约对版本的影响,本章我们介绍一下服务契约的变化对版本的影响。服务契约的接口支持继承功能,我们可以定义一个契约层级,但是ServiceContract特性是不能继承的,因此,接口层级中的每组接口都必须显示的标记ServiceContract特性。 下面我们通过一个DEMO来演示服务契约的继承: 1、新建WCF Service Library程序,修改解决方...阅读全文
posted @ 2010-10-17 10:34 心海巨澜 阅读(1923) 评论(2) 编辑

2010年10月13日 #

摘要: IExtensibleDataObject,MSDN给出的解释为:提供一个数据结构,用于存储 XmlObjectSerializer 在反序列化一个用 DataContractAttribute 属性标记的类型期间遇到的额外数据。命名空间: System.Runtime.Serialization,程序集: System.Runtime.Serialization。 IExtensibleData...阅读全文
posted @ 2010-10-13 22:07 心海巨澜 阅读(2874) 评论(8) 编辑

2010年10月9日 #

摘要: WCF版本相容性:指WCF的服务端在更新为新版本的情况下,客户端对服务端的引用不进行更新到最新的服务端,而继续引用旧的服务端但不发性异常。WCF契约缺省是提供版本相容性支持的,所有的服务契约,数据契约与消息契约,都允许缺失、非必需(non-required)的数据存在;且可以忽略多余的数据;DataContractSerializer提供相容性支持;适当的变化并不会对现存的客户端或者服务端产生影响...阅读全文
posted @ 2010-10-09 10:02 心海巨澜 阅读(2400) 评论(3) 编辑

2010年10月7日 #

摘要: 上一章我们介绍了契约设计中的已知类型契约(KnownTypesContract),这一章我们介绍:消息契约(MessageContract)。 消息契约(MessageContract):对控制消息头和消息体元素提供了强力支持,支持MessageHeaderAttribute和MessageBodyMemberAttribute属性。可以添加自定义头,控制消息是否被包装(IsWrapped),以及...阅读全文
posted @ 2010-10-07 15:50 心海巨澜 阅读(5630) 评论(1) 编辑

摘要: 上一章我们介绍了契约设计中的明确契约(ExplicitContract),这一章我们介绍:已知类型契约(KnownTypesContract)。 已知类型契约(KnownTypesContract)允许在服务契约中使用多态的行为;在服务操作中暴露基本类型,将已知类型(known types)相关到:基本类型(基类类型)自身、特定操作、整个服务契约;采用属性声明或者配置的方式来实现。 开发环境:Vi...阅读全文
posted @ 2010-10-07 13:45 心海巨澜 阅读(2969) 评论(1) 编辑

摘要: WCF的契约主为分为:服务契约、数据契约、消息契约,其中数据契约包括:可序列化的数据类型和已知类型。而我们在设计契约时,则主要采用三种方式:明确契约(ExplicitContract)、已知类型契约(KnownTypesContract)和消息契约(MessageContract)。开发环境:Visual Studio 2010 + Net Framework 4.0。 明确契约(Explicit...阅读全文
posted @ 2010-10-07 10:00 心海巨澜 阅读(3479) 评论(1) 编辑

摘要: WCF全称为Windows Communication Foundation,是Microsoft平台上的SOA架构,用于构建分布式和可交互操作的应用程序。它统一ASMX, .NET Remoting, 与Enterprise Services的开发模型,为各种应用提供单一的编程模型,基于配置驱动的协议选择,消息格式,进程分配等。 开发环境:Visual Studio 2010 + NET Fra...阅读全文
posted @ 2010-10-07 08:12 心海巨澜 阅读(6194) 评论(7) 编辑

2010年8月29日 #

摘要: SEO搜索引擎优化的实施方案  做为一个电子商务网站,为提高网站品牌、网站知名度、网站排名与实现搜索引擎的友好访问以及网页在各搜索引擎的收录,通过对网站进行SEO搜索引擎优化是一个省钱又高效的途径。不管你的网站是赢利网站还是非赢利性网站,进行SEO搜索引擎优化只会百利而无一害。这里我主要介绍通过对网站本身的优化来实现基本的SEO搜索引擎优化的目的。1、SEO搜索引擎优化从网页设计开始: A、从网页...阅读全文
posted @ 2010-08-29 12:29 心海巨澜 阅读(2833) 评论(1) 编辑