Welcome

首页 / 软件开发 / Silverlight / Silverlight:应用程序和编程模型

Silverlight:应用程序和编程模型2011-09-05 MSDN 大多数基于 Silverlight 的应用程序以托管代码编写并充分利用 Silverlight 应用程序模型。但是,您可以选择使用简化的编程模型。

Silverlight 为应用程序开发提供以下两个截然不同的模型:

Silverlight 的托管 API,它使用在 Silverlight 的公共语言运行时 (CLR) 上运行的代码。可以将托管 API 用于已编译的语言(如 Visual Basic 和 C#) 或动态语言(如 IronPython 和 IronRuby)。

Silverlight 的 JavaScript API,它使用由浏览器解释的 JavaScript 代码 。

这些编程模型截然不同,因为您在 Silverlight 插件的单个实例中不能同时 使用它们。但是,您可以实现使用 JavaScript API 的初始屏幕,然后在加载您 的应用程序时过渡到托管 API。

托管 API 提供比 JavaScript API 多很多的功能,在大多数 Silverlight 文 档中都会涉及它。使用托管 API 的应用程序可以访问 .NET Framework 的轻量级 版本,而 JavaScript API 只能访问 Silverlight 表示核心和浏览器 JavaScript 引擎。

托管编程和应用程序模型

托管 API 允许将托管程序集和资源文件打包为应用程序包 (.xap) 文件。 Silverlight 插件负责加载应用程序包并提取其内容。

应用程序包必须包含一个程序集,该程序集具有从 Application 派生的类。 Application 类封装您的应用程序和 Silverlight 插件之间的交互。例如,它允 许您在宿主网页内显示用户界面。此外,它提供应用程序生存期事件和资源管理 。

Silverlight 文档使用术语"应用程序模型"来指代由 Application 类封装的 应用程序包和公共功能。该应用程序模型帮助您开发简单应用程序以及可以共享 网络资源的复杂、可扩展应用程序。

这些应用程序模型主题提供有关设计应用程序以支持几种常见情况(如根据需 要加载资源、下载进度指示和导航)的指导。

托管 API

可以使用 XAML 标记在托管 API 和 JavaScript API 中封装您的用户界 面 (UI) 设计。使用托管 API 时,可以将应用程序代码分布到多个 XAML 文件和 伴随的代码隐藏文件。

当 Silverlight 插件加载 XAML 文件时,它创建 您的代码隐藏可以操作的对象树。您的托管应用程序代码也可以通过 HTML Bridge 操作 HTML 文档对象模型 (DOM)。

JavaScript API

JavaScript API 是 Silverlight 版本 1.0 中可用的模型,为向后兼容 而保留,以支持一些特殊情况。

在 JavaScript API 中,Silverlight 插 件加载单个 XAML 页而非应用程序包。此 XAML 可包括对服务器端资源(如图像 和视频)的 URI 引用。Silverlight 插件使用 XAML 创建一个对象树,您可以通 过在宿主 HTML 页中使用 JavaScript 以编程方式来操作该对象树。

JavaScript API 不提供能支持具有内部导航功能的复杂应用程序的应用程序 模型。但是,它支持一些使用托管 API 不方便的情况,如初始屏幕。您还可以通 过将新的 XAML 页加载到 Silverlight 插件或将新的网页加载到浏览器来实现基 本导航功能。