微軟MVP評(píng)Silverlight的功能特性和價(jià)值
原創(chuàng)【51CTO快譯】“Silverlight是一個(gè)客戶端運(yùn)行時(shí),這個(gè)運(yùn)行時(shí)為開發(fā)者提供設(shè)計(jì)與開發(fā)的平臺(tái),并在互聯(lián)網(wǎng)上傳遞豐富互動(dòng)的體驗(yàn)”??梢韵胂?,從我寫的那本“Silverlight 2 in Action”當(dāng)中的第一段提取出來的這句話,對(duì)于Silverlight那些優(yōu)秀的特點(diǎn)根本沒有起到什么說明的作用。事實(shí)上,如果你正在向他人介紹Silverlight,他們大概只會(huì)對(duì)這東西對(duì)自己有什么用處感興趣。要做好這個(gè)介紹相當(dāng)具有挑戰(zhàn)性,因?yàn)镾ilverlight的很多特性對(duì)不同用戶而言有著不同程度的價(jià)值。
Silverlight對(duì)普通用戶的價(jià)值
Silverlight是一個(gè)來自微軟的軟件,通過它,你可以實(shí)現(xiàn)在互聯(lián)網(wǎng)上與一些新型應(yīng)用程序的互動(dòng)。這些應(yīng)用程序提供了全方位觀看圖片或地圖的新方法。這些應(yīng)用程序?qū)⒒ヂ?lián)網(wǎng)上最豐富的媒體展現(xiàn)給你。至于傳統(tǒng)的web應(yīng)用程序,比如time entry應(yīng)用程序,你仍然可以在Silverlight下使用它,甚至于在沒有聯(lián)網(wǎng)的情況下也可以。更令人驚訝的是,Silverlight帶來的這些體驗(yàn)可以通過不到一分鐘的下載以及一次安裝來實(shí)現(xiàn)。
用戶:什么是“全方位觀看圖片或地圖”?
Silverlight通過一個(gè)叫做DeepZoom的特性為用戶帶來令人嘆為觀止的圖片細(xì)節(jié)。DeepZoom提供的精細(xì)度足以和數(shù)碼相機(jī)相比擬。比如說,想象一把吉他上的手指印,或者魚身上一片一片的魚鱗。這些細(xì)節(jié)都可以通過DeepZoom的“放大(zoom in)”功能,在圖片上的任意一部分觀測(cè)到。同時(shí),網(wǎng)頁加載的速度仍然很快,因?yàn)镈eepZoom只抓取自己需要的!這個(gè)特性對(duì)互聯(lián)網(wǎng)上的地圖應(yīng)用程序尤其的有意義。
用戶:那真是不錯(cuò),不過,為什么用Silverlight看視頻會(huì)更好呢?
Silverlight支持互聯(lián)網(wǎng)上最流行的音頻和視頻格式。除此之外,Silverlight還支持一個(gè)叫做“VC-1”的新視頻格式。VC-1之所以重要,因?yàn)榇蠊緜円呀?jīng)開始支持這個(gè)格式。最新的高清視頻播放器(hi-def video player)支持VC-1。Xbox 360和Netflix也支持?;旧?,你能夠在Netflix或者360或者你聯(lián)網(wǎng)的機(jī)子上看視頻,這都托了是VC-1的福。
用戶:是很好,不過我對(duì)看視頻興趣不大。我為什么要關(guān)注Silverlight?
Silverlight不僅僅是媒體播放器。事實(shí)上,Silverlight令你在斷網(wǎng)的情況下也能體驗(yàn)?zāi)闼矏鄣膚eb應(yīng)用程序。比如說,美國(guó)在線(Ameria Online, AOL)已經(jīng)展示了用Silverlight瀏覽郵件的功能。這個(gè)例子之外,Silverlight還能替代你平時(shí)在工作中可能會(huì)經(jīng)常用到的那些煩人的數(shù)據(jù)輸入表格。
用戶:那聽起來真是不錯(cuò),不過安裝起來大概會(huì)很麻煩?
事實(shí)上一點(diǎn)也不麻煩。當(dāng)你瀏覽到使用了Silverlight的網(wǎng)站時(shí),如果你的機(jī)子上沒安裝,它會(huì)主動(dòng)提示你安裝。如果你同意安裝,它會(huì)引導(dǎo)你完成大約一分鐘的安裝流程。更好的是,你只需安裝一次。如果你在工作中,你應(yīng)該讓你的網(wǎng)絡(luò)管理員通過網(wǎng)絡(luò)安裝,因?yàn)檫@樣更加流暢。
#p#
Silverlight對(duì)開發(fā)者的價(jià)值
Silverlight是一個(gè)客戶端運(yùn)行時(shí),這個(gè)運(yùn)行時(shí)為你提供設(shè)計(jì)與開發(fā)的平臺(tái),并為互聯(lián)網(wǎng)提供豐富的互動(dòng)應(yīng)用程序(RIA)。你可以用你喜愛的.NET支持的語言開發(fā)這些應(yīng)用程序,而.NET基礎(chǔ)類庫的一些特性也會(huì)對(duì)你有用。還有,Silverlight令你創(chuàng)建輸入表格,加載數(shù)據(jù),上傳二進(jìn)制或文本信息都變得更加便捷。這一切在瀏覽器內(nèi)外都有著閃電般的運(yùn)行速度。
開發(fā)者:有哪些開發(fā)語言可以選擇?
Silverlight支持動(dòng)態(tài)和靜態(tài)語言。具體來說就是ECMA標(biāo)準(zhǔn)的C#,JavaScript,以及流行的Visual Basic語言。另外,Silverlight還支持IronPython和IronRuby,其分別是Python和Ruby在.NET框架下的版本。
開發(fā)者:為什么基礎(chǔ)類庫很重要?
基礎(chǔ)類庫可以替你做很多麻煩的工作。比如說,通過基礎(chǔ)類庫可以使用generics,LINQ和數(shù)據(jù)流(data streams)。這樣,你在設(shè)計(jì)內(nèi)容復(fù)雜的收藏列表,表單以及訂貨單時(shí)便可以更加游刃有余,而無需擔(dān)心實(shí)施的具體細(xì)節(jié)。同時(shí),內(nèi)置的LINQ令不同數(shù)據(jù)之間的查詢變成可能,而且你可以使用自己選擇的語言。
開發(fā)者:那真是很好。不過我怎么在博客上看到Silverlight是個(gè)連文本框都沒有的媒體播放器?
那個(gè)博客發(fā)了有幾年了?Silverlight對(duì)商務(wù)類和媒體類的應(yīng)用程序來說都是一個(gè)絕佳的平臺(tái)。它提供了100多個(gè)獨(dú)立控件。使用這些控件可以有效地處理輸入,排版以及視覺效果。簡(jiǎn)而言之,你對(duì)UI平臺(tái)上控件的需求,Silverlight都能夠滿足??丶ò粹o,勾選框(check box),選項(xiàng)鈕(radio box),文本框,復(fù)合框(combo box),以及時(shí)間日期控件等。Silverlight 3還提供了多項(xiàng)選單框(multi-select list box)。對(duì)于排版,Silverlight 支持畫布(Canvas)上的自由排版,以及StackPanel和Grid控件提供的表格式排版。Silverlight 3中的DockPanel提供了東西南北的方向支持,WrapPanel提供了包裝內(nèi)容的支持。最后,還有一個(gè)包含30多個(gè)控件的在線工具盒,其中有一個(gè)特性豐富的DataGrid和Chart,其源代碼也包含在其中。
開發(fā)者:這些控件聽起來挺好。不過,要有效的建立起一個(gè)數(shù)據(jù)輸入表格可不僅僅是把幾個(gè)控件排版上去就能完成的。Silverlight提供了什么數(shù)據(jù)綁定或數(shù)據(jù)驗(yàn)證的功能么?
Silverlight知道,應(yīng)用程序中最重要的是數(shù)據(jù)。對(duì)此從Silverlight對(duì)查詢(query),綁定(bind to)和驗(yàn)證(validate)信息的支持可見一斑。比如,Silverlight 提供了查詢數(shù)據(jù)元的三種內(nèi)置LINQ選項(xiàng)(LINQ到對(duì)象,LINQ到XML,LINQ到JSON)。把數(shù)據(jù)和UI綁定時(shí),Silverlight提供了單次(one-time),單程(one-way)和雙程(two-way)綁定支持。Silverlight 3 還支持UI對(duì)UI元素綁定。綁定之后,你有時(shí)會(huì)需要用戶驗(yàn)證輸入的數(shù)值。為此,Silverlight 3 還添加了一個(gè)多功能驗(yàn)證組合,令商業(yè)流程的應(yīng)用程序開發(fā)更加簡(jiǎn)便。
開發(fā)者:聽起來Silverlight應(yīng)用程序可以很好的處理我輸入進(jìn)去的數(shù)據(jù)。不過,Silverlight是在互聯(lián)網(wǎng)上運(yùn)行的,而互聯(lián)網(wǎng)的本質(zhì)是一個(gè)斷開的環(huán)境。Silverlight是如何在互聯(lián)網(wǎng)上傳遞數(shù)據(jù)的?
Silverlight提供了一系列特性豐富的聯(lián)網(wǎng)功能??缇W(wǎng)數(shù)據(jù)傳輸方面,Silverlight支持POX,REST,WS*/SOAP,sockets,以及標(biāo)準(zhǔn)HTTP服務(wù)。此外還有通過Atom和RSS實(shí)現(xiàn)的組合內(nèi)容支持。Silverlight 3 添加了二進(jìn)制XML的支持,以及名為本地連接(local connection)的兩個(gè)Silverlight應(yīng)用程序之間通信的支持。相對(duì)于Silverlight 2而言,這樣就不需要諸如HTML DOM API等用戶端來實(shí)現(xiàn)Silverlight應(yīng)用程序之間的通信了。
開發(fā)者:HTML DOM API?這些是什么?聽起來挺有趣的。
HTML DOM API是在System.Windows.Browser名字空間(namespace)中.NET框架下的Silverlight附加內(nèi)容。這個(gè)附加內(nèi)容提供了從代碼管理HTML DOM的功能。這個(gè)的有用之處在于匯編中(compile-time)以及檢查中(type-checking)的全面Debug。這令Silverlight替代傳統(tǒng)的AJAX成為可能。
開發(fā)者:我在博客上看人說Silverlight現(xiàn)在可以脫離瀏覽器并在離線狀態(tài)下運(yùn)行?是真的嗎?
是真的!使用這個(gè)功能只需要更新AppManifest.xml文件即可。只要更新安裝正確,用戶便可以在本地機(jī)子上安裝Silverlight應(yīng)用程序。這個(gè)功能通過更新Silverlight 2下的 AppManifest.xml 文件也可以實(shí)現(xiàn)。
開發(fā)者:還有一個(gè)問題。Silverlight應(yīng)用程序運(yùn)行速度快么?
運(yùn)行匯編代碼的Silverlight應(yīng)用程序比其他的類似產(chǎn)品都要快。這對(duì)于排序清單一類的日常工作都很有用。正因如此,Silverlight對(duì)于商業(yè)流程應(yīng)用程序的開發(fā)而言是個(gè)很有價(jià)值的平臺(tái)。對(duì)于更加復(fù)雜的情況,Silverlight還有內(nèi)置的多線(multi-threading)支持。在這之上,Silverlight確實(shí)的利用到GPU和位圖局部緩存來增強(qiáng)渲染性能。性能的提升令應(yīng)用程序運(yùn)行如飛。
關(guān)于作者
Chad Campbell 是一名微軟MVP以及系統(tǒng)解決方案顧問。
原文:Silverlight - What Makes It Special
【編輯推薦】