• MSDN Silverlight翻译Application and Programming Models


    Application and Progarmming Models

    大多基于Silverlight的应用程序都被写在托管代码中并且使用用了Silverlight应用程序模型。然而

    你可以选择(option)使用一个简单的编程模型去代替它。

    Silverlight提供一下两个独特的(distinct)模型用于应用程序的开发:

    用于Silverlight托管的API可以让代码运行在公共语言运行时(common language runtime)。你可

    以使用托管的API伴随着可编译的语言如Visual Basic 和C# 或者动态语言如同IronPython 和

    IronRuby。对于更多的信息关于动态语言,请查阅Silverlight Dynamic Languages SDK

    用于Silverlight的JavaScript,可以使用被浏览器解释(interpret)后的JavaScript代码

    这些编程模型是很独特的因为你不能同时使用它们在一个属于Silverlight插件中的单一的(single)

    实例(instance)中。然而,你可以实现一个启动画面(splash screen)靠使用JavaScript API。

    然后过度(transition)到托管API当你的应用程序已经加载完毕后。

    比起JavaScript API托管的API提供显著的功能性更强,托管API是大多数Silverlight文件的主题

    (subject)应用程序使用托管的API可以通过一个版本较低的(lightweight version).Net

    Framework框架。JavaScript API,仅仅可以访问Silverlight的描述核心和浏览器的JavaScript的引

    擎。

    获取更多信息关于.NET框架提供的功能和Silverlight演示核心,看Silverlight Architecture(架

    构)

    托管编程和程序模型

    托管API 能够让你捆绑(bundle)托管程序集和源文件到应用程序包中文件中。Silverlight 插件是

    负责载入一个程序包并且解压它的内容(content)

    一个应用程序包必须包含一个带有类衍生于(derived)应用程序的程序集。应用程序类压缩

    (encapsulates)你的应用程序和Silverlight插件的交互性的代码。例如它能够让你去展示一个用户

    接口在主机WEB界面。此外,它提供应用程序生命周期时间和资源管理。

    Silverlight文档使用术语(term)叫做应用程序模型引用(refer to)应用程序包和普遍功能封装的

    应用程序类。程序模型帮助你开发简单的应用程序和复杂的可扩展的能通过网络分享资源的程序。

    获取更多的信息,请看Application Model.程序模型话题提供指导在设计应用程序去启用许多普遍的

    场景(scenario)例如请求式(on-demand)资源加载,下载进度(download progress)的指示

    (indication)和导航(navigation)

    托管API

    你可以使用XAML 标签偷封装你的用户接口设计用托管API和JAVASCRIPT API。用托管API,你可以分解

    (factor)你的应用程序代码到多重的XAML文件和伴随的(accompanying)后台代码文件。

    当Silverlight插件加载XAML文件时,它可以成才一个你的后台代码可以操作的对象树。你管理程序代

    码也可以操作HTML文档对象模型通过HTML桥。

    获取更多信息关于如何管理代码与XAML和HTML的交互(interact)请看Managed API for

    Silverlight。

    JavaScript API

    JavaScript API是在Silverlight1.0中可用的模型,并且保留(retain)向后兼容的能力而且能够完

    成特殊场景。

    在JavaScript API中,Silverlight插件载入一个单一的XAML页面来代替一个应用程序包。这个XAML

    可以包含统一资源标识符(URI uniform resource identifier)涉及到服务器端(server-side)资

    源。像图片和视频文件。Silverlight插件使用SAML去创建一个对象树以便于你可以以编程的方式

    (programmatically)操作使用JavaScript在主机的HTML页面。

    JavaScript API 不会提供一个有能力(capable)支持复杂的带有内部导航应用程序的应用程序模型

    。然而,它确实能够实现一些托管API实现太麻烦(cumbersome)的场景。像启动画面。你也可以实现

    基础的导航靠着载入新的XAML的页面到Silverlight插件中或者载入一个新的WEB页面到浏览器中。

    获取更多的信息,请查阅JavaScript API for Silverlight

    JavaScript and the HTML DOM(文档对象模型)

    托管API 和 JavaScript API 都能使你能够去使用JavaScript通过DOM在主机的HTML页面去集成

    Silverlight。

    在JavaScript API中 ,你必须实现更多关于你应用程序功能使用浏览器解释的JavaScript,他们能够

    直接和DOM进行交互,在托管API中,你的JavaScript和DOM代码与Silverlight插件和应用程序模型进

    行交互靠使用HTML桥

    获取更多的信息,请查阅Silverlight Programming,XAML,and the HTML DOM 和 HTML

    Bridge:Interaction Between HTML and Managed Code。

    在WEB页面使用多重Silverlight插件

    一个使用HTML桥特性的主要原因是去创建一个WEB页面以便于使其他基于HTML的内容与Silverlight进

    行结合。你也可以使用HTML DOM去集成多重基于Silverlight应用程序在一个单一的页面。然而,在这

    种情况下,Silverlight提供内置的(built-in 嵌入式)支持多重Silverlight插件之间的通信。我

    们这里叫做本地通信。

    本地通讯能够让你从一个基于Silverlight的应用程序发送信息到另外一个运行在同一电脑上的应用程

    序。这样能够让你创建一个Silverlight目录贯穿(span)多重的插件,例如一个动画可以横穿从一个

    标语(banner)到一个工具条(sidebar)

    获取更多的信息,请查阅Communication Between Local Silverlight-Based Applications

    在浏览器之外使用Silverlight

    Silverlight提供内置的支持运行托管程序在浏览器之外。在你配置一个支持脱离浏览器的应用程序,

    用户可以安装它从他的主机页面。当你安装完后,使用者可以脱离一个浏览器甚至没有联网的环境下使

    用应用程序。你可以配置支持脱离浏览器程序在没有任何应用程序代码的修饰(modify)。交替地

    (Alternately 轮流的)你可以实现额外的支持脱离浏览器的模式。例如离线缓存和自动的更新。获

    取更多的信息请查阅 Out-of-Browser Support。

    在Silverlight 4和以后的版本中,你配置脱离浏览器的应用程序需要要求更高的信任(elevated

    trust)。这些受信任的程序可以绕过(bypass)一些Silverlight安全沙箱(security sandbox)并

    且与原有的功能结合。在Silverlight5和以后的版本中,系统管理员能够让可信任的应用程序去运行

    到浏览器内部。获取更多的信息,请查阅Trusted Applications。

    你也可以使用Silverlight插件在其他环境中。然而,在这种情况下,不支持内置。最简单的途径就是

    将Silverlight和其他技术集合到主机的在浏览器控制的范围内的Silverlight插件中。你可以利用其

    他技术去主持浏览器。更复杂的主持选项包含(involve)非托管代码的使用和COM接口。如果你需要

    Silverlight在桌面应用程序的性能,你应该考虑使用Windows Presentation Foundation(WPF)。获

    取更多的信息关于使用Silverlight在其他环境中的使用,请查阅Alternative Hosting

  • 相关阅读:
    [Python] Python 学习
    [其它] 学习杂记
    [.NET] 《Effective C#》快速笔记(三)- 使用 C# 表达设计
    [.NET] 《Effective C#》快速笔记(二)- .NET 资源托管
    [python] 小游戏
    [.NET] 《Effective C#》快速笔记(一)- C# 语言习惯
    [angularjs] AngularJs 知识回顾
    [C#] 使用 StackExchange.Redis 封装属于自己的 RedisHelper
    [.NET] 一步步打造一个简单的 MVC 电商网站
    [.NET] 一步步打造一个简单的 MVC 电商网站
  • 原文地址:https://www.cnblogs.com/pfdm/p/3371021.html
Copyright © 2020-2023  润新知