天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Silverlight 結構分析

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

  本文的重點在于探討Silverlight的整體架構,以及Silverlight應用程序是如何在瀏覽器中運行的,各個子部分的作用是什么。

  1、整體結構

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

  npctrl.dll

  實現了瀏覽器plug-in接口,Silverlight通過這個ActiveX控件與宿主瀏覽器進行交互。該Assembly會調用agcore來進行繪制,以及coreclr來創建CLR,Silverlight應用程序就是依賴于這個CLR中而被運行的。

  agcore.dll

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

  coreclr.dll

  mscorlib.dll

  system.*.dll

  Coreclr簡單來說就是CLR for Silverlight,就是專門為Silverlight而定制的CLR,用來執行Silverlight代碼。其他的DLL文件在WPF的類庫中都有,只不過現在尺寸小了很多,這是作為瀏覽器應用所必須的。

  下圖是Silverlight architecture的圖例,你可以把上面的DLL對號入座:

  2、CoreCLR

  如何才能使.NET代碼在Web前端執行,如何才能使我們熟悉的.NET技術繼續適用于Web前端,于是微軟推出了CoreCLR。簡單來說就是CoreCLRbring .NET to Web.

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

  2.1、CoreCLR與CLR

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

  基于Web應用場景,對JIT進行優化,加快程序啟動時間;

  只需要提供Workstation GC.

  2.2、CoreCLR安全模型

  Web應用程序都是不被信任的,你不能容忍一個Web應用程序來操縱用戶本地的數據,或者在瀏覽器中的其他應用程序。

  一貫以來,.NET開發人員使用CAS來阻止不受信任的代碼執行特權操作。考慮到Silverlight只需一個沙箱,而該沙箱又等同于 Web頁面中用來運行腳本的沙箱。CoreCLR簡化了安全模型,去掉了CAS模型,定義所有的應用程序代碼都是透明代碼,信任級別最低,它無法提升權限或訪問計算機上的敏感資源或信息。

  對于SilverlightOOB的應用來說,可以通過一些配置來使其在受信環境中運行。  

  2.3、Silverlight BCL

  Silverlight base class library是.NET base class library的子集,完全基于原來的代碼基構建。為了適應Web應用的需求,做了一些改變:

  減少尺寸

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

  添加特性

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

  2.4、跨平臺支持

  Silverlight提供了一個平臺抽象層來支持更多的操作系統例如MacOS X,如下圖:

  在PAL層上定義了跟Win32相同的API接口,在Mac操作系統上會被重新定向。

  3、運行

  3.1、Silverlight運行環境

  Silverlight應用程序被托管在瀏覽器中,通過Silverlight插件加載CoreCLR,然后CoreCLR為應用程序創建AppDomian,最后初始化SilverlightApplication類。

  下圖是MSDN關于Silverlight運行環境的圖例:

  3.2、Silverlight運行順序

  最后我們看一下Silverlight應用在瀏覽器中是如何被執行的:

  -   瀏覽某個帶有Silverlight的網頁

  -   瀏覽器加載Plug-in

  -   Plug-in創建CoreCLR以及其他的服務

  -   同時瀏覽器下載xap文件

  -   CoreCLR創建AppDomain,最后實例化Application類。

  最近再做一些基于Silverlight的控件開發,感覺需要從結構上來梳理一下Silverlight。

  寫的比較倉促,希望批評指正。

NET技術Silverlight 結構分析,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 男生扒开美女尿口戳戳 | ass亚洲熟妇毛耸耸pics | 99热国产这里只有精品免费 | 99午夜高清在线视频在观看 | 囯产精品久久久久久久久免费蜜桃 | 久草草在线视视频 | 999精品免费视频 | 性色AV一区二区三区V视界影院 | 色色男_免费 | 国产成人综合视频 | 亚洲精品久久久WWW游戏好玩 | 7756短视频 | 全黄H全肉禁乱公 | 少妇无码太爽了视频在线播放 | 岛国大片在线播放高清 | www色视频在线观看 WWW色视频片内射 | 羽月希被黑人吃奶dasd585 | 九九热这里有精品 | JK白丝校花爽到娇喘视频 | 呜呜别塞了啊抽插 | 同桌别揉我奶了嗯啊 | 伊人久久久久久久久久 | 扒开她的黑森林让我添动态图 | 99国产在线精品视频 | 成人免费网址在线 | 香蕉久久日日躁夜夜嗓 | 97超碰免费人妻中文 | 狠狠色综合久久丁香婷婷 | 国产精品线路一线路二 | 亚洲AV香蕉一区区二区三区蜜桃 | 粗壮挺进邻居人妻无码 | 伦理片在线线看手机版 | 草莓视频cm.888tw | 一个人在线观看视频 | 久久影院午夜理论片无码 | 欧美精品九九99久久在观看 | 中文字幕国产在线观看 | 免费国产综合视频在线看 | 国产国产人免费观看在线视频 | 男女车车的车车网站W98免费 | 日产精品久久久久久久蜜殿 |