Silverlight:应用程序模型2011-09-05 MSDN Silverlight 应用程序模型提供以下功能来供托管应用程序使用:一个激活系统,它使得 Silverlight 插件能够下载您的应用程序在启动时需 要的应用程序包和任何外部库程序集。Application 类,该类封装基于 Silverlight 的应用程序通常要求的服务, 例如生命周期事件通知和 Silverlight 插件的接口。应用程序扩展性系统,此系统封装某些应用程序需要的其他服务,例如,自定 义的数据访问层。资源管理系统,这包括 URI 引用和回退机制、按需资源加载、样式和模板共 享以及全球化支持。通过这些功能,您可以实现在启动时间与资源可用性之间提供很好平衡的、构 造良好的应用程序结构。例如,您可以实现一个应用程序,它提供对少量初始页面集合的立即访问,但 同时按需下载其他页面。或者,您可以提供大量的初始下载并且显示一个初始屏 幕以维护响应性。如果您提供大量的初始下载,则可以使用应用程序库缓存来减 少后续的下载次数。最后,您可以实现一个自定义导航系统来作为应用程序扩展 服务。应用程序结构Silverlight 激活系统使您能够指定要随您的应用程序提供的程序集和资源文 件。生成系统将指定的文件捆绑到一个应用程序包中,该包是具有 .xap 文件扩 展名的一个压缩的 zip 文件。您可以使用应用程序库缓存来减少应用程序包的大小。在这种情况下,配置用 于缓存的程序集将压缩成单独的 zip 文件。这些程序集称为 ExternalPart 程序 集。该应用程序包包括一个清单文件,该文件标识您的应用程序可使用的所有程序 集。这包括:应用程序包中的程序集。ExternalPart 程序集,这些是在启动时下载然后缓存的。您在启动之后可能下载的程序集。该应用程序包至少还必须包括此程序集以及您的应用程序类(Silverlight 插 件实例化这些类)。在您的应用程序启动时,它可以执行显示用户界面或检索附 加资源之类的任务。您必须决定在应用程序包中要部署哪些程序集和资源文件(如 ExternalPart 程序集)以及在启动后要检索哪些程序集和资源文件。一个常见的工作流就是将 所有内容都放置于该应用程序包中,然后随着您的应用程序变大衡量下载和启动 时间。在延迟变得较长时,应考虑提供初始屏幕、使用应用程序库缓存并在启动 后检索某些文件。应用程序服务Application 类提供以下类别的服务:应用程序 Startup 和 Exit 事件。与 Silverlight 插件和宿主网页的交互。资源管理。集中化异常处理。基于 Silverlight 的所有应用程序都必须包括从 Application 派生的单个类 。您的应用程序类通常将添加基于 XAML 的、应用程序范围的资源,并且处理 Startup 事件以提供某一用户界面。Silverlight 插件按照在宿主网页中配置的 方式在其客户端区域中显示该用户界面。您可以使用 Startup 事件初始化应用程序及其用户界面。例如,您可以基于 Silverlight 插件配置参数、URL 参数或从独立存储检索的用户设置,指定初始 的应用程序状态。还可以使用 Startup 事件开始附加程序集和资源文件的异步下载。 Application 类提供用于从程序集包或已下载的 zip 文件提取资源的帮助器方法 。