簡(jiǎn)介
Silverlight 4是今年早些時(shí)候發(fā)布的。這項(xiàng)技術(shù)為我們帶來(lái)了許多革新。它不僅是為用戶帶來(lái)了豐富的交互式的互聯(lián)網(wǎng)和多媒體內(nèi)容,還為我們提供了強(qiáng)大的輕量級(jí)的平臺(tái)。我們可以在此平臺(tái)上開(kāi)發(fā)可移植的,跨平臺(tái)的,基于網(wǎng)絡(luò)的應(yīng)用程序,并且可以從不同的源頭集成服務(wù)和數(shù)據(jù)。相比傳統(tǒng)Web應(yīng)用的界面,Silverlight應(yīng)用的界面讓人耳目一新。讓人感覺(jué)像是Windows Form應(yīng)用程序搬到了Web上。
為什么需要Silverlight 4
前面我們?cè)陂_(kāi)發(fā)Web應(yīng)用的時(shí)候,碰到了許多技術(shù)上的難題,如平臺(tái)兼容,不同的文件格式和通訊協(xié)議,同樣的頁(yè)面在不同瀏覽器上的表現(xiàn),還有不同瀏覽器對(duì)Javascript的解釋,經(jīng)常為這些問(wèn)題加班熬夜,我們沒(méi)有少費(fèi)腦筋來(lái)試圖解決這些令人頭痛的問(wèn)題。有了Silverlight技術(shù):
- 我們就能克服現(xiàn)有技術(shù)平臺(tái)的的不兼容性,不一致性。
- 我們就有了能力在多平臺(tái)多種瀏覽器上創(chuàng)建一致的用戶體驗(yàn),不管在哪里,應(yīng)用程序在外觀上和行為上都是統(tǒng)一的。
- 我們就能利用熟悉的.NET框架的類和功能將不同網(wǎng)絡(luò)位置的數(shù)據(jù)和服務(wù)集成到一個(gè)應(yīng)用程序中。
- 我們就能為用戶提供一個(gè)多媒體的,表現(xiàn)豐富的,操作性強(qiáng)的用戶界面。
- Silverlight 4為我們提供了更多的控件,更強(qiáng)大的功能,讓我們可以開(kāi)發(fā)出更強(qiáng)大的應(yīng)用,更好地應(yīng)對(duì)商務(wù)上的挑戰(zhàn)。
Silverlight 4有哪些新東西?
- 幾個(gè)實(shí)用的控件,如RichTextBox, ViewBox, WebBrowser, WebBrowserBrush等。
- 瀏覽器外運(yùn)行支持,瀏覽器外運(yùn)行能象普通窗口的特性,如改變大小,置頂?shù)取?/li>
- 提升了信任的應(yīng)用程序,允許信任的Silverlight程序可以自由讀寫(xiě)用戶文件和目錄,全屏幕,調(diào)用Windows API等。
- 更豐富的媒體,可以捕捉視屏信號(hào)和話筒語(yǔ)音。
- 更強(qiáng)的打印功能
- 更強(qiáng)更方便的UI界面,支持拖拽,支持剪貼板等等。
- 更好的數(shù)據(jù)綁定和WCF數(shù)據(jù)服務(wù)
- WCF RIA 服務(wù)對(duì)多層應(yīng)用支持更強(qiáng)。
- DLR的支持
Silverlight 4有哪些系統(tǒng)和瀏覽器支持?
要構(gòu)建有效的Silverlight 4應(yīng)用,開(kāi)發(fā)者有必要了解Silverlight 4的架構(gòu)。
Silverlight平臺(tái)的部件
Silverlight作為一個(gè)整體主要包括三個(gè)部分,如下表:
部件 | 說(shuō)明 |
核心展現(xiàn)部件 | 負(fù)責(zé)呈現(xiàn)XAML所表現(xiàn)的UI元素,包括常用的控件,多媒體控件等,同時(shí)負(fù)責(zé)處理用戶輸入,事件等。 |
Silverlight中的.NET框架 | .NET框架的子集。包括部件和庫(kù),其中有數(shù)據(jù)集成,可擴(kuò)展的Windows控件,網(wǎng)絡(luò),基礎(chǔ)類庫(kù),垃圾收集和CLR等。 |
客戶端安裝器和更新器 | 第一次瀏覽Silverlight應(yīng)用程序,客戶端的瀏覽器需要安裝上瀏覽器插件,這個(gè)安裝器兼更新器負(fù)責(zé)為客戶端瀏覽器安裝插件并始終保持客戶端的瀏覽器插件最新。 |
下圖是MSDN官方的圖,展示了Silverlight平臺(tái)的部件,及一些相關(guān)部件和服務(wù)。
核心展現(xiàn)部件Core presentation framework包括了XAML parser, UI Core, Inputs, DRM(digital rights management), Media, Deep Zoom等,多數(shù)是需直接與具體的操作系統(tǒng)API打交道的功能,所以這里沒(méi)有CLR Execution Engine.
- XAML parser負(fù)責(zé)解析XAML,能兼容不同規(guī)格的XAML
- UI Core負(fù)責(zé)向量,bitmap,動(dòng)畫(huà),文字的渲染
- Inputs負(fù)責(zé)處理鍵盤(pán),鼠標(biāo)等設(shè)備的輸入
- DRM負(fù)責(zé)處理數(shù)字媒體的數(shù)字版權(quán)管理
- Media負(fù)責(zé)處理多媒體的處理,支持不同的媒體格式和編碼器
- Deep zoom是用于高分辨率圖片的放大和縮小
- Layout負(fù)責(zé)UI元素的定位
.NET framework for Silverlight 是供應(yīng)用程序使用的商業(yè)"庫(kù)"。包括Data, WCF, WPF, BCL等。
- BCL提供了.NET平臺(tái)上的基本類型, 集合collections,泛型Generics,加密等
- WCF提供了應(yīng)用程序處理WCF相關(guān)功能的一些類型, 用于處理SOAP, REST, RSS/ATOM等
- Data提供了LINQ, LINQ to xml等
- WPF提供了一些UI控件,將數(shù)據(jù)綁定到這些控件,布局,處理用戶輸入的一些功能。
.NET framework for Silverlight分布在若干個(gè).NET程序集中。有一部分的程序集(比如BCL)是隨Silverlight 安裝器在用戶瀏覽器中安裝,有一部分是在Silverlight SDK中,應(yīng)用程序引用到了相關(guān)的程序集,才會(huì)隨應(yīng)用程序一起發(fā)布到服務(wù)器上,當(dāng)有用戶訪問(wèn)應(yīng)用程序時(shí),這些.NET framework程序集才隨應(yīng)用程序的程序集一起下載到用戶的瀏覽器中被CLR執(zhí)行引擎(CLR Execution Engine)執(zhí)行。
CLR執(zhí)行引擎(CLR Execution Engine)是這里面的核心,負(fù)責(zé)執(zhí)行應(yīng)用程序的.NET 代碼和.NET framework的.NET代碼。CLR總是基于一個(gè)宿主。通常的宿主是一個(gè)瀏覽器,在瀏覽器外的場(chǎng)景時(shí)的宿主是一個(gè)操作系統(tǒng)進(jìn)程。Silverlight 4對(duì)其CLR做了改進(jìn),Silverlight 4的CLR與桌面應(yīng)用程序的CLR的差別進(jìn)一步縮小。
DLR提供了對(duì)動(dòng)態(tài)語(yǔ)言的支持。目前支持JScript, Iron Python, Iron Ruby。這是Silverlight 4新提供的特性。
Silverlight 4還有一些編程相關(guān)的特性:如獨(dú)立存儲(chǔ)(Isolated storage),后臺(tái)線程,安全的文件管理,序列化,XAP打包,XML處理,HTML與托管代碼的交互。
- 隔離的存儲(chǔ)提供一種安全的方式讓Silverlight程序去訪問(wèn)瀏覽器本地的文件系統(tǒng)。
- 后臺(tái)工作者線程使異步,多線程在Silverlight上成為了可能。
- 安全的文件管理提供一個(gè)安全的文件打開(kāi)對(duì)話框,允許文件上傳等。
- 序列化使對(duì)象的序列化存儲(chǔ)和恢復(fù)成為了可能。
- XAP打包提供了Application類和工具來(lái)打XAP的包。.xap的包有應(yīng)用程序和入口點(diǎn),以便讓用戶瀏覽器插件來(lái)運(yùn)行這個(gè).xap包。應(yīng)用程序的發(fā)布都是需要一個(gè).xap包。
- XML處理包含了處理Xml的功能。XmlReader類和XmlWriter類提供了最基本的XML處理功能,同時(shí)XLinq讓開(kāi)發(fā)者可以用c#或者VB.NET就可以查詢Xml中的數(shù)據(jù)。
- HTML與托管代碼的交互讓開(kāi)發(fā)者可以在托管代碼中直接用HTML DOM就可以管理HTML頁(yè)面里的UI元素,同時(shí)也可以寫(xiě)Javascript代碼調(diào)用托管代碼的功能,訪問(wèn)其中的方法,屬性,激發(fā)其事件等。這個(gè)功能就為上圖中的Javascript Engine和MS AJAX Library提供了可能。
上圖中的瀏覽器宿主(Browser Host)是用戶瀏覽器插件提供的一個(gè)環(huán)境。它提供了運(yùn)行一個(gè)Silverlight應(yīng)用程序的基礎(chǔ)環(huán)境,如Application服務(wù),HTML DOM的集成,網(wǎng)絡(luò)通信的基礎(chǔ),還有安裝器。使用托管API的Silverlight應(yīng)用程序都有一個(gè)繼承Application類的類,有一個(gè)程序入口點(diǎn),瀏覽器宿主(Browser Host)為應(yīng)用程序建好了運(yùn)行環(huán)境,然后才調(diào)用應(yīng)用程序的入口。
結(jié)束語(yǔ)
以上是關(guān)于Silverlight 4的一些粗淺的認(rèn)識(shí)。是任何一個(gè)Silverlight開(kāi)發(fā)者想知道的內(nèi)容。如果更深入些,就從多個(gè)方面來(lái)了解:它的原理,它的處理周期,它的部署,它的安全性,它的伸縮性,它的分布式計(jì)算能力,它的容錯(cuò)能力,等等等等。本人也是剛開(kāi)始學(xué),所知有限。有待進(jìn)一步學(xué)習(xí)。等有了一點(diǎn)東西了再寫(xiě)。
題外話:最重要的還是快速學(xué)習(xí)和分析能力。這個(gè)能力讓你面對(duì)新技術(shù)時(shí),有潛力迅速學(xué)習(xí)并掌握該技術(shù)。
NET技術(shù):初識(shí)Silverlight 4及其架構(gòu),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。