Silverlight导论






4.71/5 (51投票s)
Silverlight 的定义、Silverlight 技术的目标以及迄今为止发布的各种版本。您还将了解使用 Silverlight 所需的开发工具。
目录
- 概述
- 什么是 Silverlight?
- 为什么选择 Silverlight?
- Silverlight 版本发布
- 开发工具
- Silverlight 与 Flash
- Silverlight 与 WPF
- XAML
- Silverlight 安装
- 结论
概述
本文将对想要了解并开始 Silverlight 项目开发的初学者非常有帮助。如果您已经在使用 Silverlight,您将能全面理解 Silverlight 的介绍。在本文中,我将从 Silverlight 的定义、Silverlight 技术的目标以及迄今为止发布的各种版本开始。您还将看到使用 Silverlight 所需的开发工具。在本文结束时,您将对 Silverlight 有一个全面的了解。
什么是 Silverlight?
- Silverlight 是 Microsoft 于 2007 年推出的、面向富 Internet 应用程序 (RIA) 的新的 Web 平台技术。
- Silverlight 支持多种浏览器,称为跨浏览器技术,包括 Internet Explorer、Firefox、Safari、Opera 等。
- Silverlight 支持多种操作系统(跨平台技术),包括 Windows 系列操作系统、Mac 以及 Linux(通过 Moonlight 技术)。(Moonlight 是 Silverlight 的开源实现,主要用于 Linux 和其他基于 Unix/X11 的操作系统)。
- Silverlight 还支持多种设备(跨设备技术),包括移动设备、桌面浏览器以及 720p HDTV 视频模式等。
- Silverlight 是一款浏览器插件,大小约为 4MB;它是一款客户端免费软件,易于使用且速度快,一次性安装仅需不到 10 秒,可用于任何客户端浏览器。
- Silverlight 支持高清视频文件的显示,并通过 Internet 发送。
- Silverlight 应用程序通过一种名为 XAML 的文本标记语言交付给浏览器。XAML 是一种声明式标记语言,可用于定义基于 Silverlight 的应用程序的用户界面元素。
- Silverlight 被视为 Adobe Flash 技术的竞争对手。
- Silverlight 技术的设计目标之一是弥合 Windows 应用程序和 Web 应用程序在创建图形用户界面 (GUI) 方面的差距。迄今为止,Web 开发人员在 UI 方面未能让客户满意,但现在,Web 开发人员将能够在 Silverlight 技术的帮助下实现这一点。
为什么选择 Silverlight?
以下是 Silverlight 相对于 Flash 和其他现有技术的优势列表以及为什么我们应该选择 Silverlight 的原因。
- 支持 .NET Framework - 如果您是 .NET 开发人员,那么开始 Silverlight 编程会很容易。
- 支持托管代码 - 您可以使用 .NET CLR 支持的任何语言(如 C#、VB.NET、动态语言(IronPython、IronRuby))来编写程序。
- 更好的开发工具 - Visual Studio 2010、Expression Blend。
- 庞大的社区 - 与 Flash 技术相比,有更多的学习资源可供利用。
- 与企业级技术(如 WPF、LINQ 等)集成。
Silverlight 版本发布
Silverlight 1.0
这是 Silverlight 技术在 2007 年的首次发布。在 Silverlight 技术发展的初期,有很多个版本发布;然而,在 2007 年底,最终的 1.0 版本正式发布。最初,这个版本被称为 WPF/E,代表 Windows Presentation Foundation/Everywhere。这个版本包含核心的表示框架,负责 UI、交互性和用户输入、基本 UI 控件、图形和动画、媒体播放以及 DOM 集成。
此版本的主要缺点是没有对托管代码的支持,这意味着您不能使用 .NET 支持的编程语言来操作 GUI 元素。这由 JavaScript 等脚本编程语言(仅支持解释执行,不支持编译)来管理,这对于非 JavaScript 程序员来说很难。
应用程序完全用 XAML 编写,或者混合使用 XAML 和 JavaScript(通过 DOM (Document Object Model) 来操作用户界面)。由于没有托管代码,因此无需编译;JavaScript 在客户端(浏览器)上进行解释。
Silverlight 应用程序通过调用 HTML 页面中的 Silverlight 控件启动,然后加载 XAML 文件。XAML 文件包含一个 Canvas
对象,该对象充当其他元素的占位符。Silverlight 提供各种几何基元,如直线、椭圆和其他形状,以及文本、图像、媒体等元素。
Silverlight 2.0
在 Silverlight 1.0 之后,发布了预览版本来修复初始版本中的 bug 并改进性能问题。然后,Silverlight 2.0 于 2008 年 3 月发布。由于 Silverlight 1.0 的许多限制且不适合高效地开发应用程序,我们可以认为这是用于开始应用程序开发的第一个 Silverlight 版本。这是一个令开发人员兴奋的版本,因为它支持托管代码。生活在 .NET 世界中没有托管代码是非常困难的(实际上是不可能的)。Silverlight 2.0 支持 C#、VB.NET 等 .NET 编程语言来编写业务逻辑或在客户端操作 UI 元素。Silverlight 2.0 基于 .NET Framework 3.5。
与 ASP.NET (.aspx) 页面一样,您可以为每个 XAML (*.xaml*) 文件拥有一个代码隐藏文件来处理业务逻辑。它可以用于以编程方式操作 Silverlight 应用程序和托管 Silverlight 控件的 HTML 页面。XAML 标记和代码都会被编译成 .NET 程序集,然后使用 ZIP 压缩并存储在 *.xap* 文件中。
在此版本中,Silverlight 引入了自己的库,它是 .NET Framework 的基类库的一个子集,包括控件、组件、Web 服务支持以及 LINQ API 功能。它还提供了安全措施,以防止外部世界访问 Silverlight 平台 API。
Silverlight 2.0 的特性
- 丰富的基类库:这是完整 .NET Framework 的兼容子集。它支持集合、反射、正则表达式、字符串处理、数据访问、LINQ 等。
- 强大的内置控件:包括各种控件。
- 可扩展的控件基类。
- 通用控件:Textbox、Checkbox、RadioButton、TabControl、Slider、ScrollViewer、ProgressBar、Calendar 等。
- 布局控件:Grid、StackPanel 等。
- 数据控件:DataGrid 等。
- 高级皮肤和模板支持:这使得自定义应用程序的外观和感觉变得容易。
- 深度缩放:这允许用户通过鼠标滚轮平滑地放大或缩小图像(或图像拼贴)。
- 网络支持:开箱即用的支持,允许调用 REST、WS*/SOAP、POX、RSS 和标准 HTTP 服务,使用户能够创建轻松集成现有后端系统的应用程序。
- 编程语言:包括 Visual Basic、C#、JavaScript、IronPython 和 IronRuby,使得熟悉这些语言之一的开发人员可以更容易地重新利用他们现有的技能。
- 跨平台和跨浏览器支持:包括对 Mac、Windows 和 Linux 以及 Firefox、Safari 和 Windows Internet Explorer 的支持。
- 安全性:Silverlight CoreCLR 使用基于属性的安全模型,而不是 .NET Framework 桌面版本的代码访问安全 (CAS) 模型。
Silverlight 3
Silverlight 3.0 版本于 2009 年 7 月 9 日发布,是对 Silverlight 2.0 的扩展,主要提供了图形功能、媒体管理、应用程序开发领域(附加控件、增强的绑定支持和脱机功能)的改进,以及与 Expression Blend 3 设计工具的集成。
Silverlight 3.0 的特性
- 改进的图形功能,支持更丰富、更具交互性的用户界面。
- 支持 3D 图形。
- 动画
- 像素着色器。
- 主题应用支持。
- 增强的控件皮肤。
- 改进的文本渲染。
- 位图 API。
- 增强的媒体管理,支持高质量和安全的媒体流。
- 支持新的媒体格式。
- IIS 媒体服务。
- Silverlight DRM 用于媒体流。
- 使开发人员能够开发数据丰富、媒体丰富的交互式 RIA。
- 新的网络 API(用于脱机功能的新的脱机 API)。
- Silverlight 3 SDK。
- 新的 FormsXAML 控件。
- 新的 DataManipulationXAML 控件。
- 新的 ContentXAML 控件。
- 其他用户界面框架改进。
- 搜索引擎优化 (SEO)。
Silverlight 4.0
Silverlight 4.0 beta 版本于 2009 年 11 月 18 日在洛杉矶举行的专业开发者大会上由 Microsoft Corp. 发布。
Silverlight 4.0 beta 的特性
开发工具
- Visual Studio 2008 SP1:Visual Studio 为使用托管代码开发应用程序提供了生产力工具。Visual Studio 的所有现有功能都可用于 Silverlight。此外,此版本的 Visual Studio 包含 Silverlight 特有的功能,包括 IntelliSense、调试以及创建和链接所有必需文件的 Silverlight 项目模板。http://www.microsoft.com/downloads/details.aspx?familyid=FBEE1648-7106-44A7-9649-6D9F6D58056E&displaylang=en
- Microsoft Expression Blend:此工具可用于通过操作 XAML 画布和控件、处理图形以及使用 JavaScript 等动态语言进行表示层编程来创建和修改应用程序的表示层。http://www.microsoft.com/downloads/details.aspx?FamilyID=e82db5e2-7106-419e-80b0-65cce89f06bb&displaylang=en
- 安装 Deep Zoom Composer:此工具允许您准备图像以用于 Silverlight 3 中的 Deep Zoom 功能。http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457b17b7-52bf-4bda-87a3-fa8a4673f8bf
- 下载 Silverlight Toolkit:此 Toolkit 是一个 Microsoft 项目,包含 Silverlight 控件、组件和实用程序,可以下载并在您的 Silverlight 应用程序中使用。它包括完整的源代码、示例和测试。http://silverlight.codeplex.com/releases/view/36060
- 下载 .NET RIA Services:Microsoft .NET RIA Services 通过整合 ASP.NET 和 Silverlight 平台,简化了传统的 N 层应用程序模式。RIA Services 提供了一种编写运行在中间层上的应用程序逻辑的模式,并控制对数据进行查询、更改和自定义操作的访问。http://silverlight.net/getstarted/riaservices/
Silverlight 与 Flash
Adobe Flash 是 Silverlight 最受欢迎的竞争对手。两者都支持浏览器插件,并能执行丰富的 Web 内容。Flash 不是一项新技术,与 Silverlight 相比,它的生命周期更长。但它并没有像预期的那样拥有庞大的社区;这可能是因为开发工具有限,大多数开发人员并不熟悉。Flash 使用 ActionScript 作为编程语言,Flex 作为编程环境,大多数开发人员对此并不熟悉。
对于 ASP.NET 开发人员来说,使用 Flash 内容扩展他们的网站并不那么简单。他们需要学习上述开发环境,如 ActionScript 和 Flex。除此之外,没有办法使用服务器端 .NET 代码生成 Flash 内容,这意味着集成 ASP.NET 内容和 Flash 内容很困难。
Silverlight 旨在为 .NET 开发人员提供更好的创建丰富 Web 内容的选择。Silverlight 提供了一个浏览器插件,具有许多与 Flash 类似的功能,但它是为 .NET 从头开始设计的。Silverlight 原生支持 C# 语言,并使用一系列 .NET 概念。因此,开发人员可以使用与服务器端代码相同的语言(如 C# 和 VB)为 Silverlight 编写客户端代码,并使用许多相同的抽象(包括流、控件、集合、泛型和 LINQ)。
Silverlight 与 WPF
功能 | Silverlight | WPF |
定义 | Silverlight 是 Microsoft 用于构建下一代 Web 客户端应用程序的最新开发平台。 | Windows Presentation Foundation (WPF) 是 Microsoft 用于构建下一代 Windows 客户端应用程序的最新开发平台。 |
子集 | Silverlight 通常被认为是 WPF 的一个子集,它是一种基于 XAML 的技术,在浏览器插件的沙盒内运行。 | WPF 通常被认为是 .NET Framework 的一个子集,它是一种基于 XAML 的技术。 |
GUI | Silverlight 将用于为 Web 客户端用户开发富 Internet 应用程序 (RIA)。 | WPF 将用于为 Windows 客户端用户开发丰富的 Windows 图形用户界面 (GUI)。 |
支持 | 跨操作系统、跨浏览器、跨设备。 | 仅限 Windows。 |
所需软件 | Silverlight 是适用于大多数浏览器的附加机制;为了在客户端机器上运行 Silverlight 应用程序,我们需要一次性在客户端机器上安装 Silverlight 软件。 |
另一方面,WPF 不支持任何插件机制;相反,我们需要安装完整的 WPF 客户端应用程序才能在客户端使用 WPF 应用程序。 |
框架支持 | Silverlight 拥有一个非常小、丰富的基类库,以使插件尽可能小。它经过高度优化以减小尺寸,并且是完整 .NET Framework 的一个小型子集,用于嵌入其中。 | 另一方面,WPF 可以完全访问主 .NET Framework 及其所有相关的程序集。 |
部署 | Silverlight 应用程序托管在 Web 服务器和网页中。为了最小化客户端下载大小,Silverlight 使用 XAP 存档。XAP 存档是 Silverlight 应用程序的 ZIP 压缩存档,以及一个描述内容的清单文件。使用 Silverlight 项目模板时,Visual Studio 会自动生成 XAP 存档。 | WPF 应用程序可以部署为独立应用程序、ClickOnce 应用程序或 XAML 浏览器应用程序。 |
XAML
XAML 代表 eXtensible Application Markup Language(可扩展应用程序标记语言),是一种遵循 XML 规则的声明式标记语言,用于在 WPF 和 Silverlight 技术中开发用户界面。XAML 文件是 XML 文件,通常具有 *.xaml* 扩展名,它们通过代码隐藏文件将 UI 定义与运行时逻辑分离,并通过部分类定义与标记连接。
XAML 包含一组规则,将对象元素映射到类或结构,将属性映射到属性或事件,将 XML 命名空间映射到 CLR 命名空间。XAML 元素映射到引用的程序集中定义的 Microsoft .NET 类型,属性映射到这些类型的成员。
Silverlight 安装
点击以下链接安装 Silverlight 3.0 版本:http://silverlight.net/getstarted/silverlight3/。按照安装向导中的步骤完成安装。如果您已经安装了此版本,它会提示安装失败,请不用担心。
结论
希望您喜欢我的文章。这只是对 Silverlight 的一个介绍。请继续关注我未来发布的更多关于 Silverlight 的文章。