推荐序1
Silverlight是微软公司推出的新一代RIA技术,是一种跨浏览器、跨平台的.Net Framework的实现,用来构建和发布下一代的媒体体验和Web交互应用,它统一了服务器、Web和桌面的功能。作为一种新的Web内容载体,它可被以Web的方式来发布,在客户浏览器端运行时,它不但可以灵活地和各种服务器端应用交互,更具有和桌面体验一样的、丰富的图形渲染及用户交互控制能力。
Silverlight的意义还远不止于此。试想若干年前服务器端的情形,只有Raw HTML的发布功能,后来出现CGI,开始以构造程序的方式来处理Web请求发放响应,各种应用服务器支撑的编程模型逐步发展起来,直到现在像ASP.NET/WCF、J2EE这样的成熟框架,足以支撑起大规模的Web应用,其中最本质的一条发展线索就是编程模型在服务端的演进。现在,在Internet应用的客户端,具有类似的编程模型本质的线索,即将发展到一个新的阶段。从HTML的渲染、Form Data的原始回发,到Web2.0中对JavaScript、DOM技术的接近极致的应用,再到近一两年各种像Google Earth/FaceBook这类Web API的出现,似乎仍无法满足人们对Web应用用户体验的追求,开发者中的先锋们仍在寻求更先进的编程模型来支撑下一代Web应用的前端。RIA技术应用重新得到重视,借助新的内容类型来补充和突破HTML-Based的局限。然而,在Silverlight之前,与其类似的技术均无法保证前台开发中“艺术”+“编程”这个Pair中“编程”的匹配度。前台编程模型,仍停留在“脚本”阶段,开发人员的先进思想及技巧、经验均无法“复用”过来,而且无法在保证客户端浏览器运行性能的前提下支撑复杂的桌面级别的UI逻辑和用户体验。现在Silverlight 2来了,它在UI渲染、艺术创作,以及UI逻辑、编程模型,双方面上带来了全新程度的提升。开发人员可以以面向对象面向组件的方式来开发、完整地复用以前的知识和经验。这是Silverlight在Web前台开发编程模型演进上所能带来的巨大变化,从这一点上,我们完全可以看到这项全新的RIA技术的前景。
那么,作为开发人员,我们如何尽可能快而又全面、准确地掌握Silverlight开发技术的方方面面呢?权威准确、翔实全面的资料,加以自己的学习与实践,以及先行者的分享与经验,这些都是不可缺少的。即使是一个非常有经验的.Net开发人员,在转入Silverlight开发时,有时也会由于对其中的异步操作、线程上下文理解不够深入而被莫名的问题弄得焦头烂额。所以,要在学习和实践中避免误区,少走弯路,学习先行者的经验是非常重要而有益的。
本书的作者Terry Lee就是这样一位在Silverlight开发领域极富经验的先行者。
初识Terry,是读他博客园上的文章。他给我最深的印象是他的勤奋和才识。后来有缘成为同事,在公司的项目中一起工作,在几个开源项目中,他留给我最深的印象是他对软件技术的天赋。每当我向朋友介绍他时,总爱加上这样一句话:他是我遇到的仅有的几个在技术上最信得过的人之一,无论是系统架构设计方面还是代码实施动手能力方面。
Terry是一个热爱分享的人,这一点从他的博客上可以看出,更可以从与他日常的交流中感受到。这半年多来,Terry主要参与一个重量级应用Silverlight技术的项目,这个大型Web应用项目的页面全部采用Silverlight技术来实现。于是这段时间里与Terry聊到的技术话题中,Silverlight所占的比例就多出许多,经常会就一个可能的最佳实践进行“严正磋商”,或就Silverlight的一个Bug一起来“指点江山”;下面的场景更是常见:“ScottGu已经把我俩的那个问题转给Silverlight小组的Stefan了,估计马上会有答复了!”“Stefan的回复中提到这个问题可能与IAccessible接口有关,要不我来谈谈这个接口?”经常可以从他与Microsoft Silverlight小组的大量往来邮件中,得知一些来自“内部”的信息。不是每个人都能够像Terry这样与Silverlight有如此亲密接触的,即使你是这个方向上的MVP,我想,这与他的求知热情、热爱分享是分不开的。当然,每当回忆起这样的场景,我总会叮嘱他,一定不要忘记把这些都写入他的书中去!
《Silverlight 2完美征程》就是这样的一本书!在Silverlight 2 Beta1期间就已经成稿,在Silverlight 2 RTW版出来后,Terry又投入了大量的精力来重写和校正。书的内容覆盖了Silverlight 2开发的各个方面并被整理得井井有条,多年的技术写作功底在这里又一次得到了体现:图文并茂、讲解透彻,一如博客园中的Terry Lee。
读过本书之后,我对Terry的第一句话就是,怎么还有这么多我们之前没有谈到的内容?
我相信,大家读后的收获,一定会比我更多!
资深架构师
2009年2月于北京