WPF/Silverlight编程:导读(请先看这个)

本系列说明

不知不觉地就把这个系列的总结写完了,然后才发现怎么有这么多东西的!中午吃饭聊天,同事也这么说。but,想想我都学习 WPF/Silverlight有将近3个月时间了(至2010.3.1),总要有些像样的产出,学到的东西是很多(估计将来更多),区区4、5篇也不算 的什么了。but,当我写完之后,还真有点想吐的感觉!(体会到了职业写手的辛苦)

废话不说了。本系列包含如下内容:

WPF/Silverlight编程:大观

WPF/Silverlight编程:理解应用程序编程模型

WPF/Silverlight编程:控件定制

WPF/Silverlight编程:WPF与Silverlight的联系和区别

WPF/Silverlight编程:依赖项属性系统和路由事件系统分析 (pending)

WPF/Silverlight编程:学习工具

最初是从"大观"开始写起,最初的动机就是要说明WPF/Silverlight编程思想的来源,因为之前深入其中看具体的技术点太多了,反而有些没有头绪,人的大脑组织知识的能力有限,必须要从繁多的技术细节中跳出来,总结出来容易记得几条来,才可以把握整体。

写着写着就有了写出一个完整的系列的念头,因为大观中的东西没有一点代码,是个讲技术演化的东西,很是总结不出来学到的东西。所有就有了“WPF/Silverlight编程:理解应用程序编程模型”和“WPF/Silverlight编程:控件定制”。

在理解应用程序编程模型中,就是对具体一些的WPF/Silverlight发明出来的编程概念进行解释、说明,其中XAML的来源还 是有一些技术演化的成分,这也是我的一个写作思路,我个人也更喜欢讲清楚事情的来龙去脉,丢给别人一个不完整的东西,还不如不写了,因为类似的网上都有。

可是,在理解应用程序编程模型中,还没有对具体的开发任务做进一步的说明,只有少量代码,仅仅用来说明概念之用。其重点是说明了WPF/Silverlight的“描述性编程”思想

接着在控件定制中,我详细说明了与这个具体的开发任务相关的概念,涵盖了XAML的编写,控件定制的实际写法,最后有一个实例。这篇的重点就是秉承WPF/Silverlight“描述性编程”的思想,指出实现的时候,以“属性”为中心进行开发的思想

这三篇的关系在于,第一篇讲历史,第二篇讲思想,第三篇讲技术。所以还需要有一篇要来讲原理。

这就是“依赖项属性系统和路由事件系统分析”的目的。因为在第二篇的最后已经提到了这两个核心编程模型,它们多数的时候并不会被开发者 直接使用,但是其设计和实现,这些隐藏在其下的东西,需要有很好的编程基础和编程思想,才会感觉到其设计的精巧,学习到更好的编程技术。

至于"WPF与Silverlight的联系和区别"只是第三篇的一个小尾巴。因为具体到技术来说,这两者思想是一致的,具体行为有点差异,而我们又是主要使用Silverlight进行开发,这个差异和联系也要说清楚。

那“学习工具”就只是提供一个学习资源链接。

使用方法

前提是:

1,已经对C#以及.NET环境熟悉,并且完成了一些C#的练习。(我不打算写一个C#编程系列了,太费神了,orz,而且之前也有做过C#的presentation。)

2,安装好Visual Studio开发环境。

具体的:

1,如果已经学习过WPF/Silverglith的基础知识,比如,学习过MSDN上的文档,看过《Pro WPF》、《Pro Silvergliht 3》等,直接和我面谈,交流心得体会,并且我很乐意大家出力来修订这些wiki。

2,如果刚完成C#的学习,刚接触Silverlight,可以从“控件定制”开始,一边使用VS环境,一边参考一下MSDN,或者那两本书,首先掌握XAML的结构和写法,理解了XAML的功能(能用自己的话总结出来,才叫理解噢)。

3,在掌握了XAML后,实做一个控件的定制任务,这里面涉及的概念在“控件定制”中都有,文中未提到的,MSDN和那两本书上都有,直接进入相关章节查阅。

4,真正理解了WPF/Silverlight提供的编程模型后,想要探求其实现原理,就要使用工具来看源代码。"依赖项属性系统和路由事件系统分析"中会有使用工具的例子,以及分析的过程说明。这里需要更多的精力,更有效的方式在于交流。

后记

我学习WPF/Silverlight的过程,也是通过阅读MSDN和《Pro WPF》、《Pro Silverlight 3》这些系统的文档,查阅大量的网上的零散技术文档,阅读实例项目代码,再有就是大量实践了。那我写的这个系列和它们有什么不同呢?

就我的看法,MSDN上主要是reference manual的作用,概念讲的少而精,不是初学者上手所要使用的东西。简体中文版翻译的有些惨不忍睹,语句都不通顺。但是也有好处,就是搞明白了官方的中 英文技术术语的对照了。这样,看一些网上的技术文章时,也可以知道有一些是概念不准确的。

《Pro WPF》和《Pro Silverlight 3》是出自一个作者之手,由于Silverlight原本是WPF的一个子集,所以后一本书中对概念的讲述并不透彻,只是说明了和WPF相 比,Silverlight有一些限制,像具体的XAML的功能,后一本书中都没有讲,直接进入XAML文件本身的结构和写法介绍了。还有一个问题,看这 两本书的目录,其知识组织来说,还是按照MSDN上的目录来的,多的就是作者本身阐述了很多概念和设计原则的东西,但是,章节之间的前后逻辑性不强,为何 一开始要讲XAML,Style和其它的部分有什么关系,等等,这些都不是这两本书讲出来的。

我的思路在于首先从技术演化的角度说明WPF/Silverlight这玩意为什么会被发明出来,然后再说这玩意具体提供啥编程模型,这是分析需求,到说明解决方案的思路。

就算是说WPF/Silverlight技术本身,先讲XAML,那是因为它是个粘合剂,它实际上就只有两个功能,描述资源、描述界 面,前者是后者的基础,然后再扩展说明资源如何描述,界面如何描述,那控件如何定制也是自然而然随之而来的事情了。就算是同一个东西,比如Style,也 根据这个思路,分成两个部分来说明,资源组织一部分,triggers是另一部分。这样层层递进,是为了学习者由浅入深来的。

相对于网上同行们的技术文章,都是偏重具体的某一个细节方面的,我还没有看到整体上讲的很明白的。

在纯粹的写作技术上来说,我对重要的概念反复说明,文字间注意前后关联。这也是跟Head First系列书籍的写作方式学习的。

上面说明了我的写作思路,如果具体文章中有纰漏,请一定理解那不是我的初衷。好的文章是修改出来的,也请大家一起来修订!

另外有一句话叫“跟一个人学,不如跟他的师傅学”,其实只有当自己通过各种资料写下了总结的文字,在写的过程中就会加深对这个技术的认识,从这个角度来说,真正受益的还是我自己,呵呵。8-)

后后记

终于都写完了,也包括这篇导读!

posted @ 2013-01-04 14:21 Leo L.Cao 阅读(...) 评论(...) 编辑 收藏