10 2009 档案
摘要:奇怪了,SL居然不显示datagrid,于是调试调试再调试,测WCF、测ViewModel,测,最后把代码搬家到WPF,居然可以了。 于是下断点到一辈子也不会注意的InitializeComponent函数。 public DynamicGridView(){ InitializeComponent(); 见鬼了,要是这样的原因就见鬼了。但更奇怪的是],根本就不会执行到这里。于是,看...
阅读全文
摘要:终有一天,我要抛弃MSN。 1.MSN Server经常挂 2.如果网络不稳,Client频繁等入登出,消息动不动就发不出去。 3.每次升级,都强制原先的版本不能使用,如果原先的联系人不符合新的MSN规则,就不能登陆。tnnd 4.传输附件没有QQ快。不怕货好坏,就怕货比货。人比人得死,货比货得扔。 5.传输附件N多限制,exe不能发也就算了,rar也不能,每次都修改后缀为rar1。遇到...
阅读全文
摘要:三种契约 Service契约 包括接口和方法(operation契约) Data契约 参数,实体,XSD Message契约 SOAP中的消息格式(还有Fault契约) WCF异步调用,这个一定要在Client端添加Service Reference时,在高级选项中选择“生成异步调用”才生效,如下所示: 相应的Client代码:class Program{ static int c = 0; s...
阅读全文
摘要:我们在第一个自定义behavior的示例中,在Service端定义了一个behavior,这是一个ParameterInspector。代码下载:WCFBehaviorSolution1.zip 我们也可以在Client定义一个ParameterInspector。这与Service是否自定义了behavior无关。所以,我们可以基于WCFBehaviorSolution0.zi...
阅读全文
摘要:follow我,一路做下去,直到完成这个Sample,不要问为什么,下一篇文章告诉你。 本文添加的是自定义behavior的其中一种,ParameterInspector,就是说,client调用Service方法时传递的参数,我们可以在Service实际调用前进行筛选过滤。 我们在上面那个例子上,定义我们自己的behavior。代码下载:WCFBehavior...
阅读全文
摘要:本文全都是自定义behavior的定义。阅读前请参阅本系列前面两篇文章。 behavior,说白了,就是内部的附加操作。在效果上,有点像ASP.NET中的HttpModule和HttpHandle(实现原理当然不一样了)。 在上面的例子中,我们为Service添加了附加的操作,就是在调用契约方法之前,把从Client传来的参数+1。我们还可以在Client端也添加类似的行为,我...
阅读全文
摘要:本文适用于自托管Service。 我们要建立一个最简单的WCF程序,包括Service、ServiceHost和Client。 1)创建一个空的解决方案,起名为WCFBehaviorSolution,如下图所示(反正写blog不废纸,又不是写书,多截些图,读者不会骂我) 2)创建自托管Service,这是一个WCF Service库,专门适用于WCF自托管项目的: ...
阅读全文
摘要:ServiceHosthost = newServiceHost(typeof(Service), http://localhost:8080/ddd); 只适用于自托管,"http://localhost:8080/ddd"是baseAddress,也可以把地址放到配置文件中: ServiceHost host = new ServiceHost(typeof(Servi...
阅读全文
摘要:1.关于宿主(host) 我们一般创建的是以IIS为宿主的,所以我们平常在VS2008中创建的项目,如下图所示,都是IIS托管的。关于IIS托管,上一篇文章已经说得很清楚了。 但是,WCF还有另一种托管方式,称为自托管(Self-Hosting)。 说得深奥些,就是Client和Service共用一个进程。说得通俗些,就是把Client项目和Service项目合二为一,比如说这...
阅读全文
摘要:(前言) 我们习惯于使用VS2008中WCF的项目模板,于是Server端的创建基本是不用动脑子的。 又因为我们默认使用的MEX绑定,所以在Client端,我们在VS2008种右击项目,就可以轻松添加Server Reference,这也是不用费脑细胞的。 VS2008让我们把注意力foucus在业务逻辑上,而模糊了WCF的本质。 于是我经常犯糊涂,甚至连WCF最基本的概念有时都混淆。 ...
阅读全文
摘要: 吉日有三篇文章,是我最深恶痛绝的,堪称误导新人之三部曲:
1.白话讲反射技术 --- 适合初学者入门引导
2.白话讲山寨SOA,少一些迷惑、多一些理解,你的程序架构SOA了吗?
3.不懂接口、反射、委托、设计模式足足写了5年的代码 -- 写给初学者(谈美女生成器不谈代码生成器)
阅读全文
摘要:致博客园所有技术新手,正确了解反射,对你的程序员生涯具有至关重要的意义。因此,请不要被虾米虾米的水文误导,技术是容不得半点yy的。
阅读全文
摘要:刚写完项目的一个UT,下面是在涉及UT时的一些新得,和以往的UT不太一样哦:1.Model中不要有方法,提升到ViewModel级别。2.MessageBox封装成ShowMessage(string text)方法,提升到IView中。在MockView中,设置Message属性,读取text参数值,从而可以使用Assert.IsTrue();来判断。3.对于异步调用WCF的方法,发是发,收是收...
阅读全文
摘要:继往开来,本文讨论了Command在Prism中的设计框架,指出其中的一些不足,以及一些修改意见。
至此,十一期间的7篇文章全部刊登结束,详细展现了MVP、Command和Prism的博大精深。
阅读全文
摘要:MVP模式最后一篇,讲解WPF/Silverlight的另类编程方式。
阅读全文
摘要:本文的代码都是基于WPF的,对于Silverlight,这些技术也同样适用。
本文详细讨论了INotifyPropertyChanged和ObservableCollection一些使用技巧。
阅读全文
摘要:本文旨在验证一个容易混淆的概念,从而为玩转WPF/Silverlight中INotifyProperty做铺垫。
两个相同类型的变量a和b,并且有如下关系:b=a;如果a发生改变,b是否也发生改变呢?
阅读全文
摘要:MVP模式中Command的终极解决方案。WPF/Silverlight中的必杀技——AttachedBehavior。
阅读全文
摘要:此文,是从传统窗体的Event编程模型到MVP的Command模型的过渡。
希望本文能颠覆所有软件开发人员的编程观念。
阅读全文
摘要:本文,以及后面的几篇文章《从event折腾到command》、《AttachedBehavior技术详解》、《包式波动理念》共同构成了Prism开发的四部曲(这么名字有点别扭哦)。
阅读全文
摘要:1. 前言(要重写)2. 从Hello World开始(实战篇)(要完善)3. 容器(构思中)4. Module研究5. View Injection和View Discovery6. Event机制7. 探寻Command8. 白话MVP9. 从Event折腾到Command10.AttachedBehavior11.包氏波动思想12.View-first和Presenter-first(已写好...
阅读全文