zoukankan      html  css  js  c++  java
  • Silverlight:应用程序和编程模型

    大多数基于 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 插件或将新的网页加载到浏览器来实现基 本导航功能。

    JavaScript 和 HTML DOM

    托管 API 和 JavaScript API 都允许您在宿主 HTML 页中使用 JavaScript 以将 Silverlight 与 HTML 文档对象模型 (DOM) 集成。

    在 JavaScript API 中,必须使用由浏览器解释的 JavaScript(它可以直接与 DOM 交互)实现大多数应用程序功能。在托管 API 中,您的 JavaScript 和 DOM 代 码通过使用 HTML Bridge 来与 Silverlight 插件和应用程序模型进行交互。

    在网页中使用多个 Silverlight 插件

    使用 HTML Bridge 功能的一个原因是创建将 Silverlight 与其他基于 HTML 的内容相集成的网页。还可以使用 HTML DOM 在单一页面中集成多个基于 Silverlight 的应用程序。然而,在此情况下,Silverlight 为在多个 Silverlight 插件之间进行通信提供内置支持,称为本地消息传递。

    通过本地消息传递,您可以将消息从一个基于 Silverlight 的应用程序发送 到在同一台计算机上运行的其他应用程序。这样,您可以创建跨多个插件的 Silverlight 内容,例如从横幅跨越到侧栏的动画。

    在浏览器外使用 Silverlight

    Silverlight 提供内置支持,以便在浏览器外运行托管应用程序。在配置 应用程序以提供浏览器外支持之后,用户可以从其宿主网页安装该应用程序。安 装之后,用户不需要浏览器或甚至不需要网络连接就可以运行应用程序。您不需 要修改任何应用程序代码,就可以配置应用程序以实现浏览器外支持。此外,您 可以为浏览器外模式实现附加支持,例如,脱机缓存和自动更新。

    还可以 在其他环境中使用 Silverlight 插件。然而,在这种情 况下,没有内置的支持。将 Silverlight 与其他技术相集成的最简单方法是将 Silverlight 插件承载在浏览器控件中。然后,您可以在其他技术中承载此浏览 器控件。更复杂的承载选项要求使用非托管代码和 COM 接口。如果您在桌面应用 程序中需要 Silverlight 的功能,则应考虑使用 Windows Presentation Foundation (WPF)。

    Powered By D&J (URL:http://www.cnblogs.com/Areas/)
  • 相关阅读:
    全局变量和局部变量
    单例模式i
    高阶函数
    闭包和内存管理
    用python 写网络爬虫--零基础
    robots.txt 文件是什么? 如何获取
    Python: NLTK几个入门函数
    nltk book的下载
    nltk 环境安装( WINDOWS 7 32位 环境下)
    遇到问题
  • 原文地址:https://www.cnblogs.com/Areas/p/2169752.html
Copyright © 2011-2022 走看看