- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                SilverLight学习笔嫉那
                    3,谈谈源码研究与TDD
  大家都有一个共识:如果你想研究某个框架或者工具的源码,那先必须熟练使用它,熟练之后自然就有一种研究它的冲动,但是往往这个框架或工具比较庞大,很不容易下手,一个很不错的方法就是使用TDD。我们都知道TDD的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发,在此过程中我们可以借助一些工具来协助。比如我们现在要研究Nhibernate,那么我们首先要熟练它的一些功能,然后从一个点出发慢慢编写单元测试,然后逐渐完善代码,最后直至完成框架的搭建,这样会给我们带来莫大的驱动力和成就感。除了微软的BCL(Base Class Library)和企业库以外,大家还可以用TDD来试试还原以下的任一开源代码:
  Spring.NET(/)、Castle()、log4net(/log4net/)、
  NHibernate(/343.html)、iBATIS.NET()、Caliburn(/)、
  MVVM Light Toolkit(/)、Prism(/)、MONO源码()
  四. 依赖属性续前缘
  大家都知道WPF和Silverlight带来了很多新的特性,其中一大亮点是引入了一种新的属性机制——依赖属性。依赖属性基本应用在了WPF的所有需要设置属性的元素。依赖属性根据多个提供对象来决定它的值(可以是动画、父类元素、绑定、样式和模板等),同时这个值也能及时响应变化。所以WPF拥有了依赖属性后,代码写起来就比较得心应手,功能实现上也变得非常容易了。如果没有依赖属性,我们将不得不编写大量的代码。依赖属性在WPF中用得非常广泛,具体在以下几个方面中表现得尤为突出:
  ◆ UI的强大属性体系
  ◆ Property value inheritance(值继承)
  ◆ Metadata(强大的元数据)
  ◆ 属性变化通知,限制、验证
  ◆ Resources(资源)
  ◆ Data binding(数据绑定)
  ◆ Styles、Template(样式、模板和风格)
  ◆ 路由事件、附加事件、附加行为乃至命令
  ◆ Animations、3D(动画和3D)
  ◆ WPF Designer Integration(WPF设计、开发集成)
  在上一篇WPF基础到企业应用系列7——深入剖析依赖属性中,我们对依赖属性做了较详细的介绍,那么下面我们就简单回顾一下,其实依赖属性的实现很简单,只要做以下步骤就可以实现:
  ◆ 第一步: 让所在类型继承自 DependencyObject基类,在WPF中,我们仔细观察框架的类图结构,你会发现几乎所有的 WPF 控件都间接继承自DependencyObject类型。
  ◆ 第二步:使用 public static 声明一个 DependencyProperty的变量,该变量才是真正的依赖属性 ,看源码就知道这里其实用了简单的单例模式的原理进行了封装(构造函数私有),只暴露Register方法给外部调用。
  ◆ 第三步:在静态构造函数中完成依赖属性的元数据注册,并获取对象引用,看代码就知道是把刚才声明的依赖属性放入到一个类似于容器的地方,没有讲实现原理之前,请容许我先这么陈述。
  ◆ 第四步:在前面的三步中,我们完成了一个依赖属性的注册,那么我们怎样才能对这个依赖属性进行读写呢?答案就是提供一个依赖属性的实例化包装属性,通过这个属性来实现具体的读写操作。
  根据前面的四步操作,我们就可以写出下面的代码:
? 1: public class SampleDPClass : DependencyObject
   2:  {
   3:      //声明一个静态只读的DependencyProperty字段
   4:      public static readonly DependencyProperty SampleProperty;
   5:? 
   6:      static SampleDPClass()
   7:      {
   8:          //注册我们定义的依赖属性Sample
   9:          SampleProperty = DependencyProperty.Register(Sample, typeof(string), typeof(SampleDPClass),
  10:              new PropertyMetadata(Knights Warrior!, OnValueChanged));
  11:  
                您可能关注的文档
- 2012百科名词解释的.doc
- 2013.11.21高新技术的企业认定培训-合肥和钧正策信息技术有限公司.ppt
- 20130408理论总结的.ppt
- 2013专业技术人员继的续教育心理健康与心理调适题库.doc
- 2013届高考英语一轮的复习 Module6 Unit 2 What is happiness to you课件 牛津译林版(湖南专用).ppt
- 2013届高考历史一轮的复习 第1课时夏商西周早期政治制度与秦朝中央集权制度的确立精品讲义 新人教版必修1.doc
- 2013年专业技术人员的公需课试题及答案(中高级).doc
- 2013年专技人员公需的科目培训 84分.doc
- 2013年军事理论上机的试题-II.doc
- 2013年国家司法考试的大纲:国际私法.doc
 原创力文档
原创力文档 
                        

文档评论(0)