摘要: 在上面的内容中,先后介绍了信道、信道管理器、信道监听器和信道工厂。从对象的创建来讲,信道管理器是信道的创建者。说的再具体点,客户端的信道通过信道工厂创建,服务端的信道通过信道监听器创建。但是信道工厂和信道监听器又是如果被创建出来的呢?
我们在一开始就已经说过,作为终结点三要素的绑定对象实现了所有的通信细节,并且通过创建信道栈实现了消息的传递。从这一点来说,绑定对象无疑是信道层所有通信对象的最终缔造者,所以信道工厂和信道监听器最终的创建都是靠绑定对象实现的。关于这个创建过程又和另一个重要的对象密切相关,那就是绑定元素。
阅读全文摘要: 由于信道管理器在客户端和服务端所起的不同作用,分为信道监听器和信道工厂。和服务端的信道监听其相比,处于客户端的信道工厂显得简单。从名称就可以看得出来,信道工厂的作用就是单纯的创建用于消息发送的信道。我们先来看看与信道工厂相关的一些接口和基类的定义。
阅读全文摘要: TECHED2008大会已过去了快一个月了,在大会上所看到的关于 Azure的介绍至今还在头脑中不时出现。当然我本人不是什么云计算的狂热支持者,到如今我的观点也与蔡学镛先生的差不多,就是关注加观望(以免在云端一脚踏空摔下来)。另外就是我对云的兴趣目前也仅限在SDS和NetServiceBus这两方面。其中对服务总线一直感到很好奇,这一点在我之前的一篇文章中已做了一些说明。今天的这篇文章主要是从流程上了解一下如何运行(或调试一个运行在云端ServiceBus中的service).通过它,可以对Azure的服务总线的工作原理有一个初步的认识。
阅读全文摘要: 今天是WinHEC第一天。WinHEC就是Windows Hardware Engineering Conference,中文名是做Windows硬件工程大会。昨晚紫柔告诉我9:00到场签到就可以了,因为9:30正式开始,但我早上还是忍不住多睡了一会儿,所以10:00才到场。当时还是张亚勤的演讲,我进入主会场后迅速找到剩余的几个空位坐下来了。张亚勤的演讲当然紧接着若干个demo,其中Surface...
阅读全文摘要: EF跟其它ORM的做法不一样,其它ORM是先有Model再自动维护数据库,EF是先有数据库再自动(目前只能手工重建来达到“刷新”的目的)维护Model的。相比其它ORM,EF最要命的是目前不“内置”切换Provider的支持。但微软的开发人员给我们提供了以下思路:
阅读全文摘要: Silverlight Dynamic Languages SDK 目前 host 在 CodePlex 上,使用它可以用 IronPython/IronRuby/Managed JScript 等动态语言编写 Silverlight 程序,其项目的主页在:http://www.codeplex.com/sdlsdk我做了一些尝试,发现要实际用来开发点东西,还是有不少需要注意的地方,特别是程序集引...
阅读全文摘要:
D2是淘宝网内部讨论发展而成的国内前端设计、开发者论坛。现在已经是第三届了。从现场的参加者来看,算的上是有声有色了。不容易呀!特别是它的建立思想和出发点。也算是给前台设计、开发者办了大好事呀。
说实话,这次D2会议很多演讲并不算成功。很多话题让人感到索然无味,倒是右面的大屏幕成了大家聊天逗趣的场所。当然,也有可能是时间有限的原因,很多话题没有展开吧。
阅读全文摘要: 在上一篇文章当中,简要介绍了一下如何使用现有的 SyncProvider 对象来进行文件(夹)同步。今天的这个DEMO主要演示通过继承方式来实现自己的SyncProvider来进行相关同步元数据存储,当然这样做会给我们以额外的好处,比如按自己的意愿来创建、版本和删除项的信息等。另外就是对同步应用程序的工作原
理也会有一个大概的认识。
阅读全文摘要:
因为,我们人类是最善于搞关系的动物,所以原本可以简单的理论,在人类的意识哲学中变得复杂而多变,以至于我们本应简单的道理变得如此复杂,这就是依赖。那么,从依赖讲起来了解依赖倒置原则,我觉得首先应该回到以下的问题:
* 控制反转、依赖倒置、依赖注入这些概念,你认识但是否熟悉?
* Unity、ObjectBuilder、Castle这些容器,你相识但是否相知?
* 面向接口、面向抽象、开放封闭,这些思想,你了解但是否了然?
带着对这些问题的思考和思索,Anytao带领大家就依赖这个话题开始一次循序渐进的面向对象之旅,以解答这些从一开始就有足够吸引力的问题,从原理到实例,从关系到异同,我期待这篇文章能带来一些认知的变革。
阅读全文摘要: 还是以前那句话,我不喜欢ORM这个词,但是更多的时候又不得不用。看到园友写的“ ORM是进化还是倒退?”的文章,禁不住想说上几句。其实进化(或者进步?)或者倒退(或者退化?)是没有一个清晰标准的,追求这个进步或者倒退实在也没有什么意义。但是这个标题很惹人,很多年轻人很容易受到蛊惑,所以我必须站起来提醒一下他们。ORM可以理解成object-relation-mapping,...
阅读全文摘要: 在前五篇文章当中,介绍了Sync For ADO.NET Service,从这篇文章开始,将开始介绍有关使用MSF进行文件(夹)同步的相关知识。因为文件同步的应用目前比较广泛,所以可能够要用3-4篇文章来进行介绍。今天先介绍一下有关MSF文件同步的原理和使用MSF中现有的类来实现一个简单的DEMO(本DEMO支持文件和文件夹)同步。 好的,下面开始今天的正文。
阅读全文摘要: Analysis Services不同于数据引擎有自己的sa方式的验证,而我们在实际生产环境部署的时候不可能应用程序服务器和分析服务器都在同一台物理机器上,这个时候就需要配置分析服务的远程方式访问.目前网上资料最多的就是通过http的方式,本文主要描述sqlserver 2005 analysis services在vista平台下的配置方法.
阅读全文摘要: 基于Enterprise Library PIAB的AOP框架已经在公司项目开发中得到广泛的使用,但是最近同事维护一个老的项目,使用到了Enterprise Library 2,所以PIAB是在Enterprise Library 3.0中推出的,所以不同直接使用。为了解决这个问题,我写了一个通过方法劫持(Method Interception)的原理,写了一个简易版的AOP框架。
阅读全文摘要: 对于有跨国业务的web系统来说,一般都需要提供多语言功能。然而在众多多语言方案里,如.net自带的Resource方式,都会在程序开发时增加程序员的额外负担,不易开发:1.各种不同的地方实现多语言,如aspx的control绑定,js脚本,cs代码,procedure里的提示信息等,这些多语言实现方式各不相同,加重了开发难度...
阅读全文摘要: 在之前介绍的两个DEMO中,链接远程服务器所使用的方式都是通过数据库链接串。虽然可以简单的实现所期望的数据同步功能,但这样做有两个问题:
1.不适合进行分布式布署.
2.安全方面存在问题,因为在客户端会持有远程数据库服务器的链接帐号。
阅读全文摘要: 想调用一个方法很容易,直接代码调用就行,这人人都会。其次呢,还可以使用反射。不过通过反射调用的性能会远远低于直接调用——至少从绝对时间上来看的确是这样。因此,很多框架在必须利用到反射的场景中,都会设法使用一些较高级的替代方案来改善性能。例如,使用CodeDom生成代码并动态编译,或者使用Emit来直接编写IL。不过自从.NET 3.5发布了Expression相关的新特性,我们在以上的情况下又有了更方便并直观的解决方案。
阅读全文摘要: 在几篇文章当中,我介绍了 SnapShot(快照方式)和“只同步新更改和增量更改”这两种同步方式并对相应的生成文件进行了粗略的分析。今天开始把话题深入一下,聊一聊MSF的冲突检测和处理。这里所说的冲突(Conflict) 主要是指当客户端与服务端数据在进行CUD时,所操作的数据同步期间发生了错误,如通常所说的约束冲突(主键重复),以及在同步时多个节点(客户端)上更改了同一行,或服务端删除该行而其它节点却更新了该行便存在冲突等。当然在设计应用程序时应避免产生冲突(比如可通过筛选行和列等方式做到这一点),因为冲突的检测和解决会增加应用程序的复杂性,增加处理负担和网络流量。
阅读全文摘要: 微软 2008 Windows 硬件工程大会(Windows Hardware Engineering Conference 2008,简称WinHEC 2008 China)即将于 2008年12月3-4日在北京万豪酒店盛大开幕,今年是微软第一次在中国独立举办WinHEC大会,以至于JesseQu用WinHEC终于来了一文回忆了自己近18年软件开发工作中对驱动、内核层次开发工作的情愫感慨。在WinHEC 2008开幕之际,让我们一起来回顾一下Windows的发展历史,寻找那些曾经熟悉的符号。
阅读全文摘要: 前言今天看了两篇讲协变/反变的文章,写得很好也很有意思。不过我猜应该有不少人可能还是很难理解这个新概念——每一次推出新的概念的时候,都会或多或少造成我们的困惑:这是个什么东西?为什么要出这么复杂的东西?我们什么时候应该用这种东西,什么时候不该用?有这样的困惑没关系,我想绝大多数人都经历过这个过程。我在这里呢,也说说从我的角度是如何看这个新鲜事物的,也许对理解这个东西有帮助。不过先声明一下,我没有装...
阅读全文摘要: visifire是silverlight下很不错的一套开源组件,最近其发布了2.0beta版本,本文将主要记录一些这个版本跟以前版本不同的地方.
昨天初步把1.55版本移植到了2.0beta,没有遇到太大的麻烦,不过确实还是进行一些细节的修改,这些更改看上去更合理了,很多东西都不用往children下硬塞,直接类似Serise.Add或者Titles.Add就可以了.
由于visifire更新速度还是挺快的,所以请留意下,写这篇文章的时候visifire的版本是2.0 beta,未来的版本可能会有变化,具体细节请阅读当前时间的visifire对应版本的文档.
阅读全文