阿赛·游梦鱼·郭言赛·阿赛工作室
全站技术源码素材
  • 发布:biancheng 浏览:106次 时间:2013-4-20
    先看一个截图。上面的图,各位乍一看,可能会觉得是用Socket编写的聊天程序。告诉你吧,这玩意儿不是用Socket实现,呵呵,当然它的底层肯定与Socket有一定关系,我只说我的代码没有用到socket而已。那么,除了Socket可以用于通信,还有其他技术吗?有啊,首先,如果你足够强大,用HTTP也行,但HTTP初始化的过程貌似比较慢。那么还有吗?当然了,各位还记得.NET以前有一个很X但又很少被
  • 发布:biancheng 浏览:144次 时间:2013-4-20
    我们在编写与Socket有关的应用程序时,在发送软为复杂的数据时,可能我们最常做的是把各个部分的数据转换为字符串,然后将这些字符串用一个分隔符连接起来进行发送。不过,不知道你有没有想过这样做还是有问题的。比如,我用#来分隔各个字符串,在根据客户端输入的内容到服务器端进行查找,然后返回结果,万一用户输入的查找关键字中就包含#,那么就会影响我们对字符串进行分割了。不知道各位有没有想过,把序列化和反序列
  • 发布:biancheng 浏览:64次 时间:2013-4-8
    微软已经发布了VisualStudio2012的Update2,并带来了丰富的新功能。本次更新提供了一些VS2012的“重大改进”。早在1月的时候,微软就为本次更新提供了一个预览版本,以收集大家的测试和反馈,而现在,本次更新的最终版本已能够下载了。新功能中有一个新的VSBlue主题,其中也涉及到了XAMLdesigner载入时间的性能增强。微软在官方一篇博文里表示,与VS2
  • 发布:biancheng 浏览:63次 时间:2012-11-14
    从FaultContractAttribute的定义我们可以看出,该特性可以在同一个目标对象上面多次应用(AllowMultiple=true)。这也很好理解:对于同一个服务操作,可能具有不同的异常场景,在不同的情况下,需要抛出不同的异常。1:[AttributeUsage(AttributeTargets.Method,AllowMultiple=true,Inherited=false)]2:
  • 发布:biancheng 浏览:50次 时间:2012-11-14
    通过WCF基本的异常处理模式[上篇],我们知道了:在默认的情况下,服务端在执行某个服务操作时抛出的异常(在这里指非FaultException异常),其相关的错误信息仅仅限于服务端可见,并不会被WCF传递到客户端;如果将开启了IncludeExceptionDetailInFaults的ServiceDebug服务行为通过声明(通过在服务类型上应用ServiceBehaviorAttrite特性)
  • 发布:biancheng 浏览:64次 时间:2012-11-11
    由于WCF采用.NET托管语言(C#和NET)作为其主要的编程语言,注定以了基于WCF的编程方式不可能很复杂。同时,WCF设计的一个目的就是提供基于非业务逻辑的通信实现,为编程人员提供一套简单易用的应用编程接口(API)。WCF编程模式的简单性同样体现在异常处理上面,本篇文章的主要目的就是对WCF基于异常处理的编程模式做一个简单的介绍。一、当异常从服务端抛出对于一个典型的WCF服务调用,我个人倾向
  • 发布:biancheng 浏览:43次 时间:2012-11-11
    任何一个程序都需要运行于一个确定的进程中,进程是一个容器,其中包含程序实例运行所需的资源。同理,一个WCF服务的监听与执行同样需要通过一个进程来承载。我们将为WCF服务创建或指定一个进程的方式称为服务寄宿(ServiceHosting)。服务寄宿的本质通过某种方式,创建或者指定一个进程用以监听服务的请求和执行服务操作,为服务提供一个运行环境。服务寄宿的方式大体分两种:一种是为一组WCF服务创建一个
  • 发布:biancheng 浏览:43次 时间:2012-11-7
    通过上篇的介绍,我们知道了WCF所有与编码与解码相关的功能都实现在相应的System.Xml.XmlDictionaryWriter和System.Xml.XmlDictionaryReader中。但是在真正的WCF处理框架中,却并不直接使用XmlDictioanryWriter和XmlDictionaryReader对象,而通过相应的消息编码器(System.ServiceModel.Chann
  • 发布:biancheng 浏览:42次 时间:2012-11-7
    消息作为WCF进行通信的唯一媒介,最终需要通过写入传输层进行传递。而对消息进行传输的一个前提或者是一项必不可少的工作是对消息进行相应的编码。WCF提供了一系列可供选择的编码方式,它们分别在互操作和性能各具优势。在本篇文章我们将对各种编码方式进行消息的讨论。从互操作性的角度来看,编码方法很大程度上决定了跨平台支持的能力。有的编码方式是平台无关的,有的则仅限于某种特定的平台。WCF提供了3种典型的编码
  • 发布:biancheng 浏览:57次 时间:2012-11-7
    在本篇文章中,我们将讨论WCF四大契约(服务契约、数据契约、消息契约和错误契约)之一的消息契约(MessageContract)。服务契约关注于对服务操作的描述,数据契约关注于对于数据结构和格式的描述,而消息契约关注的是类型成员与消息元素的匹配关系。我们知道只有可序列化的对象才能通过服务调用在客户端和服务端之间进行传递。到目前为止,我们知道的可序列化类型有两种:一种是应用了System.Seria
  • 发布:biancheng 浏览:146次 时间:2012-11-5
    《WCF技术剖析(卷1)》自出版近20天以来,得到了园子里的朋友和广大WCF爱好者的一致好评,并被卓越网计算机书店作为首页推荐,在这里对大家的支持表示感谢。同时我将一直坚持这个博文系列,与大家分享我对WCF一些感悟和学习经验。在《消息(Message)详解》系列的上篇和中篇,先后对消息版本、详细创建、状态机和基于消息的基本操作(读取、写入、拷贝、关闭)进行了深入剖析,接下来我们来谈谈消息的另一个重
  • 发布:biancheng 浏览:46次 时间:2012-11-5
    在上篇中大体上围绕着Message的两个话题进行讲述:消息版本(MessageVersion)和采用五种不同的方式创建Message。本篇文章将会详细介绍Message的另外两个主题:和消息的基本操作,比如读、写、拷贝、关闭等,以及消息状态机(MessageStateMachine)。知道了消息是如何创建的,我们接着讨论消息的一些基本的操作。除了上面介绍的消息创建之外,一个消息涉及到的操作大体分为
  • 发布:biancheng 浏览:45次 时间:2012-11-5
    消息交换是WCF进行通信的唯一手段,通过方法调用(MethodCall)形式体现的服务访问需要转化成具体的消息,并通过相应的编码(Encoding)才能通过传输通道发送到服务端;服务操作执行的结果也只能以消息的形式才能被正常地返回到客户端。所以,消息在整个WCF体系结构中处于一个核心的地位,WCF可以看成是一个消息处理的管道。尽管消息在整个WCF体系中具有如此重要的意义,可是一般的WCF编程人员,
  • 发布:biancheng 浏览:30次 时间:2012-11-3
    数据契约是对用于交换的数据结构的描述,是数据序列化和反序列化的依据。在一个WCF应用中,客户端和服务端必须通过等效的数据契约方能进行有效的数据交换。随着时间的推移,不可避免地,我们会面临着数据契约版本的变化,比如数据成员的添加和删除、成员名称或者命名空间的修正等,如何避免数据契约这种版本的变化对客户端现有程序造成影响,就是本节着重要讨论的问题。一、数据契约的等效性数据契约就是采用一种厂商中立、平台
  • 发布:biancheng 浏览:41次 时间:2012-11-3
    如果一个类型,不一定是数据契约,和给定的数据契约具有很大的差异,而我们要将该类型的对象序列化成基于数据契约对应的XML。反之,对于一段给定的基于数据契约的XML,要通过反序列化生成该类型的对象,我们该如何实现这样的场景?比如下面定义了两个类型Contact和Customer,其中Customer是数据契约,Contact的Sex属性相当于Customer的Gender属性,而Contact的Ful
  • 发布:biancheng 浏览:82次 时间:2012-10-25
    在.NET中,所有的集合都实现了IEnumerable接口,比如Array、Hashtable、ArrayList、Stack、Queue等。有的集合要求元素具有相同的类型,这种集合一般通过泛型的方式定义,它们实现另一个接口IEnumerable(IEnumerable本身继承自IEnumerable),这样的集合有List、Dictionary、Stack、Queue等。基于集合类型的序列化具有
  • 发布:biancheng 浏览:41次 时间:2012-10-25
    在.NETFramework2.0中,泛型第一次被引入。我们可以定义泛型接口、泛型类型、泛型委托和泛型方法。序列化依赖于真实具体的类型,而泛型则刻意模糊了具体类型概念。而集合代表一组对象的组合,集合具有可迭代(Enumerable)的特性,可以通过某个迭代规则遍历集合中的每一个元素。由于范型类型和集合类型在序列化和反序列化上具有一些特殊的行为和规则,在这篇文章中,我将会对此进行详细介绍。上篇先来说
  • 发布:biancheng 浏览:35次 时间:2012-10-23
    DataContractSerializer承载着所有数据契约对象的序列化和反序列化操作。在上面一篇文章(《数据契约(DataContract)和数据契约序列化器(DataContractSerializer)》)中,我们谈到DataContractSerializer基本的序列化规则;如何控制DataContractSerializer序列化或者反序列化对象的数量;以及如何在序列化后的XML中保
  • 发布:biancheng 浏览:42次 时间:2012-10-23
    数据契约(DataContract)和数据契约序列化器(DataContractSerializer)大部分的系统都是以数据为中心的(DataCentral),功能的实现表现在对相关数据的正确处理。而数据本身,是有效信息的载体,在不同的环境具有不同的表示。一个分布式的互联系统关注于数据的交换,而数据正常交换的根本前提是参与数据交换的双方对于数据结构的一致性理解。这就为数据的表现提出了要求,为了保证
  • 发布:biancheng 浏览:57次 时间:2012-10-17
    说完了客户端的异步服务调用(参阅WCF技术剖析之十一:异步操作在WCF中的应用(上篇)),我们在来谈谈服务端如何通过异步的方式为服务提供实现。在定义服务契约的时候,相信大家已经注意到了OperationContractAttribute特性具有一个bool类型的AsynPattern。该属性可以将一个服务操作定义成异步实现模式,接下来的内容主要是着眼于介绍异步操作的定义和实现原理。一、异步操作的定
  • 123456789››113Pagesize= Page=
    知识分类
    推荐知识
    近期热门知识

    MapSiteMapRssGoTop