摘要: 今天看David Wynne写的一篇如果在MVVM中使用MEF进行扩展的文章,总的来说例子写的很好,可是有一个很命的地方,View是硬编码(hardcoded)到Main window中的,我就借花献佛,把它的例子稍稍改一下,以使它真正的好扩展。基本上改动不大,直接贴代码吧App.csCode highlighting produced by Actipro CodeHighlighter (fr...阅读全文
posted @ 2010-01-22 16:46 芭蕉 阅读(680) 评论(0) 编辑
摘要: 今天看一C#开源工程的源代码觉得很不习惯,因为作者是使用C++ coding style组织代码的, VS只有自动格式单个文件代码的功能(Edit -> Advanced -> Format Document), 没有自动格式整个工程的选项,没办法,只能自己动手写个宏了。首先打开Marcos Explorer ( Tools -> Marcors -> Macro Expl...阅读全文
posted @ 2010-01-08 16:12 芭蕉 阅读(1319) 评论(1) 编辑
摘要: The following article is mainly from Prism documentation, it's just a review of IoC.Having class depends on services or components whose concrete type is specified at the design time introduced severa...阅读全文
posted @ 2010-01-07 13:10 芭蕉 阅读(110) 评论(0) 编辑
摘要: "when I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck" -- James Whitcomb RileyIt's really easy to implement duck typing in C# 4.0 since it int...阅读全文
posted @ 2010-01-05 17:00 芭蕉 阅读(365) 评论(0) 编辑
摘要: Castle Dynamic Proxy is a library forgenerating lightweitgh .NET Proxy on the fly at run time. it worked as generating a subclassof the given class and overried the virtual method at the run time.   L...阅读全文
posted @ 2010-01-04 16:19 芭蕉 阅读(342) 评论(0) 编辑
摘要: 前两天在园子里看到一篇用C#实现Python Decorator的文章,看的时候就在想应该可以用C# 4.0 Dynamic来搞。今中午有时间试了一下,果然可以. 本文假设你己安装了VS2010 Beta2和 IronPython 2.6 for .NET 4.0 Beta2, 首先创建一个Console App并引用如下Dll (可以在你的IronPython安装目录中找到)IronPython...阅读全文
posted @ 2009-12-31 14:49 芭蕉 阅读(1702) 评论(2) 编辑
摘要: 随着微软对动态语言,函数式语言的重视,我们(微软阵营的.Net程度员)也越来越多的开始使用这些"新的语言,新的思想"来完成我们的一些日常工作。对我们来说,动态语言有IronPython, IronRuby可选,函数式语言有F#。F#功能是很强大,但对新手来说,其代码可读性就差一些,经常能看到人抱怨F#写出来的代码丑陋,看不懂。 相反,Python作为一种动态语言,语法简洁,写出的代码也是相当漂亮,...阅读全文
posted @ 2009-12-28 14:58 芭蕉 阅读(1322) 评论(4) 编辑
摘要: F#中的lambda表达式很容易给人造成误解,好象它只支持单行的语句,其实不然,它是可以支持多行的,比如let f = (fun () -> (printf "hello" printfn " world" )) 只是上面这种写法实在太过难看,所以一般推荐写成一行,语句之间用分号隔开,letf = (fun() -> ( printf "hello"; printfn "world")...阅读全文
posted @ 2009-12-28 00:15 芭蕉 阅读(258) 评论(2) 编辑
摘要: 实箭头:  虚线:Dependence,表示一种比较弱的依赖关系,某个类在某一段时间可能使用另一个类。  实线:表示两个对象间的关系,根据对象间有无主从(Owner)关系,可有分为两类    无主从关系: Association, 两个对象的创建和销毁都彼此独立    有主从关系, 既一个对象被创建后只能属于创建它的对象,不能同时被别的对象使用。根据两个对象的生命周期的依赖关系又可分为两类:   ...阅读全文
posted @ 2009-12-25 14:10 芭蕉 阅读(445) 评论(0) 编辑
摘要: Python中函数支持default value和keyword arguments(类似于C# 4.0中引入的named and optional parameters). 唯一需要注意的地方就是在一个scope中默认值只会被计算一次,所以如果默认值是可变容器时,要注意side effects.比如def f(a, L=[]):  L.append(a)  return Lf(1) // ret...阅读全文
posted @ 2009-12-24 13:37 芭蕉 阅读(147) 评论(0) 编辑