本书简介:
本书以微软Silverlight团队技术专家的视角向您介绍了最新版本的Silverlight —— Silverlight 2。
本书讲述了如何通过Microsoft Visual Studio 2008和Microsoft .NET Framework来创建和部署基于Silverlight 2的RIA(Rich Interactive Application)应用。RIA是一种Web应用程序,它拥有桌面应用程序的所有功能和特点,不但能够在客户端高效地处理数据,还可以把数据保存在服务器上。通过Silverlight 2,您只需利用一个很小的插件便可实现丰富的RIA应用。
本书将向您演示如何利用您现有的知识和技术专长创建下一代的用户界面和媒体体验。您将学到不同类型的基于Silverlight的项目。
本书特点:
■来自微软Silverlight团队内部的声音,与您交流Web展现层技术的发展和趋势。
■介绍如何通过.NET Framework和Visual Studio 2008来创建和部署Silverlight 2应用。
■结合.NET Framework3.0和3.5相关知识,更快掌握Silverlight 2。
使Windows开发人员和Web开发人员更快上手,实现丰富的RIA应用。
无
为何选用Silverlight
随着网络的不断发展, 网络用户的期望也在逐步提高。当我们开发出第一个浏览器的时候, 它只提供了一种非常简单的方式来链接不同的文档。早期网络就是由这些浏览器和跨机器的协议构成的, 因而世界各地计算机服务器上存储的文档通过超级链接, 可以互相访问了。
随着时间的推移, 互联网用户已经从学校和科研单位的小部分人群扩展到了一般大众。简单枯燥的界面对于专业人士来讲还可以接受, 但对于商业应用来说却有些落后了。现在, 人们需要更高质量的用户界面, 它必须既便于使用, 又要能够传递Internet上各种各样类型的信息, 其中也包括多种媒体文件。用户期望能够便捷地从互联网上获取他们想要的信息, 随着海量信息的涌入, 要实现这个简单的愿望似乎变得越来越难。
现在, 需要为用户提供一种先进的方法来访问Internet, 随着时间的推移, 各种技术风起云涌, 其中有一种技术叫做浏览器插件, 它让浏览器可以使用本地计算机的一些资源, 来实现更强大的功能。
ActiveX控件、 Java Applets和Flash应用程序都是插件技术的代表。异步JavaScript和XML (AJAX) 是另一种用来开发新的、令人激动的用户界面的技术,从而实现对用户界面的即时部分刷新。
虽然通过AJAX构建的网站可以包含更复杂的内容、 包含更多的HTML动态效果, 但AJAX也有其局限性。例如, 它允许同服务器的异步通信, 也就是说应用程序可以通过后台线程来自动更新自己的内容, 从而避免了在复杂界面下屏幕的频繁刷新。但严格说来AJAX是一种浏览器到服务器的通信机制, 它缺乏提供真正的多媒体用户界面所需的图像、动画、视频及其他能力。
微软为了更好地提升互联网用户的体验, 通过定义不同的用户体验级别来弥补这些技术局限性。用户体验级别可分为“good”、 “great”和“ultimate”, 它们都对应了开发和运行所需的不同技术。所有这些在本书中都将用一个词“rich” 或“richness”来概括, 你可以看到在本书中该词会经常出现。当我说“rich”, 我是为了描述一个概念, 它很难通过文字表达出来。比如当你使用传统的Web应用程序, 它会受到浏览器和HTML的限制; 而你使用桌面应用程序可以完全使用操作系统的所有功能。这就是两种不同的技术给你不同的感受。今天的Web应用程序还不能有桌面应用程序那样的效果, 用户认识到他们受到了技术的限制。Silverlight和AJAX的目的是为了创建和桌面应用程序更接近的程序, 最终, 我们创建的Web程序和桌面应用程序几乎没有区别。
最低级别的用户体验是“good”, 它可以通过浏览器和AJAX来实现。该级别定义了用户体验的最低要求, 通过AJAX创建异步的、 动态的浏览器应用程序。
最高级别的用户体验是“ultimate”。它是指运行在Windows Vista上的富客户端应用程序, 这些程序通过Windows Presentation Foundation (WPF) 和.NET Framework创建。它们通过一个运行环境让开发人员可以创建非常丰富的应用程序, 并能够方便地部署和维护这些程序。在该级别中可以传递高质量的图片、 视频和动画, 以及其他应用程序服务, 如使用基于文件的存储并与其他桌面应用程序进行通信。除此之外, WPF还把设计和开发分离开来用户界面通过eXtensible Application Markup Language (XAML) 语言来设计和描述。Microsoft Expression这样的设计工具可以帮助设计人员大大地减少编写XAML文档的工作量。开发人员可以直接使用设计人员编写的XAML文档, 并在上面添加代码、 实现设计效果。
我之前提到的用户体验战略分为三类, 因为AJAX和.NET/WPF分别占据最低和最高的位置, 所以剩下的事情就很明显了, 位于中间的新技术一定集成了这两种技术的优势, 既有Internet程序的广泛性又有桌面应用程序的丰富性。该级别为“great”, 它是通过新技术Silverlight和AJAX在浏览器中来展现的。
Silverlight是一种浏览器插件, 它能渲染XAML内容, 并提供了一套编程接口。它允许设计人员与开发人员协同开发, 创建拥有桌面应用程序一样丰富性的Internet程序。
第一版的Silverlight提供了JavaScript编程模型, 它提供了强大的XAML元素的编程模型。Silverlight 2增加了对.NET的支持, 它可以使用.NET编程语言来实现各种功能。如管理XAML、 创建基础控件、 访问网络、 强大的数据访问库, 良好的扩展性和更好的性能。
在本书中, 你将学习Silverlight, 以及如何使用它来增强Web用户体验。Silverlight将改变你创建Web应用程序的方式。你要创建的是Web体验, 而不是Web站点。要有好的体验, 首先需要好的设计。通过Silverlight, 设计人员和开发人员通过XAML和Microsoft Expression这样的工具比以前走得更近了。
本书的目的是帮助你理解这项技术, 重点是开发和部署Silverlight应用程序, 从使用Silverlight编写基本的代码到使用高级工具创建Silverlight内容都会包含其中。当你读完本书并运行所有的示例, 你就可以使用所学到的内容来增强Web应用程序了。想想你明天就能干什么了吧!
〖BT2〗〖ML〗〖STFZ〗〖WTFZ〗本书的目标受众
本书面向Web开发人员, 每天都在为Internet用户开发更新的和更好的Web应用程序, 总是不断学习微软的新技术, 以发现如何将该技术应用到项目中, 为用户提供更有趣的、 更强大的、 更有效的用户界面的开发人员。本书也适合于开发管理人员, 本书浅显易懂, 有助于帮助理解Silverlight在微软整个Web技术拼图中的位置。同时本书还提供一定的技术背景知识, 这样, 当开发人员非常兴奋地和管理人员谈论Silverlight的时候, 管理人员能够理解他们兴奋的是什么!
本书是如何组织的
本书分为两个部分。第一部分是关于Silverlight 2的简介 , 这部分将向你讲解Silverlight基础知识。它主要讲述Silverlight是什么, 以及使用什么工具来开发和维护Silverlight程序, 包括Microsoft Expression Blend 和 Microsoft Visual Studio。
第一部分也会讲解XAML基础知识以及如何使用XAML来定义用户界面, 包含的内容从布局到控件、 到动画, 等等。最后还将讲解Silverlight插件本身, 以及如何与浏览器交互, 并将Silverlight添加到浏览器中。
第二部分是关于Silverlight编程, 这部分主要讲述Silverlight的一些高级概念。本书不是完整的参考, 但内容非常简单明了, 对于开发人员所需要了解的主要事情都做了介绍。你首先需要学习两章关于内置控件的内容, 然后才会学习如何创建自己的控件。接下来会学习数据、 通信、 动画编程、 Silverlight的ASP.NET控件, 同时也会学习一些高级控件(包括媒体控件、 ink和DeepZoom控件)。本书还包含Silverlight中对动态语言的支持,这点非常令人兴奋。
系统需求
要开发本书中用到的Silverlight程序, 你需要下面的内容: (可从http: //silverlight.net/getstarted 下载)
Microsoft Visual Studio 2008 SP1
Microsoft Expression Design 2
Microsoft Expression Blend 2 SP1
Microsoft Silverlight Software Development Kit
要运行Microsoft Silverlight, 我们推荐的系统配置为: 在Windows系统上128MB内存, 450MHz及以上的处理器; 在Mac OSX系统上1GB内存, Intel 1.83GHz及以上的处理器。
对Microsoft Visual Studio 2008, 推荐的配置是 2.2GHz或更高的CPU, 1024MB或更高的内存, 1280×1024的显示器分辨率, 7200RPM或更高的硬盘驱动器。 (最低的需求是1.6GHzCPU, 384MB内存, 1024×768的显示器分辨率, 5400RPM硬盘驱动器) 对于Windows Vista, 下面的推荐配置是: 2.4GHz CPU, 768MB内存。
合作站点
本书还有一个合作站点, 你可以从该站点下载本书中所有的代码。这些代码通过章节来组织, 地址如下:
http: //www.microsoft.com/mspress/companion/9780735625280
相关支持
微软出版社在下面的地址提供本书的相关支持:
http: //www.microsoft.com/learning/support/books/
其他在线内容 关于本书的一些更新内容将会添加到Microsoft Press Online Developer Tools 站点。这些内容的类型包括图书内容更新、 文章、 指向相关内容的链接、 勘误表、 示例章节, 等等。该站点的地址如下: www.microsoft.com/learning/books/online/developer其内容将定期进行更新。
意见反馈
如果你还有关于本书或相关内容的评论、 问题及想法都可以通过电子邮件发送到Microsoft Press下面的地址:
mspinput@microsoft.com
或者投递邮件到:
Microsoft Press
Attn: Introducing Microsoft Silverlight 2 Editor
One Microsoft Way
Redmond, WA 98052-6399
注意上面的地址不提供关于微软软件产品的支持。
致谢
非常感谢微软出版社和MS learning对本书的贡献, 并促成了本书的最终出版。特别感谢我们的项目经理Victoria Thulman, 感谢所有给予我帮助和信任的人。
本书简介: 本书以微软Silverlight团队技术专家的视角向您介绍了最新版本的Silverlight —— Silverlight 2。 本书讲述了如何通过Microsoft Visual Studio 2008和Microsoft .NET Framework来创建和部署基于Silverlight 2的RIA(Rich Interactive Application)应用。RIA是一种Web应用程序,它拥有桌面应用程序的所有功能和特点,不但能够在客户端高效地处理数据,还可以把数据保存在服务器上。通过Silverlight 2,您只需利用一个很小的插件便可实现丰富的RIA应用。 本书将向您演示如何利用您现有的知识和技术专长创建下一代的用户界面和媒体体验。您将学到不同类型的基于Silverlight的项目。 本书特点: ■来自微软Silverlight团队内部的声音,与您交流Web展现层技术的发展和趋势。 ■介绍如何通过.NET Framework和Visual Studio 2008来创建和部署Silverlight 2应用。 ■结合.NET Framework3.0和3.5相关知识,更快掌握Silverlight 2。 使Windows开发人员和Web开发人员更快上手,实现丰富的RIA应用。
在世界上, 中国是我最喜欢的地方之一。我的新书《Introducing Silverlight 2》已经翻译成中文, 对此, 我感到非常的开心和骄傲。大约十五年前, 我第一次来到中国, 目睹了这个国家发生的巨大变化!在21世纪, 我坚信中国一定会成为Internet和Internet技术的主要领导者之一。在过去的几年中, 我也与中国主要的互联网公司, 独立软件开发商, 设计公司以及业内权威人士等有很多的交流。
中国是一个了不起的国家, 拥有成为世界领导者的实力。看看北京为2008奥运会所做的精彩工作吧, 中国成功的将她久远的历史文化同现代科技进行了完美的结合, 给我们呈现了一个前所未有的视觉盛宴。拥有如此强大的创造力的中国, 未来的Internet一定属于她。
为了这样的信念, 我们一直尽全力, 将Silverlight打造成为一个能够充分发挥你创造力的技术。现在, 希望你手上的这本书能够让你踏上Silverlight之路。我十分期待能够看到你使用Silverlight技术创作出的充满创造力的作品。 你的朋友
Laurence Moroney
Laurence Moroney:暂无简介
黄继佳 李晓东 唐海洋:暂无简介
自Silverlight发布以来, 它就成为了业内关注的焦点。它的出现为RIA (Rich Interactive Application) 这一新兴领域带来了更多的选择和期待。Silverlight 1.0相对比较简单, 主要面向构建丰富的媒体体验。相对于1.0来讲, Silverlight 2则有着较大的改变, 不但集成了丰富的控件, Deep Zoom技术, Silverlight 2还可以支持多种开发语言,同时它还提供对数据绑定, 模板样式的支持。有了这些强大的功能, Silverlight 2完全可以胜任RIA应用程序开发的要求。它自然就成为了大家期待的焦点。
本书主要分为Silverlight简介和Silverlight编程两个部分。作者深入浅出地讲解了Silverlight 2开发的方方面面。俗话说万事开头难, 对于新接触到Silverlight的人来讲, 怎么开始Silverlight之旅是很重要的。Laurence在这方面做得很好, 让我们先睹为快吧。
在第一部分Silverlight简介中, 作者首先通过对Silverlight的基本构架和相关开发工具进行介绍, 你将会对Silverlight有一个基本的认识。接下来抛开技术细节, 再利用Expression Blend 和 Visual Studio分别创建一个Silverlight应用, 让我们对Silverlight有了更切实的感受。之后你将会领略XAML语法及相关对象的使用方法。最后再介绍Silverlight浏览器控件的使用, 主要包括如何将Silverlight添加的网页中, 以及如何向Silverlight程序传递参数, 如何处理异常等方面的内容。读完第一部分的内容, 你应该对Silverlight有了进一步的认识, 已经可以用它做一些小的程序了。不过要让你的程序更强大, 可千万不能错过本书第二部分的内容。
第二部分主要针对Silverlight编程模型进行介绍, Silverlight 2中众多的优秀特性都将在这里为你呈现。从基本控件到高级控件再到自定义控件, 并辅以恰当的示例, 让人读起来很顺畅, 一气呵成。如果你已经是一名软件开发人员, 那么你阅读起来会非常轻松。很快你就可以上手, 开发自己的Silverlight应用程序了。
本书是基于Silverlight 2正式版而写的, 相信不管你是一名Web开发人员, Web设计师, 还是一名Web项目管理人员, 本书都值得一读。
本书的作者Laurence Moroney 是微软高级技术专家, 他专注于Silverlight和用户体验相关领域的研究, 同时拥有多年的软件设计和开发经验, 著有大量的技术书籍, 同时他也是《Introducing Microsoft Silverlight 1.0》 一书的作者。
由于者水平有限, 译文中的不妥之处在所难免, 恳请读者指正。
黄继佳 李晓东 唐海洋
2008年11月写于北京
作者序
译者序
译者简介
前言
第一部分 Silverlight 2 概览
第1章 Silverlight 2 简介
1.1 Silverlight和用户体验
1.2 Silverlight 架构
1.3 Silverlight 和 XAML
1.4 使用Expression 套件设计
Silverlight应用
1.4.1 Silverlight和Expression Design
1.4.2 Silverlight 和 Expression Blend
1.5 Silverlight 和Expression Encoder
1.6 小结
第2章 使用Expression Blend实现Silverlight 2应用
2.1 开始使用Expression Blend
2.2 Expression Blend IDE
2.2.1 工具面板
2.2.2 交互面板
2.2.3 设计界面
2.2.4 项目面板
2.2.5 属性面板
2.3 使用Blend构建Silverlight应用
2.3.1 布局(Layout)
2.3.2 定位和定制可视化对象
2.3.3 定位和定制控件
2.3.4 使用Blend实现动画
2.4 小结
第3章 使用Visual Studio开发Silverlight 2应用
3.1 在Visual Studio中安装Silverlight工具包
3.2 使用Visual Studio开发Silverlight应用
3.2.1 使用Visual Studio 2008创建Silverlight应用
3.2.2 Silverlight控件项目
3.2.3 网站项目
3.3 创建一个基于Silverlight 2的游戏
3.3.1 使用XAML创建UI
3.3.2 实现游戏的代码
3.4 小结
第4章 XAML 基础
4.1 XAML布局属性
4.2 XAML笔刷
4.2.1 SolidColorBrush
4.2.2 LinearGradientBrush
4.2.3 RadialGradientBrush
4.2.4 使用 ImageBrush
4.2.5 视频刷(VideoBrush)
4.3 XAML 视觉属性
4.3.1 设置XAML中的尺寸和位置属性
4.3.2 使用透明度
4.3.3 光标形态
4.3.4 定制Stroke描边效果
4.4 用XAML描述图形
4.4.1 使用Ellipse对象
4.4.2 使用Rectangle对象
4.4.3 使用Line对象
4.4.4 使用路径和几何图形
4.4.5 使用GeometryGroup对象
4.4.6 Path语言
4.5 在XAML中使用几何图形进行剪切
4.6 在Silverlight中使用XAML控件
4.6.1 Canvas对象
4.6.2 Image对象
4.6.3 Glyphs对象
4.6.4 使用TextBlock对象
4.7 小结
第5章 在XAML中实现变形和动画
5.1 变形
5.1.1 使用RotateTransform进行旋转变形
5.1.2 使用ScaleTransform进行缩放
5.1.3 使用TranslateTransform移动一个对象
5.1.4 使用SkewTransform属性扭曲对象
5.1.5 通过SkewTransform模拟3D
5.1.6 通过MatrixTransform自定义变形
5.1.7 整合变形
5.2 动画
5.2.1 使用Triggers和Event Triggers
5.2.2 使用BeginStoryboard和Storyboard
5.2.3 定义动画相关参数
5.2.4 使用关键帧
5.3 使用Expression Blend制作动画
5.4 小结
第6章 Silverlight浏览器的控件
6.1 将Silverlight嵌入浏览器中
6.2 直接使用Object标签
6.3 响应页面加载事件
6.3.1 处理参数
6.3.2 用户上下文
6.4 响应页面异常事件
6.4.1 默认的错误事件处理程序
6.4.2 使用自定义错误处理函数
6.4.3 Silverlight控件的属性
6.4.4 Silverlight 控件的方法
6.4.5 Downloader对象
6.5 界面元素编程
6.5.1 界面元素的方法
6.5.2 界面元素事件
6.5.3 在Silverlight中实现拖放
6.6 小结
第二部分 Silverlight 2 编程
第7章 Silverlight控件: 显示与布局
7.1 Button控件
7.2 CheckBox控件
7.3 HyperlinkButton控件
7.4 Image控件
7.5 ListBox控件
7.6 RadioButton控件
7.7 TextBlock控件
7.8 TextBox控件
7.9 共同的属性、 事件和方法
7.9.1 获取焦点
7.9.2 捕获鼠标事件
7.9.3 控件中使用键盘
7.10 小结
第8章 Silverlight高级控件
8.1 DataGrid控件
8.2 日历控件和日期选择控件
8.3 重复按钮和开关按钮
8.4 ScrollViewer控件
8.5 Slider控件
8.6 W[KG-*7]atermarkedTextBox控件
8.7 小结
第9章 创建自己的Silverlight控件
9.1 创建项目
9.1.1 添加控件模板
9.1.2 编写控件代码
9.2 创建Silverlight类库
9.3 小结
第10章 使用Silverlight创建可连接的应用程序
10.1 通过XAML连接应用程序
10.1.1 Silverlight和PHP
10.1.2 Silverlight和Java
10.2 通过JavaScript创建可连接的Silverlight程序
10.3 使用ASP.[KG-*6]NET AJAX和Web服务
10.3.1 Silverlight中.[KG-*6]NET的数据和互联
10.3.2 使用SyndicatedFeed访问RSS和ATOM
10.3.3 Silverlight和WCF
10.4 小结
第11章 媒体、 Ink和Deep Zoom
11.1 MediaElement控件
11.1.1 使用MediaElement控件
11.1.2 控制MediaElement控件的大小
11.1.3 控制媒体文件如何缩放
11.1.4 控制视频的透明度
11.1.5 控制MediaElement的变形
11.1.6 在视频上写内容
11.1.7 通过几何图案来裁剪视频
11.1.8 定义自动播放
11.1.9 控制音频
11.2 使用MediaElement编程
11.2.1 提供基本的视频控制
11.2.2 管理缓冲和下载
11.2.3 管理当前视频状态
11.2.4 管理播放位置
11.2.5 使用媒体时间线标记
11.3 使用VideoBrush来喷绘视频
11.4 InkPresenter控件
11.4.1 Silverlight中一个Ink的示例
11.4.2 JavaScript程序员可使用的Silverlight Ink类
11.4.3 在Silverlight中为Ink编程
11.5 使用MultiScaleImage实现Deep Zoom
11.6 小结
第12章 Silverlight 2中的样式和模板
12.1 理解样式
12.1.1 创建样式
12.1.2 改变样式的作用域
12.2 模板
12.3 小结
第13章 Silverlight ASP.NET控件
13.1 Silverlight服务器控件
13.1.1 使用帧率计数器Frame Rate Counter
13.1.2 设置最大帧率
13.1.3 打开对HTML的访问
13.1.4 使用重画区域
13.1.5 设置PluginBackground属性
13.1.6 插件的安装
13.1.7 使用伸展模式Stretch Mode
13.1.8 使用Windowless模式
13.1.9 Silverlight服务器控件的事件
13.2 Silverlight MediaPlayer ASP.NET控件
13.2.1 MediaPlayer任务助手
13.2.2 媒体交互
13.3 小结
第14章 在Silverlight 2中使用动态语言
14.1 你的第一个Silverlight IronPython应用
14.2 使用Ruby和JavaScript
14.2.1 使用Ruby
14.2.2 使用Dynamic JavaScript
14.3 一个更加复杂的例子
14.4 小结