WPF好书推介zz
![](http://p.blog.csdn.net/images/p_blog_csdn_net/bitfan/EntryImages/20090427/Snap7.jpg)
![](http://p.blog.csdn.net/images/p_blog_csdn_net/bitfan/EntryImages/20090427/Snap8.jpg)
![](http://p.blog.csdn.net/images/p_blog_csdn_net/bitfan/EntryImages/20090427/Snap6.jpg)
WPF技术书籍之个人排行榜
作为一名知识分子,读书已成为我个人生活中不可分割的一部分,一日可以不吃肉,甚至可以不上网,但不可一日不读书,连如厕时,往往也一书在手。 :)
不幸身处技术更新快速的软件业,为追上技术的更新步伐而不得不大量阅读各种资料,虽然互联网的大普及撼动了传统学习方式的地位,我个人也在ITCAST(http://www.itcast.net)上录制在线技术教程,尝试新的基于互联网的计算机技术教与学新模式,但我个人仍然喜欢通过“读优秀技术书籍”+“敲实验代码”来学习软件技术。
在完成了为ITCAST设计.NET系列课程的任务之后,我开始比较系统地学习.NET 3.5的各项新技术,为开设相关课程作积累。.NET 3.5中有四个主要的新技术:WPF,WCF,WF和CardSpace。其中,我选择的入口点是WPF。
我收集了目前在图书市场上可以看到的国内引进及出版的4本有关WPF的技术书籍,断断续续地选读了其中的部分内容,将“读后感”与朋友们分享一下,并根据自己的感觉对其评了级。
1 《Windows Presentation Foundation 程序设计指南》
这是我看的第一本WPF书,是冲着作者Charles Petzold去的。作者在Windows程序设计领域可谓大名鼎鼎,当年他所写的一本《Windows 程序设计》可谓是Win32时代的经典之作。时至今日,老先生仍宝刀不老,在MSDN杂志上经常可以看到他所写的文章。
《Windows Presentation Foundation 程序设计指南》英文版书名很有趣:
APPLICATIONS = CODE + MARKUP:
A GUIDE TO THE MICROSOFT WINDOWS PRESENTATION FOUNDATION
(程序=代码+标记
——WPF程序设计指南)
想必此书名是从那个著名的公式——“程序=数据结构+算法”得到灵感。
电子工业出版社在引进此书时,想必是害怕读者不了解原书名,所以换了个通俗易懂的,其实个人觉得大可不必,这样一改,反而失去了特色。
现在说说我读这本书的感觉。
这本书的第一眼印象是——厚!页码是否上千我忘记了,一本当之无愧的“砖头书”。
这 本书的第二个特点是——流畅!译者是台湾知名的技术作家蔡学镛,文笔很流畅。在翻译过程中他保留了不少的英文术语和词汇不译,关于这点大家可以见仁见智, 我的感觉是如果对于某个术语业界已有成熟并且广为接受的译法,应该译为中文,然而,如果不属于这种情况,还是保留英文单词。比如“property”和“attribute”,中文都译为“属性”,就容易弄混了。呵呵,您不知道“property”和“attribute”的差别?举个例子:在.NET技术领域,“property”一般指在类中定义的属性,C#中由get和set存取器编程实现,而“attribute”多指附加在代码上的以中括号“[”和“]”的部分,比如让一个类可序列化的“[Serializable]”就是一个“attribute”,HTML和XML代码中,元素的属性也是“attribute”。
这本书的第三个特点是——动手! Charles Petzold老先生在书中提供了许多动手修改代码的指导,动手做一下,会加深对书内容的理解。
然而,这本书也有着几点不足:
(1)Charles Petzold老先生看来在大学中是学计算机图形学出身的,对一些数学知识解析得几乎是过于详细了,比如对贝塞尔曲线的用法老先生花了近十页去介绍,事实上,除非打算开发一个矢量绘图软件,没有人会在意贝塞尔曲线的数学原理。
(2)图片过少。国内出的许多书满纸都是截屏,固然有多占版面的作用,但象Charles Petzold老先生这种连一个屏幕截图都没有的却也少见。一图抵千言,没有图,对阅读的体验有一定的影响。
(3)见木不见林。Charles Petzold老先生介绍了大量的技术细节,但全书确缺乏对WPF技术总体的描述,虽然点出了某项技术的应用场景,但由于书太厚,关键点又没有突出显示,被淹没在文字当中了,这是一大缺憾。
另外,此书从代码入手来介绍WPF,在后头才介绍XAML,并且对Visual Studio和Expression等工具几乎没有介绍。因此,适合有一定经验的程序员来读,如果你的C#和面向对象没学好,没有比较丰富的.NET 2.0编程经验,读懂并掌握这本书的内容有难度,但与我要介绍的第二本书相比,其难度要小得多了。
总而言之,此书我评为4星级,从内容到翻译,都还不错。
2 《WPF揭秘》
此书是人民邮电出版社出的,由Adam Nathan著,瞿杰、单佐一、夏寒译,大约480页,厚度适中。
这本书我是大力推荐的一本。作者毫无疑问拥有丰富的开发经验,书中的内容大多其是开发实践的总结,许多地方点到了点子上,看上去很过瘾,另外,在实际开发中可能会遇到的问题都有涉及,有助于掌握WPF技术全貌。
翻译得也不错,总体上比较流畅。但有些句子和部分内容让人疑惑,因为没有原文对照,我不知道是译者的理解问题还是表达问题,亦或是原文就是这样的。但无关大雅。
这本书在写作上如果要挑毛病,就是其例子组织得太随意,在正文中没有标出对应的文件名和项目名,查找起来有点麻烦。
这本书从较容易理解的XAML入手,然后再引申到代码及相关技术,可谓面面俱到,相当不错,个人评为4.5星级。
然而,此书不是写给初学者看的,与Charles Petzold老先生的书一样,如果你没有比较丰富的.NET 2.0编程经验,是看不懂这本书的,我的几个学生都告诉过我这个情况。
3 《Programming WPF》(影印版)
此书由东南大学出版社引进,作者是CHRIS SELLS和IAN GRIFFITHS,出版商是“O’REILLY”,是第二版,目前国内还没看到有中文版。
此书有800多页的厚度,在书中同时介绍XAML与代码,与前两本书相比,此书是在写作上写得最好的一本(我还没看完,只是选看了其中有关数据绑定的两章,大约七八十页)。
就 我所看过的部分(有关数据绑定的两章),作者采用了一种步步深入的写作手法,从一个简单的例子开始,通过不断地向其中添加新代码来讲解相关的技术,通过同 一个示例的多个版本介绍技术,很易于理解,而且有连贯性。在数据绑定的这两章中,作者选择的示例很典型,可以看出是经过精心考虑的。
数 据绑定的这两章位于书的中后部,一本书中后部分的章节往往决定了这本书的总体质量,前面部分的章节(有些书还包括最后一两章)一般写得比中后部好,原因很 简单:写作是一件非常辛苦的事,可以看成是一场马拉松,书的中后部内容正是写作马拉松比赛中最累也最难熬的一段,如果这部分内容都能保持相当的水准,那么 全书应该差不到哪里去。我自己也写过几本小书,深知其中甘苦啊!不过,由于此书由两位作者完成,也许另一位作者写作水平不如这一位,这也难说,毕竟我没有 通读全书,只读了此书的一小部分。因此推断可能是有错误的,如果有不妥,我会在看完此书后更正书评。
此书除了介绍WPF,还介绍了Silverlight 1.0。目前Silverlight 2.0已是BTEA2版本,其正式版应该很快发布。Silverlight是一个非常引人注目的技术,个人认为它与ADOBE的Flex一起代表了下一代互联网表示层技术的一个发展方向。现有的XHTML+CSS+JavaScript虽然是最广泛使用的技术并且将长期存在,但这些技术所固有的一些缺陷是“天生”的,难于后天弥补,一定会有更新更好的技术出现的。
与Silverlight 1.0相比,Silverlight 2.0最大的变化是使用软件工程师所熟悉的全面向对象的C#/VB.NET而不是“让很多程序员不爽”的JavaScript来编程,而且VS2008也提供了相应的工具予以支持。
Silverlight 1.0没能流行起来,与微软平台的程序员普遍不喜欢JavaScript有一定的关系。
由于技术发展太快,本书没有能介绍Silverlight 2.0,我相信作者一定会在第3版更新这部分内容的,这一技术在互联网时代实在是太重要了。
总之,我将此书评为“4.5星级”。而且此书写作质量是已介绍过的三本书中最好的一本,循序渐进,应该适合于初学者学习。最大的问题是我没有看到中文版出版,因此,英文不好的读者不能享受阅读这本书的乐趣,是一大遗憾。
不知有没有出版社正在翻译此书,在此,我只想说一句:请出版社选好译者,造福广大国内读者。
4 《深入解析WPF编程》
这是我看到的由国内作者写的唯一一本有关WPF的技术书籍。关于书的内容和质量我就不多评价了,肯定不如比上面介绍的3本书。
个人意见:如果你想了解WPF技术,最好还是从上面介绍的几本书选吧。
5 WPF技术书籍之个人排行榜小结
国内还有其他的一些WPF技术书籍我没看。不予以评价。
从我看的几本WPF书来看,总体上引进的书都有不错的质量,然而,针对初学者的中文书籍几乎没有,是一个空白点。
建议所有打算学习WPF的读者,一定要先学好C#编程语言及面向对象理论,还有XML基础知识,如果有ASP.NET开发经验就更好,你会在WPF中处处看到Web技术的影子。
WPF技术与过去的两个主要技术(Win32时代的MFC和VB,.NET时代的Windows Form)相比,绝对是一个飞跃,标志着Windows平台桌面应用领域开发技术到了一个新的高度,真的是相当强大与灵活。WPF将面向对象技术的威力发挥得淋漓尽致,又将其和XML的灵活性结合起来,以前在开发中遇到的麻烦事在WPF中要解决仅是小菜一碟,而且XAML打通了Web开发与桌面开发两个领域,并且可以充分利用.NET Framework基类库的强大功能,对技术进步的一种震憾的感觉在我的WPF学习过程中常伴左右。有时间我将再撰文谈谈WPF的整个技术框架以及我所梳理出来的技术关键,点出这些关键技术是如何与.NET 2.0的技术点相关联的。
这样强大的一个WPF技术,将老技术远远地抛在后面,如果不用在实际开发中,实在是太可惜了,它可以让你活得更轻松,因为,与原来技术相比,使用WPF可以获得更高的开发效率和更Cool更炫的用户体验,而且可以无缝地应用于Web上。
在有足够的技术积累时,我计划为ITCAST设计一个WPF系列课程,与广大朋友们共同交流,帮助初学者高效率地掌握WPF并将其应用于实际开发中。
最后说一句:
你想系统掌握.NET 3.5下的新技术?请从WPF入手!