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代码ide
这些编程模型是很独特的由于你不能同时使用它们在一个属于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