Silverlight应用程序模型

news/2024/7/3 23:55:20 标签: silverlight, application, javascript, 扩展, 浏览器, 框架

 

Silverlight 应用程序模型提供以下功能来供托管应用程序使用:

  • 一个激活系统,它使得 Silverlight 插件能够下载您的应用程序在启动时需要的应用程序包和任何外部库程序集。

  • Application 类,该类封装基于 Silverlight 的应用程序通常要求的服务,例如生命周期事件通知和 Silverlight 插件的接口。

  • 应用程序扩展性系统,此系统封装某些应用程序需要的其他服务,例如,自定义的数据访问层。

  • 资源管理系统,这包括 URI 引用和回退机制、按需资源加载、样式和模板共享以及全球化支持。

通过这些功能,您可以实现在启动时间与资源可用性之间提供很好平衡的、构造良好的应用程序结构。

例如,您可以实现一个应用程序,它提供对少量初始页面集合的立即访问,但同时按需下载其他页面。或者,您可以提供大量的初始下载并且显示一个初始屏幕以维护响应性。如果您提供大量的初始下载,则可以使用应用程序库缓存来减少后续的下载次数。最后,您可以实现一个自定义导航系统来作为应用程序扩展服务。

  应用程序结构

Silverlight 激活系统使您能够指定要随您的应用程序提供的程序集和资源文件。生成系统将指定的文件捆绑到一个应用程序包中,该包是具有 .xap 文件扩展名的一个压缩的 zip 文件。

您可以使用应用程序库缓存来减少应用程序包的大小。在这种情况下,配置用于缓存的程序集将压缩成单独的 zip 文件。这些程序集称为 ExternalPart 程序集。

该应用程序包包括一个清单文件,该文件标识您的应用程序可使用的所有程序集。这包括:

  • 应用程序包中的程序集。

  • ExternalPart 程序集,这些是在启动时下载然后缓存的。

  • 您在启动之后可能下载的程序集。

该应用程序包至少还必须包括此程序集以及您的应用程序类(Silverlight 插件实例化这些类)。在您的应用程序启动时,它可以执行显示用户界面或检索附加资源之类的任务。

您必须决定在应用程序包中要部署哪些程序集和资源文件(如 ExternalPart 程序集)以及在启动后要检索哪些程序集和资源文件。一个常见的工作流就是将所有内容都放置于该应用程序包中,然后随着您的应用程序变大衡量下载和启动时间。在延迟变得较长时,应考虑提供初始屏幕、使用应用程序库缓存并在启动后检索某些文件。

有关 Silverlight 激活系统和用于分解您的应用程序的选项的更多信息,请参见应用程序结构。

  应用程序服务

Application 类提供以下类别的服务:

  • 应用程序 Startup 和 Exit 事件。

  • 与 Silverlight 插件和宿主网页的交互。

  • 资源管理。

  • 集中化异常处理。

基于 Silverlight 的所有应用程序都必须包括从 Application 派生的单个类。您的应用程序类通常将添加基于 XAML 的、应用程序范围的资源,并且处理 Startup 事件以提供某一用户界面。Silverlight 插件按照在宿主网页中配置的方式在其客户端区域中显示该用户界面。

您可以使用 Startup 事件初始化应用程序及其用户界面。例如,您可以基于 Silverlight 插件配置参数、URL 参数或从独立存储检索的用户设置,指定初始的应用程序状态。

还可以使用 Startup 事件开始附加程序集和资源文件的异步下载。Application 类提供用于从程序集包或已下载的 zip 文件提取资源的帮助器方法。

有关更多信息,请参见应用程序服务。

  应用程序扩展服务

借助于 Application 类,您可以通过填充其 ApplicationLifetimeObjects 属性来添加更多服务。可以在应用程序 XAML 中或在应用程序构造函数中使用过程代码来实现上述这一点。

ApplicationLifetimeObjects 属性是实现 IApplicationService 和 IApplicationLifetimeAware(可选)的对象列表。这两个接口提供对应用程序生存期的多个阶段的访问。IApplicationService 使您能够初始化和清理您的服务。IApplicationLifetimeAware 扩展 IApplicationService,并使您能够在各服务之间以及在服务与应用程序代码之间实现更复杂的依赖项。

有关更多信息,请参见应用程序扩展服务。

  资源

Silverlight 支持以下类型的资源:

  • XAML 资源,例如可在多个用户界面元素之间共享的样式和模板。

  • 资源文件,例如可按 URI 引用的图像和视频。您可以将资源文件嵌入在程序集中,将它们单独包括在应用程序包中,或者从网络检索它们。

  • 嵌入在程序集中或通过已本地化的附属程序集提供的资源字符串和其他值。

通常,短语"资源文件"可表示补充您的应用程序程序集的任何文件。这可以包括包含其他类型的资源(例如本地化字符串或 XAML 文件)的数据文件或库程序集。

您可以按 URI 引用某些资源文件,例如图像。它们可以是可从 Web 上的任何地方检索文件的绝对 URI,也可以是相对 URI。Silverlight 对于相对 URI 使用回退机制,因此,您无需更改代码即可更改部署某些文件的位置。

您可以通过使用异步下载过程,只从源站点检索某些文件类型,例如 zip 文件和程序集。您可以使用 Application 类从 zip 文件提取资源,并且可以使用 AssemblyPart 类来加载程序集。

有关更多信息,请参见资源概述。

  导航

Silverlight 提供若干选项在您的应用程序中进行导航,或者用于导航应用程序外部的资源。

对于应用程序导航,您可以使用 Frame 和 Page 控件。此框架用作页面控件的容器,有助于进行页面导航。每页都包含内容,您可以根据需要添加很多页面来向用户表示内容。在任一时刻,框架只显示一个页面的内容。对于外部导航,您可以在用户界面中提供普通的超链接,或者通过 HTML DOM 执行编程导航。

有关浏览器和应用程序导航选项的更多信息,请参见导航概述。

  初始屏幕

Silverlight 提供初始屏幕支持,以便您可以自定义在托管应用程序的下载和启动期间的默认体验。默认的初始屏幕在短暂的延迟后显示一个简单的旋转动画。

如果您的应用程序包要求较长的下载和启动时间,则最好用显示下载进度的初始屏幕替换默认的初始屏幕。您还可以使用初始屏幕描述您的应用程序或提供说明、信用或免责声明。

Silverlight 初始屏幕是通过使用 JavaScript API 实现的。这使得 Silverlight 插件可以立即显示您的初始屏幕,甚至是在加载 Silverlight 托管运行时之前。您可以通过在您的宿主网页中使用浏览器解释的 JavaScript,以编程方式更改初始屏幕。

有关更多信息,请参见 Silverlight 初始屏幕。

  请参见

参考

Application

其他资源

如何创建新 Silverlight 项目

将 Silverlight 与网页集成

部署和本地化


http://www.niftyadmin.cn/n/1706209.html

相关文章

计算机设备运输规范,《电子计算机机房设计规范》GB50174-93

中华人民共和国国家标准电子计算机机房设计规范GB 50174-93Design Code for Electronic Computer Ro批准部门:中华人民共和国建设部发布时间:1993年2月17日施行时间:1993年9月1日实施第一章 总则第1.0.1条为了使电子计算机机房设计确保电子计…

Silverlight应用程序结构

在您使用托管的 API 创建基于 Silverlight 的应用程序时,生成过程将生成一个应用程序包。应用程序包是一个压缩 (zip) 文件,它具有 .xap 文件扩展名。此文件通常包含您的主要应用程序程序集和资源。它还包括内部版本生成的清单,该清单描述此应…

Silverlight如何使用应用程序库缓存

应用程序库缓存可在用户重新访问网站时帮助改善启动性能。 当您使用应用程序库缓存时,Silverlight 将某些程序集打包成应用程序包外部的外部部件(.xap 文件)。应用程序包中的清单指定启动时所需的程序集,并指示它们是在应用程序包…

Silverlight应用程序服务

当使用 Silverlight 的托管 API 创建应用程序时,必须创建一个从 Application 派生的类。Application 类提供应用程序通常要求的若干服务。它主要表示应用程序代码在 Silverlight 插件生命周期中的入口点。 Silverlight 插件生命周期自用户导航到承载 Silverlight 插…

listView优化问题

关于listView优化问题:阻止列表重复形状的加载,即选项样式的重复加载。加载一次即可,缓存到convertView其中notes为listView列表集合,note为列表中一个选项对象,有noteInfo、noteTime、isCheck三个属性,not…

全国计算机a类高等学校,全国高校A类专业概览,谁强谁弱一目了然

2020年高校A类专业统计可以看到,在榜单上浙江大学超过清北复交夺得榜首,A类专业最多,达到了39个!然后是北京双子星清华北大和上海双子星复旦交大。不过综合实力浙江肯定是比不上清华大学和北京大学,因为清华大学和北京…

Silverlight如何按需加载程序集

下面的示例代码演示如何从主机服务器按需检索程序集,然后将其加载到当前应用程序域中。 此示例使用 WebClient 类启动程序集的异步下载以响应用户鼠标单击。当下载完成后,将使用 AssemblyPart 类来加载此程序集。 此示例假定您已在您的应用程序项目中添…

VC++ MFC DLL模板

1、VS2003新建DLL项目dllTest 2、项目dllTest中添加类CDllDailog 3、切换到Resource view界面,添加新Button(ID:IDC_BUTTON_Hello Caption:Hello),并点击进入DllDialog.cpp脚本,添加代码如下(红色): 1 #include "…