本主题介绍 Microsoft Silverlight 的基本结构和组件。Silverlight 不仅是一个漂亮的画布,可用来向最终用户显示丰富的交互式 Web 内容和媒体内容。它还是一个功能强大的轻量平台,可用来开发可移植、跨平台的网络应用程序,以便与来自许多源的数据和服务集成。此外,使用 Silverlight 生成的用户界面与传统 Web 应用程序相比,前者显著增强了典型的最终用户体验。 虽然,Silverlight 作为客户端运行时环境看起来简单轻便,但 Silverlight 开发平台集成了大量功能和复杂技术,并使它们可供开发人员访问。若要创建基于 Silverlight 的高效应用程序,开发人员需要具备该平台结构的使用知识。 说明: Silverlight 版本 2 支持两个编程模型:Silverlight 的 JavaScript API 和 Silverlight 的托管 API。托管 API 基于 .NET Framework 的一个子集。本文中的许多功能仅由托管 API 支持。有关更多信息,请参见应用程序和编程模型。 本主题包括下列各节。 Silverlight 平台 核心表示层组件 .NET Framework for Silverlight 附加 Silverlight 编程功能 相关技术和工具 相关主题 Silverlight 平台 Silverlight 平台作为一个整体,由两个主要部分以及一个安装程序和更新组件组成,如下表中所示。 组件 说明 核心表示层框架 面向 UI 和用户交互的组件和服务(包括用户输入、用于 Web 应用程序的轻量型 UI 控件、媒体播放、数字版权管理和数据绑定)以及表示层功能(包括矢量图形、文本、动画和图像)。此外还包括用于指定布局的可扩展应用程序标记语言 (XAML)。 .NET Framework for Silverlight .NET Framework 中包含组件和库的一个子集,其中包括数据集成、可扩展 Windows 控件、网络、基类库、垃圾回收和公共语言运行时 (CLR)。 .NET Framework for Silverlight 的某些部分是通过应用程序部署的。这些"Silverlight 库"是未包括在 Silverlight 运行时中但将在 Silverlight SDK 中提供的程序集。在应用程序中使用 Silverlight 库时,它们会与应用程序打包在一起,并下载到浏览器中。这些库包括新的 UI 控件、XLINQ、整合 (RSS/Atom)、XML 序列化和动态语言运行时 (DLR)。 安装程序和更新程序 是一个安装和更新控件,可简化用户首次安装该应用程序的过程,以后可提供低影响自动更新。 下图演示了 Silverlight 结构的这些组件以及相关组件和服务。 Silverlight 结构 由 Silverlight 平台中包括的工具、技术和服务组成的组合集具有特殊价值:它们使开发人员能够更方便地创建丰富的交互式网络应用程序。尽管使用目前的 Web 工具和技术无疑也能生成此类应用程序,但开发人员会遇到很多技术难题,其中包括不兼容的平台、不同的文件格式和协议、以不同方式呈现网页和处理脚本的各种 Web 浏览器。在一个系统和浏览器中能够正常运行的丰富 Web 应用程序在另一个系统或浏览器中的运行效果会完全不同,也可能会失败。要构建具有以下优点的应用程序,使用目前的大批工具、协议和技术可能需要付出巨大的努力并且成本极高: 可以跨浏览器和平台创建相同的用户体验,使应用程序的外观和执行效果保持一致。 使用熟悉的 .NET Framework 类和功能将来自多个网络位置的数据和服务集成到一个应用程序中。 引人注目且易于访问的富媒体用户界面 (UI)。 Silverlight 使开发人员更容易生成此类应用程序,因为它克服了当前技术的许多不兼容性,并且在一个平台内提供了可用于创建跨平台的丰富集成应用程序的工具。 核心表示层组件 下表介绍前面部分和上图中所示的 Silverlight 平台的核心表示层功能。 功能 说明 输入 处理来自硬件设备(例如键盘和鼠标、绘图设备和其他输入设备)的输入。 UI 呈现 呈现矢量和位图图形、动画以及文本。 媒体 具有播放和管理各种类型音频和视频文件(例如,.WMP 和 .MP3 文件)的功能。 Deep Zoom 使您能够放大高分辨率图像和围绕该图像进行平移。 控件 支持可通过应用样式和模板来自定义的可扩展控件。 布局 可以动态定位 UI 元素。 数据绑定 可以链接数据对象和 UI 元素。 DRM 可以对媒体资产启用数字版权管理。 XAML 为 XAML 标记提供分析器。 开发人员可以通过使用 XAML 指定表示层详细信息来与此表示层框架进行交互。XAML 是 .NET Framework 和表示层之间的主要交互点。开发人员可以使用托管代码以编程方式操作表示层。 .NET Framework for Silverlight 下表介绍了上图所示的 .NET Framework for Silverlight 功能列表中的部分功能。 功能 说明 数据 支持语言集成查询 (LINQ) 和 LINQ to XML 功能,这些功能简化了集成和使用不同源数据的过程。还支持使用 XML 和序列化类来处理数据。 基类库 一组 .NET Framework 库,这些库提供了基本编程功能,例如字符串处理、正则表达式、输入和输出、反射、集合和全球化。 Windows Communication Foundation (WCF) 提供的功能可简化对远程服务和数据的访问。其中包含浏览器对象、HTTP 请求和响应对象、对跨域 HTTP 请求的支持、对 RSS/Atom 整合源的支持以及对 JSON、POX 和 SOAP 服务的支持。 CLR(公共语言运行时) 提供内存管理、垃圾回收、类型安全检查和异常处理。 WPF (Windows Presentation Foundation) 控件 提供了一组丰富的控件,其中包含 Button、Calendar、CheckBox、DataGrid、DatePicker、HyperlinkButton、ListBox、RadioButton 和 ScrollViewer。 DLR(动态语言运行时) 支持动态编译和执行脚本语言(如 JavaScript 和 IronPython),以编写基于 Silverlight 的应用程序。包括一个可插接式模型,用来添加对 Silverlight 所使用的其他语言的支持。 .NET Framework for Silverlight 是完整版 .NET Framework 的一个子集。它为以前不支持的应用程序类型(如 Internet 应用程序)提供了面向对象的可靠应用程序的基本开发。 开发人员可以通过使用 C# 和 Visual Basic 编写托管代码来与 .NET Framework for Silverlight 层进行交互。.NET Framework 开发人员还可以通过在 Visual Studio 2008 或 Microsoft Expression Blend 中进行创作来访问表示层。 附加 Silverlight 编程功能 Silverlight 提供了多个可帮助开发人员创建丰富的交互式应用程序的附加功能,包括下表中介绍的功能。 功能 说明 独立存储 提供从 Silverlight 客户端到本地计算机的文件系统的安全访问。可以将本地存储和数据缓存与特定用户隔离。 异步编程 当应用程序被释放以便进行用户交互时,后台工作线程会执行编程任务。 文件管理 提供一个安全的"打开文件"对话框,以简化创建安全文件上载的过程。 HTML - 托管代码交互 .NET Framework 程序员可以直接操作网页 HTML DOM 中的 UI 元素。Web 开发人员也可以使用 JavaScript 直接调用托管代码,以及访问可编写脚本的对象、属性、事件和方法。 序列化 支持将 CLR 类型序列化为 JSON 和 XML。 打包 提供用于创建 .xap 包的 Application 类和生成工具。.xap 包中包含要运行 Silverlight 插件控件所需的应用程序和入口点。 XML 库 XmlReader 和 XmlWriter 类简化了使用 Web 服务中的 XML 数据的过程。开发人员借助 XLinq 功能可使用 .NET Framework 编程语言直接查询 XML 数据。 相关技术和工具 以下 Microsoft 应用程序包括用于 Silverlight 开发的特殊功能: Microsoft Expression Blend.使用此工具可通过以下方式创建和修改应用程序的表示层:操作 XAML 画布和控件、使用图形、使用动态语言(如 JavaScript)对表示层进行编程。 Visual Studio 2008.Visual Studio 提供了高效的工具,以便使用托管代码来开发应用程序。Visual Studio 的所有现有功能都可用于 Silverlight。此外,此版本的 Visual Studio 包含特定于 Silverlight 的功能,包括 IntelliSense、调试以及用于创建和链接所有所需文件的 Silverlight 项目模板。 由于基于 Silverlight 的应用程序在客户机的运行时环境中执行,因此不需要在服务器上安装特殊的应用程序。但是,开发人员可能会发现,由于基于 Silverlight 的应用程序中集成了下列类型的服务和服务器端应用程序,因此增强了创建可集成服务器上多个源的服务和数据的丰富应用程序的能力: ASP.NET AJAX.其中包含一组用于创建基于 Web 的丰富交互式应用程序的控件、服务和库。 Microsoft Windows Communication Foundation (WCF) 服务。 Internet 服务器,其中包括 Microsoft Internet 信息服务 (IIS) 和 Apache Web 服务器。 基于 Internet 的应用程序和服务,其中包括 Microsoft ASP.NET、PHP、Windows Streaming Media 服务、Windows Live 服务以及其他开放 Web 服务。 请参见 其他资源 Silverlight 入门 Silverlight 概述