一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Silverlight 結(jié)構(gòu)分析

  Silverlight是微軟提供的一種Web前端應(yīng)用程序開(kāi)發(fā)框架,是微軟RIA的主要應(yīng)用程序開(kāi)發(fā)平臺(tái)。Silverlight以瀏覽器的插件方式,提供豐富的多媒體展示功能以及更多交互性的Web前端解決方案。

  本文的重點(diǎn)在于探討Silverlight的整體架構(gòu),以及Silverlight應(yīng)用程序是如何在瀏覽器中運(yùn)行的,各個(gè)子部分的作用是什么。

  1、整體結(jié)構(gòu)

  Silverlight是以瀏覽器插件方式運(yùn)行的,在安裝完Silverlight后,我們來(lái)看一下安裝目錄:C:/ProgramFiles/Microsoft Silverlight/4.0.50917.0,主要文件如下:

  npctrl.dll

  實(shí)現(xiàn)了瀏覽器plug-in接口,Silverlight通過(guò)這個(gè)ActiveX控件與宿主瀏覽器進(jìn)行交互。該Assembly會(huì)調(diào)用agcore來(lái)進(jìn)行繪制,以及coreclr來(lái)創(chuàng)建CLR,Silverlight應(yīng)用程序就是依賴(lài)于這個(gè)CLR中而被運(yùn)行的。

  agcore.dll

  Silverlight Presentation Foundation,包括多媒體展示、基于向量的繪制引擎等等。這個(gè)DLL為什么會(huì)以“ag”打頭哪?在元素周期表中銀(Silver)是47號(hào)元素,被稱(chēng)為AG(拉丁語(yǔ)),所以微軟就把Silverlight的展現(xiàn)層Assembly稱(chēng)為“agcore”了-:)

  coreclr.dll

  mscorlib.dll

  system.*.dll

  Coreclr簡(jiǎn)單來(lái)說(shuō)就是CLR for Silverlight,就是專(zhuān)門(mén)為Silverlight而定制的CLR,用來(lái)執(zhí)行Silverlight代碼。其他的DLL文件在WPF的類(lèi)庫(kù)中都有,只不過(guò)現(xiàn)在尺寸小了很多,這是作為瀏覽器應(yīng)用所必須的。

  下圖是Silverlight architecture的圖例,你可以把上面的DLL對(duì)號(hào)入座:

  2、CoreCLR

  如何才能使.NET代碼在Web前端執(zhí)行,如何才能使我們熟悉的.NET技術(shù)繼續(xù)適用于Web前端,于是微軟推出了CoreCLR。簡(jiǎn)單來(lái)說(shuō)就是CoreCLRbring .NET to Web.

  如同CLR可以使得.NET代碼在桌面應(yīng)用程序中執(zhí)行一樣,有了CoreCLR,.NET Framework的代碼以及應(yīng)用程序的代碼就可以在瀏覽器中執(zhí)行了。

  2.1、CoreCLR與CLR

  CoreCLR與CLR有什么差別哪?首先兩者是基于同一份代碼庫(kù),其執(zhí)行引擎完全相同。只是為了使的CLR更適合Web,做了一些事情:

  基于Web應(yīng)用場(chǎng)景,對(duì)JIT進(jìn)行優(yōu)化,加快程序啟動(dòng)時(shí)間;

  只需要提供Workstation GC.

  2.2、CoreCLR安全模型

  Web應(yīng)用程序都是不被信任的,你不能容忍一個(gè)Web應(yīng)用程序來(lái)操縱用戶(hù)本地的數(shù)據(jù),或者在瀏覽器中的其他應(yīng)用程序。

  一貫以來(lái),.NET開(kāi)發(fā)人員使用CAS來(lái)阻止不受信任的代碼執(zhí)行特權(quán)操作。考慮到Silverlight只需一個(gè)沙箱,而該沙箱又等同于 Web頁(yè)面中用來(lái)運(yùn)行腳本的沙箱。CoreCLR簡(jiǎn)化了安全模型,去掉了CAS模型,定義所有的應(yīng)用程序代碼都是透明代碼,信任級(jí)別最低,它無(wú)法提升權(quán)限或訪問(wèn)計(jì)算機(jī)上的敏感資源或信息。

  對(duì)于SilverlightOOB的應(yīng)用來(lái)說(shuō),可以通過(guò)一些配置來(lái)使其在受信環(huán)境中運(yùn)行。  

  2.3、Silverlight BCL

  Silverlight base class library是.NET base class library的子集,完全基于原來(lái)的代碼基構(gòu)建。為了適應(yīng)Web應(yīng)用的需求,做了一些改變:

  減少尺寸

  作為瀏覽器插件,用戶(hù)需要快速的下載安裝,運(yùn)行,Silverlight提供的類(lèi)庫(kù)必需具有很小的尺寸。所以基于瀏覽器應(yīng)用的特點(diǎn)移除一些不必要的特性,例如Console,COM操作,還有CodeAccess Security等等。

  添加特性

  同時(shí)也為Silverlight添加了必要的特性功能,例如IsolatedStorage等等。

  2.4、跨平臺(tái)支持

  Silverlight提供了一個(gè)平臺(tái)抽象層來(lái)支持更多的操作系統(tǒng)例如MacOS X,如下圖:

  在PAL層上定義了跟Win32相同的API接口,在Mac操作系統(tǒng)上會(huì)被重新定向。

  3、運(yùn)行

  3.1、Silverlight運(yùn)行環(huán)境

  Silverlight應(yīng)用程序被托管在瀏覽器中,通過(guò)Silverlight插件加載CoreCLR,然后CoreCLR為應(yīng)用程序創(chuàng)建AppDomian,最后初始化SilverlightApplication類(lèi)。

  下圖是MSDN關(guān)于Silverlight運(yùn)行環(huán)境的圖例:

  3.2、Silverlight運(yùn)行順序

  最后我們看一下Silverlight應(yīng)用在瀏覽器中是如何被執(zhí)行的:

  -   瀏覽某個(gè)帶有Silverlight的網(wǎng)頁(yè)

  -   瀏覽器加載Plug-in

  -   Plug-in創(chuàng)建CoreCLR以及其他的服務(wù)

  -   同時(shí)瀏覽器下載xap文件

  -   CoreCLR創(chuàng)建AppDomain,最后實(shí)例化Application類(lèi)。

  最近再做一些基于Silverlight的控件開(kāi)發(fā),感覺(jué)需要從結(jié)構(gòu)上來(lái)梳理一下Silverlight。

  寫(xiě)的比較倉(cāng)促,希望批評(píng)指正。

NET技術(shù)Silverlight 結(jié)構(gòu)分析,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 成年人小视频在线观看 | 欧美日韩一区妖精视频yjsp | 亚洲三级成人 | 国产高清免费的视频 | 国产极品白嫩美女在线观看看 | 精品999视频 | 亚洲福利一区二区 | 成人精品国产亚洲欧洲 | 91在线看片一区国产 | 亚洲欧美成人影院 | 欧美一级久久久久久久大片 | 国产一区二区在线免费观看 | 国产成人亚洲综合一区 | 色天天天天 | 亚洲综合色一区二区三区另类 | 在线观看国产一区二区三区 | 亚洲国产成人超福利久久精品 | 国产自精品 | 看全色黄大色黄大片免责看 | 玖玖国产精品视频 | 日韩精品一区二区三区免费视频 | 91免费在线播放 | 久久综合九色综合91 | 香蕉成人999视频 | 椎名空中文字幕一区二区 | 午夜激情视频免费 | 国内精品国语自产拍在线观看91 | 日韩精品第二页 | 四虎久久| 久久视热这只是精品222 | 成人亚洲网 | 91精品国产综合久久久久久 | 中文字幕第一页在线视频 | 中文字幕精品一区二区三区在线 | 日本加勒比在线观看 | 亚洲一区二区视频在线观看 | 亚洲欧美综合另类图片小说区 | 国产精品久久久久无毒 | 视频一区二区三区在线观看 | 精品国产一区二区二三区在线观看 | 婷婷精品在线 |