簡單的說,Silverlight是一個跨平台跨作業系統的外掛程式,使Web開發人員能夠在瀏覽器中建造豐富的媒體體驗和RIA應用。目前發布的版本為 RC版,可用於Windows平台上的IE和Firefox瀏覽器,以及Mac OS X平台上的Firefox和Safari瀏覽器。
在公用發布版本來臨之際,現在正是瞭解Silverlight的好時候,本文解釋了微軟的Silverlight 10個主要特點,希望能夠協助你更多瞭解Silverlight的好處和局限性。
本文作者Shawn Wildermuth是微軟MVP(最有價值專家)(C#),Wildermuth Consulting Services的創始人,已經從事軟體開發超過20年。目前Shawn正在全美做Silverlight的巡迴授課,教人們如何在自己的項目中使用Silverlight。
1、Silverlight是跨平台/瀏覽器的
對於大部分Team Dev,建立一個能夠在所有流行的瀏覽器(包括IE、Firefox、Safari、Opera)上完美啟動並執行Web網站是很具挑戰性的事情。這不只是增加代碼實現的問題,還要進行大量複雜的測試。
通常面對這個問題的解決方案有兩個:僅支援少數最流行的瀏覽器或者增加品質保證人員的數量。
而Silverlight允許“一次開發,到處運行”,微軟已經承諾會支援Windows和Mac上的Opera,而Silverlight的Linux版Moonlight也正在開發中。
2、Silverlight 1.1 才是好戲開場
對於目前的Silverlight 1.0 RC版,仍有很多組織在考慮是否開始在此平台上進行開發。Silverlight 1.0已經有了許多重要有趣的功能,但還有更多的精彩內容仍需到1.1版才會出現。
Silverlight 1.1(目前仍處於Alpha預覽)初次開始支援.NET,包括了基本的.NET語言:C#和Visual Basic。而微軟說,Silverlight 1.1將會帶有.NET對動態語言的支援,例如Ruby、Python、動態VB和託管JScript。等到1.1正式發布,所有.NET語言的支援都會 加入近來,這等於給瀏覽器添加了.NET編譯器。
3、Silverlight 使用開發人員們已經掌握的技術
Silverlight由微軟現有的一些技術建立而成,如XAML,JavaScript以及.NET技術。如果你已經很熟悉微軟.NET和Web開發技術,這些都可以應用在Silverlight的開發中。
你選擇開始新項目的Silverlight版本主要基於Team Dev的技術方向。如果你的Team Dev主要做ASP.NET伺服器端開發(主要是C#和 VB.NET),你就需要等待1.1的正式發布,如果你的團隊專攻像JavaScript這類的用戶端開發,Silverlight就正適合你。
4、Silverlight的使用者介面使用標記語言——就像HTML
Silverlight使用XAML來進行使用者介面設計。你可能已經很熟悉另一種標記語言了:HTML。HTML檔案是純文字的,它只需要告訴瀏覽器如何渲染網頁,XAML也是這樣的,只不過,執行文本命令的不再是瀏覽器,而是Silverlight。
無論開發人員在伺服器端用什麼工具進行怎樣的開發,最後你總要建立動態HTML頁面。XAML是標記語言,因此你可以使用伺服器端技術動態建立XAML,就像你的Team Dev動態建立HTML一樣。標記語言有所不同,但技術並未變化。
5、Silverlight和AJAX技術互為補充
網路是不斷進化的。回到1990年代,所有人都告訴開發人員應該把儘可能多的執行都放在伺服器端,技術上沒問題,但是這相當影響使用者體驗。現在AJAX已經廣泛流行開來,把代碼直接放置在瀏覽器中就可以有效改善使用者體驗,這方面最典型的代表就是Google Maps。
Silverlight也參照了這樣的模型,允許在瀏覽器中創造更加豐富的使用者介面,而採用AJAX和伺服器端交換資料使Silverlight更加強大,結合了Silverlight豐富的使用者介面和AJAX的非同步資料轉送,使用者將得到非常舒適的互動體驗。
6、Silverlight允許開發人員和設計者協同工作
網路要求開發人員們必須越來越多地考慮設計和美觀問題,對使用者的快速響應和直觀的介面已經成為開發標準,這需要在開發中同時加入美術設計和使用者體驗規劃。
然而,美術師和程式員使用完全不同的資源和工具。通常情況是,美術師把圖片檔案或者HTML架構發給開發人員以整合應用程式代碼,當設計做出更改,整合就沒完沒了地進行。
Silverlight能提供更好的開發模式。微軟提供給Silverlight的工具包是一系列複雜工具的集合,例如Visual Studio,還有串連設計者的工具,成為Expression Studio。
對於Silverlight,主要的設計工具是Expression Blend,它可以按設計者們所熟知的方式建立XAML內容,使用起來和Adobe Illustrator或者Photoshop差不多。但不同之處在於Blend和開發人員使用同樣的工程項目檔案,XAML和JavaScript檔案, 就像在Visual Studio中那樣。當設計完成並修整好,不需要進行中間的整合過程,設計者就可以看到開發人員直接將其作為項目素材加入開發項目。這樣做有助於設計者和 開發人員更加緊密地協同工作。
7、Silverlight將分包發布
Silverlight會分成多個資料包發送給瀏覽器,也就是說代碼會分成一個或多個包(JavaScript檔案,編譯檔案等等),設計也分成一個或多個包(XAML),以及其他檔案(包括圖片、字型、視頻)。
剛開始習慣了Flash的單檔案分發模式的開發人員會不大理解為什麼這樣做。實際上,這是有好處的。分離的包比現在的Flash完整打包更有助於在服 務器端動態地建立內容,並按照標記語言自由組合。Silverlight也提供功能可以使用zip檔案把所有XAML代碼使用的內容打包給使用者下載。
8、Silverlight是嶄新的
在寫就本文的時候,Silverlight 1.0為RC版,Silverlight 1.1則剛剛發布Alpha版,這項技術與類似的其他公司同類技術(尤其是Adobe的Flash和Flex)相比還不夠成熟。Flash目前已經到了 9.0,它花了很長時間才達到現在的普及度,但這不是說Silverlight追不上來,微軟在學習他人的經驗和教訓方面很有一手(可以參考一下Java 和.NET),當然這也不是絕對的。
Silverlight不是Windows Forms、Windows Presentation Foundation(WPF)、Java Applet或者Sharepoint的替代者,簡單的說,如果你需要建立豐富的,優秀的,同時具備跨所有平台和作業系統的應用,那麼 Silverlight正合適。
9、Silverlight XAML對照WPF XAML
要把XAML吹捧成為微軟WPF的特長之處並不難,但是它實際上並沒有看起來那麼優秀,這一方面是由於WPF較低的採用率,另一方面就是WPF XAML和Silverlight XAML的區別了。
首先,WPF的採用率相對於其他用戶端技術而言(例如Visual Basic 6和.NET的Windows Forms)比較低,因此XAML也基本上被荒廢了。
第二,Silverlight XAML的文法比WPF XAML要簡單一些,當然也會比WPF XAML弱一點,這既是好事也是壞事。Silverlight非常容易上手,但是從WPF轉移而來的開發人員可能會覺得有點不夠用。
按我的感覺,較簡潔的文法對於Silverlight實際上是最合適的,因為運行環境對於使用者而言越精簡越好。Silverlight並不需要把所 有東西都囊括進來,對於一個輕量級用戶端而言沒有這個必要。當然,要能給Silverlight增加更多的功能肯定不錯,但是目前不能僅僅考慮這些,我們 需要謹慎考量加入多少,同時還能保持介面的簡潔和高效。
10、Silverlight非常適合學習XAML
就象前一節所說的,Silverlight有著輕量級的XAML文法,這意味著它對於學習XAML的工作方式非常有益,引導那些正在學習XAML的 開發人員建立簡明清晰的代碼,協助他們快速理解Silverlight的功能特性,當他們開始投向WPF的XAML的時候,就會發現更多的功能和特性已經准 備就緒了。
相反的,如果開發人員從WPF開始應用XAML,隨後換到Silverlight的話就不得不扔掉許多特性。Silverlight的執行階段程式庫目前只有大約4.5MB,.NET 3.0執行階段程式庫(第一個支援WPF的)則接近30MB。
Silverlight是一個對公司、消費者、使用者都大有裨益的新技術,看了上面這些,現在你可以決定該如何在你的Web戰略中應用Silverlight了。
from: http://news.csdn.net/n/20070830/108121.html
reference:
Silverlight 入門
http://www.microsoft.com/china/MSDN/library/Windev/WindowsVista/bb190632.mspx?mfr=true
SILVERLIGHT 開始在整個網站積累更深入的體驗
http://msdn.microsoft.com/msdnmag/issues/07/06/Silverlight/default.aspx?loc=zh
隆重發布:Microsoft Silverlight
http://blogs.msdn.com/cqwang/archive/2007/04/18/microsoft-silverlight.aspx
50個Silverlight Apps/Demos
http://blogs.msdn.com/cqwang/archive/2007/07/09/50-silverlight-apps-demos.aspx