Silverlight是什麼?

Silverlight是什麼?作爲一個Silverlight用戶它能爲我做什麼?作爲一個Silverlight開發者我能用它來做什麼?下面,我們帶着這些問題,讓微軟MVP Chad Campbell 來給我們揭開Silverlight的面紗。

 “Silverlight是一個客戶端運行時,這個運行時爲開發者提供設計與開發的平臺,並在互聯網上傳遞豐富互動的體驗”。可以想象,從我寫的那本“Silverlight 2 in Action”當中的第一段提取出來的這句話,對於Silverlight那些優秀的特點根本沒有起到什麼說明的作用。事實上,如果你正在向他人介紹Silverlight,他們大概只會對這東西對自己有什麼用處感興趣。要做好這個介紹相當具有挑戰性,因爲Silverlight的很多特性對不同用戶而言有着不同程度的價值。簡單的說,在表現形式上,Silverlight和Adobe flash非常相似,但是Silverlight技術上更加優越。

Silverlight普通用戶所要知道的

Silverlight是一個來自微軟的軟件,通過它,你可以實現在互聯網上與一些新型應用程序的互動。這些應用程序提供了全方位觀看圖片或地圖的新方法。這些應用程序將互聯網上最豐富的媒體展現給你。至於傳統的web應用程序,比如time entry應用程序,你仍然可以在Silverlight下使用它,甚至於在沒有聯網的情況下也可以。更令人驚訝的是,Silverlight帶來的這些體驗可以通過不到一分鐘的下載以及一次安裝來實現。

用戶:什麼是“全方位觀看圖片或地圖”?

Silverlight通過一個叫做DeepZoom的特性爲用戶帶來令人歎爲觀止的圖片細節。DeepZoom提供的精細度足以和數碼相機相比擬。比如說,想象一把吉他上的手指印,或者魚身上一片一片的魚鱗。這些細節都可以通過DeepZoom的“放大(zoom in)”功能,在圖片上的任意一部分觀測到。同時,網頁加載的速度仍然很快,因爲DeepZoom只抓取自己需要的!這個特性對互聯網上的地圖應用程序尤其的有意義。

用戶:那真是不錯,不過,爲什麼用Silverlight看視頻會更好呢?

Silverlight支持互聯網上最流行的音頻和視頻格式。除此之外,Silverlight還支持一個叫做“VC-1”的新視頻格式。VC-1之所以重要,因爲大公司們已經開始支持這個格式。最新的高清視頻播放器(hi-def video player)支持VC-1。Xbox 360和Netflix也支持。基本上,你能夠在Netflix或者360或者你聯網的機子上看視頻,這都託了是VC-1的福。

用戶:是很好,不過我對看視頻興趣不大。我爲什麼要關注Silverlight?

Silverlight不僅僅是媒體播放器。事實上,Silverlight令你在斷網的情況下也能體驗你所喜愛的web應用程序。比如說,美國在線(Ameria Online, AOL)已經展示了用Silverlight瀏覽郵件的功能。這個例子之外,Silverlight還能替代你平時在工作中可能會經常用到的那些煩人的數據輸入表格。

用戶:那聽起來真是不錯,不過安裝起來大概會很麻煩?

事實上一點也不麻煩。當你瀏覽到使用了Silverlight的網站時,如果你的機子上沒安裝,它會主動提示你安裝。如果你同意安裝,它會引導你完成大約一分鐘的安裝流程。更好的是,你只需安裝一次。如果你在工作中,你應該讓你的網絡管理員通過網絡安裝,因爲這樣更加流暢。

Silverlight新聞      ★Silverlight網站演示/應用演示

Silverlight開發者所要知道的

Silverlight是一個客戶端運行時,這個運行時爲你提供設計與開發的平臺,併爲互聯網提供豐富的互動應用程序(RIA)。你可以用你喜愛的.NET支持的語言開發這些應用程序,而.NET基礎類庫的一些特性也會對你有用。還有,Silverlight令你創建輸入表格,加載數據,上傳二進制或文本信息都變得更加便捷。這一切在瀏覽器內外都有着閃電般的運行速度。

開發者:有哪些開發語言可以選擇?

Silverlight支持動態和靜態語言。具體來說就是ECMA標準的C#,JavaScript,以及流行的Visual Basic語言。另外,Silverlight還支持IronPython和IronRuby,其分別是Python和Ruby在.NET框架下的版本。

開發者:爲什麼基礎類庫很重要?

基礎類庫可以替你做很多麻煩的工作。比如說,通過基礎類庫可以使用generics,LINQ和數據流(data streams)。這樣,你在設計內容複雜的收藏列表,表單以及訂貨單時便可以更加遊刃有餘,而無需擔心實施的具體細節。同時,內置的LINQ令不同數據之間的查詢變成可能,而且你可以使用自己選擇的語言。

開發者:那真是很好。不過我怎麼在博客上看到Silverlight是個連文本框都沒有的媒體播放器?

那個博客發了有幾年了?Silverlight對商務類和媒體類的應用程序來說都是一個絕佳的平臺。它提供了100多個獨立控件。使用這些控件可以有效地處理輸入,排版以及視覺效果。簡而言之,你對UI平臺上控件的需求,Silverlight都能夠滿足。控件包括按鈕,勾選框(check box),選項鈕(radio box),文本框,複合框(combo box),以及時間日期控件等。Silverlight 3還提供了多項選單框(multi-select list box)。對於排版,Silverlight 支持畫布(Canvas)上的自由排版,以及StackPanel和Grid控件提供的表格式排版。Silverlight 3中的DockPanel提供了東西南北的方向支持,WrapPanel提供了包裝內容的支持。最後,還有一個包含30多個控件的在線工具盒,其中有一個特性豐富的DataGrid和Chart,其源代碼也包含在其中。

開發者:這些控件聽起來挺好。不過,要有效的建立起一個數據輸入表格可不僅僅是把幾個控件排版上去就能完成的。Silverlight提供了什麼數據綁定或數據驗證的功能麼?

Silverlight知道,應用程序中最重要的是數據。對此從Silverlight對查詢(query),綁定(bind to)和驗證(validate)信息的支持可見一斑。比如,Silverlight 提供了查詢數據元的三種內置LINQ選項(LINQ到對象,LINQ到XML,LINQ到JSON)。把數據和UI綁定時,Silverlight提供了單次(one-time),單程(one-way)和雙程(two-way)綁定支持。Silverlight 3 還支持UI對UI元素綁定。綁定之後,你有時會需要用戶驗證輸入的數值。爲此,Silverlight 3 還添加了一個多功能驗證組合,令商業流程的應用程序開發更加簡便。

開發者:聽起來Silverlight應用程序可以很好的處理我輸入進去的數據。不過,Silverlight是在互聯網上運行的,而互聯網的本質是一個斷開的環境。Silverlight是如何在互聯網上傳遞數據的?

Silverlight提供了一系列特性豐富的聯網功能。跨網數據傳輸方面,Silverlight支持POX,REST,WS*/SOAP,sockets,以及標準HTTP服務。此外還有通過Atom和RSS實現的組合內容支持。Silverlight 3 添加了二進制XML的支持,以及名爲本地連接(local connection)的兩個Silverlight應用程序之間通信的支持。相對於Silverlight 2而言,這樣就不需要諸如HTML DOM API等用戶端來實現Silverlight應用程序之間的通信了。

開發者:HTML DOM API?這些是什麼?聽起來挺有趣的。

HTML DOM API是在System.Windows.Browser名字空間(namespace)中.NET框架下的Silverlight附加內容。這個附加內容提供了從代碼管理HTML DOM的功能。這個的有用之處在於彙編中(compile-time)以及檢查中(type-checking)的全面Debug。這令Silverlight替代傳統的AJAX成爲可能。

開發者:我在博客上看人說Silverlight現在可以脫離瀏覽器並在離線狀態下運行?是真的嗎?

是真的!使用這個功能只需要更新AppManifest.xml文件即可。只要更新安裝正確,用戶便可以在本地機子上安裝Silverlight應用程序。這個功能通過更新Silverlight 2下的 AppManifest.xml 文件也可以實現。

開發者:還有一個問題。Silverlight應用程序運行速度快麼?

運行彙編代碼的Silverlight應用程序比其他的類似產品都要快。這對於排序清單一類的日常工作都很有用。正因如此,Silverlight對於商業流程應用程序的開發而言是個很有價值的平臺。對於更加複雜的情況,Silverlight還有內置的多線(multi-threading)支持。在這之上,Silverlight確實的利用到GPU和位圖局部緩存來增強渲染性能。性能的提升令應用程序運行如飛。

Silverlight教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章