silverlight
3,谈谈源码研究与TDD
大家都有一个共识:如果你想研究某个框架或者工具的源码,那先必须熟练使用它,熟练之后自然就有一种研究它的冲动,但是往往这个框架或工具比较庞大,很不容易下手,一个很不错的方法就是使用TDD。我们都知道TDD的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发,在此过程中我们可以借助一些工具来协助。比如我们现在要研究Nhibernate,那么我们首先要熟练它的一些功能,然后从一个点出发慢慢编写单元测试,然后逐渐完善代码,最后直至完成框架的搭建,这样会给我们带来莫大的驱动力和成就感。除了微软的BCL(Base Class Library)和企业库以外,大家还可以用TDD来试试还原以下的任一开源代码:
(/)、
Castle()、
log4net(/log4net/)、
NHibernate(/343.html)、
()、
Caliburn(/)、
MVVM Light Toolkit(/)、
Prism(/)、MONO源码
()
四. 依赖属性续前缘
大家都知道WPF和Silverlight带来了很多新的特性,其中一大亮点是引入了一种新的属性机制——依赖属性。依赖属性基本应用在了WPF的所有需要设置属性的元素。依赖属性根据多个提供对象来决定它的值(可以是动画、父类元素、绑定、样式和模板等),同时这个值也能及时响应变化。所以WPF拥有了依赖属性后,代码写起来就比较得心应手,功能实现上也变得非常容易了。如果没有依赖属性,我们将不得不编写大量的代码。依赖属性在WPF中用得非常广泛,具体在以下几个方面中表现得尤为突出:
◆ UI的强大属性体系
◆ Property value inheritance(值继承)
◆ Metadata(强大的元数据)
◆ 属性变化通知,限制、验证
◆ Resources(资源)