标题：Silverlight魔幻银灯
图书信息

作　者：苏鹏著
出 版 社： 电子工业出版社
出版时间： 2008-11-1
页　数：332页
开　本： 16开
ISBN 9787121074684
分类： 图书 >> 计算机/程序设计>>Silverlight技术
定价：￥49.00元（含光盘1张）
宣传语：

通过翔实的介绍揭开微软Silverlight开发的神秘面纱……
使用Silverlight开发自己的应用程序，为自己的网站提供更好的用户体验。
内 容 简 介

Silverlight技术是微软在富媒体网络平台上最新的表现技术，通过这一技术，用户可以基于互联网进行富媒体应用开发。本书通过翔实的介绍为广大开发者揭开微软Silverlight开发的神秘面纱，读者通过本书的阅读可以了解Silverlight开发的基本方法，并使用Silverlight开发自己的应用程序，为自己的网站提供更好的用户体验。本书共分8章，分别介绍了Silverlight开发的技术、Silverlight环境搭建与配置、在Silverlight中绘制图形、在Silverlight中使用动画、在Silverlight中嵌入多媒体效果，以及如何使用Silverlight整合ASP.NET开发网站应用。本书还配有大量截图，介绍了微软的设计工具Blend在设计Silverlight方面的使用。相信广大读者可以通过本书的学习掌握Silverlight开发的技巧，并将其应用在自己的网络开发工作中。
本书适合进行网页开发的程序员和页面设计人员，以及对微软Silverlight技术有兴趣的Web程序设计人员阅读。
作者简介

苏鹏，现任中国网通集团北京市分公司软件开发架构设计师，常年从事ASP、ASP.NET等Web开发工作于2006年荣获微软最有价值专家(MVP)称号，2007年和2008年连任。目前从事的工作中开始关注Web表示层设计工作。
序

据我所知，这是国内第一本关于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于北京 
序

认识苏鹏是在一次MVP（微软最有价值专家）和一些微软公司技术专家的聚会活动上，一样是久闻其名始见庐山真面目，果然是英气逼人。大家谈笑风生指点技术，一任时间流逝，十分畅快。他对软件技术的热情，他的韧性，他踏实的作风，他凡事认真的态度，他的独立思考的精神，他的乐观、诚恳和大度，都构成了他独特的人格魅力。我们这样几个意气相投、有抱负、有想法、有斗志、爱技术的人，成了最好的兄弟。我想一个技术高手和大师的养成，靠的是品格，靠的是勇气。借此机会，我也与大家共勉。
苏鹏的文笔之佳，看过他博客的朋友们都知道。写书、写文章并不是一件简单的工作，实际上一本书的读者水平那是“七上八下”，读者的理解能力也是“三心二意”。既能让初学者茅塞顿开，也能让熟悉这项技术的人有共鸣、有收获，照顾到不同的口味、不同的需求，那是大大的不容易。苏鹏在博客里喜欢引用“周易”，一词一句说出最精妙的思考，我想读者也可以在本书中有触碰、有咀嚼。
Web开发技术一直是微软公司最被广泛使用的技术，从ASP、ASP.NET到现在的ASP.NET AJAX、Silverlight技术，基于这些技术我们有着无比创造力的程序员们创造出了大量丰富多彩的应用和系统。Silverlight技术的优势大家有目共睹，微软公司在这项技术的研发和推广上倾注了极大的心力，也提供了Expression Studio系列支持工具，同时它们还可以与Visual Studio整合开发环境紧密集成。已经没有人怀疑Silverlight技术成为未来Web应用构建的最佳选择的这种趋势。苏鹏一直连任Web技术方向的MVP，他的技术水平有目共睹，他能把自己的经验和心得通过这本书分享给大家，善莫大焉。
软件开发就是一个体力活，非得静得下心来写上几千行几万行程序才能真有所得。在看这本书的同时请大家一定不要止于翻看，一定要亲自动手，写程序，熟悉工具，“理论联系实际”，这是毛主席教给我们的！
受苏鹏兄弟的委托，我要为他的书写点东西。最近工作繁忙，频繁奔波辗转于各个城市，跟各地的软件企业和工程师们开会、讨论、交流，如何使用好微软的技术和工具，如何开发有价值的优秀的软件和应用，我们这些技术人员倾注了大量才智和时间的软件产品怎么才能对客户有用，才能真正解决问题。我们讨论到技术的沿革和平台发展的趋势，讨论到了个人价值的实现和个人的成长和发展，我们讨论到了个体企业的发展和整个产业的走向。又一次下了飞机来到酒店，我终于开始为苏鹏的这本书写序，抑制不住思绪的涌动，我停止输入来到窗前，我拉开窗帘仰望星空，我运气很好我看到了星星，它们很纯净也很遥远，一如我们的梦想。我想大家在伏案阅读这本书的时候也能经常仰起头来思考，想想我们的梦想，不要因暂时的挫折和困难彷徨不前，不要怀疑我们的选择和我们的价值，请努力去做。
阅读给你力量！
梁 博 
开发合作技术经理 
微软（中国）有限公司 
前 言

在2006年微软首次推出Silverlight技术的时候我就被其深深吸引，这一基于.NET 3.0中WPF的网络表现层技术具有非凡的表现力，在演示中我看到了很多以前在游戏中才能看到的画面和操作，这些操作被定制在小小的浏览器里，只需要极少的代码就可以快速运转，并且开发者还承诺说以后会使用托管代码作为业务逻辑代码，这意味着这一技术会具有比Flash更好的性能。我想也许有一天我们会在浏览器里玩星际争霸或者魔兽世界，网络游戏不再需要太多的客户端，我们也可以在网上看实时的高清视频而不再需要准备太多的DVD盘。2年之后的今天我们在感受百年奥运的同时看到了NBC电视台通过Silverlight技术在网上做的奥运全球直播，我想我当年的梦想也许就要变成现实了。现在Silverlight技术已经发布了2.0版本的Beta2（截止本书完稿时2008年7月），并即将推出其2.0版本的正式版，在这个版本中，各种复杂的媒体表现方式和漂亮的视频动画技术都被加入进来，这使得Silverlight商业化应用的时代真正到来了。为此，我在2007年开始在微软的网络广播平台WebCast上开始介绍如何开发Silverlight，做了几期之后反响还不错，刚好这一视频又有幸被博文视点出版社的李冰编辑看到了，于是就有了这本书。
笔者在这本书中尽其所知介绍了Silverlight开发的诸多细节，并使用了一些范例让读者能够快速了解Silverlight开发的种种方式和技巧，本书通过笔者的收集整理并结合自身的经验，让广大读者在开发中少走弯路，读者通过本书的学习即可快速地了解Silverlight开发的全貌。当然作为一本入门类书籍，本书也不能详细列举所有知识的细节，但是本书尽力介绍了各种开发技术的方式，并介绍了其内在的运转方式，相信聪明的读者可以在阅读中举一反三地创造出自己的应用。
对于本书的出版，首先要感谢本书的编辑李冰，是她不断的监督保证了本书能够保质保量地出现在您的手里。还要感谢葛娜编辑认真仔细的工作，保证了这本书中的表述都基本通顺流畅。同时还要感谢微软中国开发平台合作部的几位朋友，他们在本书的编写过程中帮助提供了若干技术细节的支持，使本书在开发细节当中不缺乏内容，并保证了书中技术细节的可靠性。最后要感谢我的家人，父母对于我对技术追求的放任让我能够从事计算机工作，太太则以牺牲我陪伴她逛街的时间为代价使我完成了本书的写作，是你们对我的支持促成了这本书最后的出版，在此我要对大家表示我的谢意。
本书写作历时半年多，虽然几易其稿但是难免有疏漏之处，广大读者朋友如果在阅读此书的过程中有任何发现或是对书中内容有自己的见解和看法，请给我发邮件，我的信箱是supper3000@gmail.com。
目 录

第1章 SilverLight的基础知识 1
1.1 从RICH INTERFACE APPLICATION（RIA）说起 1
1.2 SILVERLIGHT的版本 10
1.3 SILVERLIGHT的运行时环境与安装 13
1.4 XAML解说 17
1.4.1 XAML概说 18
1.4.2 XAML的元素与属性 19
1.4.3 XAML名字空间 20
1.4.4 属性元素 22
1.5 总结 35
第2章 SilverLight最佳实践 36
2.1 第一个SILVERLIGHT 36
2.1.1 创建第一个SilverLight应用程序 36
2.1.2 SilverLight 1.0版本项目文件介绍 38
2.1.3 第一个SilverLight实例 50
2.2 BLEND的使用 58
2.3 总结 70
第3章 SilverLight图形 对象的绘制 71
3.1 CANVAS对象介绍 71
3.2 基本图形的绘制 76
3.2.1 矩形绘制 76
3.2.2 圆形绘制 81
3.2.3 多边形绘制 82
3.2.4 线对象应用 85
3.3 文字的绘制 97
3.4 刷子对象 100
3.4.1 SolidColorBrush 101
3.4.2 LinearGradientBrush 102
3.4.3 RadialGradientBrush 106
3.4.4 ImageBrush与VideoBrush介绍 107
3.5 使用BLEND进行图形设计 108
3.6 总结 111
第4章 SilverLight 2.0的新控件 112
4.1 基本应用控件介绍 113
4.1.1 文本类控件 114
4.1.2 日期显示类控件 118
4.1.3 CheckBox控件 130
4.1.4 ToolTip控件 133
4.1.5 WatermarkedTextBox 135
4.2 数据绑定控件 136
4.3 BLEND中通过VSM建立页面样式管理 146
4.4 总结 157
第5章 SilverLight的事件 处理模型 158
5.1 SILVERLIGHT 1.0的事件处理模型 158
5.1.1 鼠标事件 161
5.1.2 键盘事件 165
5.1.3 Downloader对象 168
5.1.4 错误处理 174
5.1.5 辅助调试信息 179
5.2 SILVERLIGHT 2.0的事件处理模型 181
5.2.1 SilverLight 2.0事件处理模型 181
5.2.2 XML的数据访问 187
5.2.3 SilverLight与HTML和托管代码的交互 199
5.2.4 分布式调用对象 202
5.2.5 后台进程的使用 205
5.2.6 SiverLight应用部署 210
5.3 使用BLEND添加事件和内容 213
5.4 总结 214
第6章 SilverLight 2.0中的动画 215
6.1 渐变动画 216
6.2 关键帧动画 225
6.3 使用EXPRESSION BLEND设置动画效果 234
6.3.1 使用Blend创建关键帧动画 235
6.3.2 使用Blend创建叠加动画效果 239
6.4 总结 243
第7章 多媒体 244
7.1 SILVERLIGHT支持的格式 244
7.2 SILVERLIGHT媒体播放的使用 251
7.3 SILVERLIGHT媒体播放器示例 258
7.4 使用EXPRESSION ENCODER压缩视频 264
7.5 使用SILVERLIGHT.LIVE.COM发布SILVERLIGHT应用 272
7.6 总结 276
第8章 SilverLight应用实例 277
8.1 SIVERLIGHT 1.0和ASP.NET AJAX结合的实例 277
8.2 使用SILVERLIGHT 2.0开发一个应用 286
8.3 总结 297
附录A Silverlight.js文件内容 298