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