
序
据我所知,这是国内第一本关于Silverlight 2的原创书籍。作为一本面向开发人员的极好的Silverlight教程,此书非常详细地从开发人员的视角介绍了Silverlight 2开发相关的方方面面。
记得大约在两年前,我第一次听说公司内部有一个WPF/e的项目,即所谓的WPF Everywhere,就为之兴奋不已。WPF(Windows Presentation Foundation)是微软在.NET 3.0中引入的一种表现层的新技术,与之同时推出的还有WCF(Windows Communication Foundation)、WF(Windows Workflow Foundation)以及WCS(Windows Card Space)等。在WPF之前,在开发用户界面之前,我们需要考虑在架构上是选择B/S还是C/S,同时还要设法解决开发人员以及设计人员长期存在的沟通困难的问题。而在有了WPF之后,我们可以很方便地解决这两方面的矛盾。WPF除了可以开发C/S应用外,也可以以XBAP(XAML Browser Application)的方式提供B/S界面。同时,由于基于XAML,再借助Visual Studio以及Expression Studio的协助,可以让开发人员以及设计人员更好地进行协作。
但有得必有失,由于WPF必须依赖于.NET Framework 3.0以上的版本,这就意味着使用WPF开发出来的应用程序非常“重”,如果客户端没有安装.NET Framework 3.0,那么就需要下载安装一个100MB左右的运行时(当然,在.NET 3.5 SP1之后,可以将此运行时降低到20MB左右,但还是非常“重”)。同时,.NET Framework在目前必须依赖于Windows操作系统,虽然未来有可能通过Novell公司资助的MONO项目使之可以跨平台,但在目前来说,还是遥遥无期。
而作为一种轻量级的WPF类似的技术——Silverlight的出现,就填补了这种空白。首先,Silverlight不依赖于.NET Framework,客户端仅仅只有5MB左右;其次,Silverlight可以跨平台、跨浏览器,可以在Windows、Mac以及Linux(在Linux下需要Moonlight,属于MONO的子项目)系统中运行,而且支持IE、Firefox、Safari等浏览器。Silverlight 1.0推出时,开发人员还需要使用原始的JavaScript来编写业务逻辑,而在Silverlight 2推出后,开发人员的选择更多了,既可以继续使用JavaScript,还可以使用编译型语言,比如C#、VB等,甚至使用动态语言,如Ruby、IronPython等。
笔者一直负责国内Silverlight的推广工作。从Silverlight 1.0推出到现在一年左右的时间内,借助于与国内大型网站的合作,比如百度、腾讯、淘宝、新浪、搜狐等一系列基于Silverlight的项目,目前Silverlight在国内的市占量已经达到60%左右。所以对于开发人员来说,目前学习以及使用Silverlight是一个最佳时机。我们不难想象,随着Silverlight 2的正式发布,会有越来越多的项目基于Silverlight构建,同时,其市占量也会出现井喷性的增长。
苏鹏曾经是我的同事,其对Silverlight技术一直潜心研究,并且多次在MSDN中文网站的网络技术讲座中对Silverlight进行系列性地讲解,相信这本书也会为您了解、学习、掌握Silverlight带来促进并从中获益。
王洪超
微软(中国)有限公司 互联网架构首席顾问
2008/10/14于北京