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教程
本文:http://www.slfans.com/?action-viewnews-itemid-15970
銀光粉-Silverlight愛好者 http://www.slfans.com/