摘要: 换了一个新工作,来到新的公司当然最重要的就是要先熟悉公司的业务,我果断了通过tfs下载了公司的一个业务的源码,里面虽然有很多的封装功能我看不到具体实现,但是通过项目的结构我还是发现了一个公司项目能够成功的关键。 公司名我就不说了,说了大家会觉得我有点什么似的?咱就说我通过看公司源码发现了什么,我先说说这个源码项目是做什么的?这个源码是针对公安局进行调度的程序,就是相当于公安局接线员似的,听公司的老人说这个项目的功能,我以为没有什么复杂的,但是我拿到了公司的源码,我的妈呀,吓我一跳,一共有接近六十个项目,就是这一个解决方案中有六十个项目存在。这是我干软件那么长时间,第一次看到一个解决方案竟然需. 阅读全文
posted @ 2013-04-03 22:22 baidixing 阅读(5555) 评论(23) 推荐(9) 编辑
摘要: 上一篇博客中我们介绍到了数据契约的序列化操作,虽然数据契约的序列化和xml的序列化操作基本保持一致,除了一些细小的差别外,但是数据契约的序列化更加简单,更加方便。今天我们继续数据契约的序列化,只不过今天要讨论的问题不是如何序列化,而是如何保证序列化成功。说到这里,你可能会笑了?保证序列化成功是wcf的操作,我们根本不用管,如果序列化不成功,也是wcf框架的问题,肯定不会是我序列化对象的问题。其实对象的序列化和反序列化实现了数据在托管对象和xml之间两种形态的转换。由于托管对象是通过CLR类型来描述的,所以数据契约序列化器DatacontractSerializer在序列化的时候必须明确所有对象 阅读全文
posted @ 2013-03-29 18:52 baidixing 阅读(1311) 评论(2) 推荐(0) 编辑
摘要: 上一篇博客我们说明了数据契约的前身Xml的序列化,这次还是言归正传,回到wcf的技术上来,分析一下DataContractSerializer 。首先我们必须了解wcf默认是通过xml进行数据传输,但是并不意味着就一定要用这种,还有轻量级的json。DataContractSerializer继承自XmlObjectSerializer,是可以直接对.Net对象进行序列化操作,但是DatacontractSerializer的使用更加方便。要使一个类成为数据契约,我们必须要通过DataContractAttribute进行标注,然后通过应用DataMemberAttribute特性来标注它的属 阅读全文
posted @ 2013-03-28 23:19 baidixing 阅读(1732) 评论(1) 推荐(0) 编辑
摘要: 在上一篇博客介绍了xml序列化的原则,wcf 基础教程 契约 Contract 数据契约DataContract序列化前身 XmlSerializer xml序列化, 今天我们沿着上次描述的继续前进,这次的内容可能会很少,但是应该说如果我们想更进一步的控制xml,那么还是很有必要的。好了,不多说了,xml序列化使用的是.Net 中的XmlSerializer,在System.Xml.Serialization.XmlSerializer 命名空间下。上次仅仅是XmlSerializer 采用的默认的序列化规则。很多情况下,我们需要控制xml的输出,那么就需要我们人为的干预和控制。在xml序列化 阅读全文
posted @ 2013-03-21 23:39 baidixing 阅读(1293) 评论(2) 推荐(0) 编辑
摘要: 本来今天打算描述一下数据契约的序列化,毕竟只是单纯的说数据契约的作用也没有太大意义,但是我发现如果单纯的叙述wcf的序列胡DataSerializer 很困难,因为它采用的事xml序列化,所以今天打乱了我的计划,来介绍一下.Net中的xml序列化,毕竟我们在使用序列化器的时候,很多时候生成的都是xml。契约是交互双方或多方就某个问题达成的一共共识,而信息交换式wcf通信的唯一手段,也是跨平台的关键,所以契约的最根本目的不是定义什么操作方式,而是对消息的结构进行规范、统一,只有通信双方对消息的结构达成了一致,通信才可能进行。wcf默认的数据交换方式就是xml,虽然说数据在wcf中有CLR对象和X 阅读全文
posted @ 2013-03-21 22:56 baidixing 阅读(1483) 评论(0) 推荐(1) 编辑
摘要: 在前几篇博客中我有说到服务的寄宿,就是服务要运行起来必须采取的几种方式,相当于我们可以照葫芦画瓜的效果运行一个wcf服务,但是那只是实践,我们知其然更要知其所以然,所以从今天开始我们开始介绍wcf的三大部分:契约、绑定以及服务。当然这其中会有很多的细节问题,比如说终结点等等,我们穿插着进行。今天就先来预习一下契约,也称为合同(Contract).wcf的契约一共包括几种:数据契约、服务契约、消息契约、错误契约。既然是预习,那么我们就一起来学习一下这几种契约的作用。数据契约:DataContract 是用来对wcf的数据传输进行串行化。说到串行化,.net中也有串行化,但是.Net的串行化是把所 阅读全文
posted @ 2013-03-19 23:14 baidixing 阅读(1879) 评论(0) 推荐(1) 编辑
摘要: wcf的寄宿方式多种多样,今天我们一起来探讨一下windows 服务的寄宿方式,其实明白了控制台的寄宿方式,在windows下的寄宿方式也是一样,只不过是操作方式有点区别。编程代码基本是一样的。我们首先创建一个window 服务应用程序,然后在service1.cs设计界面中添加安装程序,这些都是我们创建windows服务应用程序应该熟知的步骤,我就不再赘述了,我们需要做的就是把控制台程序中的添加服务宿主的代码拷贝到windows服务应用程序中。 1 protected override void OnStart(string[] args) 2 { 3 4 ... 阅读全文
posted @ 2013-03-19 00:18 baidixing 阅读(4422) 评论(5) 推荐(2) 编辑
摘要: wcf 的服务寄宿方式大致可以分为两种,一种就是自我寄宿,另一种就是通过操作系统的组件进行寄宿。wcf的服务需要承载于一个被称为宿主的应用程序中。宿主程序为请求监听、消息处理、服务激活、以及操作执行提供了一个运行环境。我们将利用宿主程序来承载服务的操作称为服务寄宿。自定义一个控制台应用程序、Windows程序或其他类型的程序作为承载服务的宿主,我们将这种方式称为服务寄宿(Self-Hosting).另一种就是通过操作系统现有的进程激活方式为wcf服务提供宿主,包括IIS、WAS(Windows激活服务)、Windows 服务等几种。既然说到了寄宿,我就多说一句,就是IIS寄宿不需要启动,因为I 阅读全文
posted @ 2013-03-16 23:36 baidixing 阅读(2681) 评论(2) 推荐(2) 编辑
摘要: 可能大家会觉得我说完了wcf的介绍以后,会介绍wcf的契约、服务这些内容,但是我没有,为什么呢?原因就是我一直坚持的从程序员中来,到程序员中去的观点。程序员的学习是一个渐进的过程,不是有了介绍就可以直接了解wcf的全貌,但是我也没有介绍wcf的配置,因为这个内容很多,但是我今天要介绍的是wcf中的一个知识点,这个知识点只是一个渐进的过程,但是知道了这个知识点以后,我们可以避免很多错误的发生。所以我说一下wcf中的一个Attribute ConfigurationName。在很多的契约及其服务行为属性中我们都可以看到这个属性的存在,但是这个属性究竟是做什么的。如果不仔细看一下很真是有些误导,但是 阅读全文
posted @ 2013-03-16 22:19 baidixing 阅读(2191) 评论(3) 推荐(0) 编辑
摘要: 在上一篇博客wcf 基础教程 第一讲 wcf基础知识中,因为篇幅过长,所以我选择在这一篇把wcf用IIS承载的方式介绍一下。首先我们在WebHosting web项目中创建一个.svc的文件,这里我建议之间添加一个类,然后把文件后缀改成.svc就可以。我们添加了一个CalService.svc文件。1 <%@ServiceHost Service="Chinaer.WcfDemo.Services.CalService" Debug="true" %>添加了这个文件以后,我们在web.config中进行简单的配置。 1 <system. 阅读全文
posted @ 2013-03-16 00:22 baidixing 阅读(2481) 评论(0) 推荐(1) 编辑