線上體驗
什麼是Silverlight?前身代號是「WPF/E」,中譯您可以稱為「銀光」,這是微軟所推展類似於Flash相同的解決方案,但其表現來說,可讓人眼睛為之一亮,面對Flash絲毫一點也不遜色,Silverlight它是免費內嵌在瀏覽器裡的Plug-in(或稱外掛、插件),所以除了在微軟本身的IE之外,您也可以裝在Firefox、Safari等瀏覽器上。 我們先來看幾個Silverlight的線上範例:
範例1說明:利用Silverlight外掛技術,使用者不需要Flash就可以直接看到影音動畫,並且您還可以寫成分段式影片的效果,隨時切換到想看的編目,同樣也支援到全螢幕觀賞,您只要快速點擊二下即可,按ESC鍵又可以切換回正常畫面。
範例2:此網頁場景裡的所有物件,包含沙發、長椅、桌子、大燈、裝飾樹等,您都可以利用滑鼠去3D切換不同的樣式,以視覺化的去匹配整體室內您想要的感覺,最後看完可以接著在線上刷卡、付費,進而送貨到家。
範例3:利用SilverLight來線上示範產品功能的影片。
範例4:利用Silverlight製作的線上遊戲,比賽得分記錄最高者獲勝。
http://silverlight.net/samples/1.0/Sprawl/default.html
以上及更多實際範例,各位可以到http://silverlight.net/showcase/去點閱參考。
安裝Silverlight
別忘了,與Flash Player一樣,您要先安裝好外掛才能夠支援Silverlight,安裝網址在http://www.microsoft.com/silverlight/install.aspx
Silverlight帶來的好處
Silverlight應該說是跨瀏覽器的免費外掛,這樣的外掛,我們用以下四個層面來說明:
一、跨瀏覽器的使用者體驗
RIA(Rich InteractiveApplications)在微軟的解釋是強調互動(Interactive),與Adobe RIA(Rich InternetApplications)雖有一字之差,但殊途同歸,同樣是要帶給使用者與系統之間的互動及視覺化的感受。Silverlight在網頁上可包含了影片、動畫、互動事件反應及令人昏眩的使用者介面。
在安裝上,不到2MB就可快速安裝完畢,並支援現有絕大部分的瀏覽器。格式上有向量式圖形、影音多媒體、文字、動畫及重疊能力,加上可運用在現有的網頁或Ajax的程式架構上。
二、語言模組與協同合作工具
Silverlight是基於微軟.NETFramework之上,所以現有的開發者或設計者能以既有熟悉的技巧,輕易開發出互動性的網頁程式,此後端部分也支援了Apache、PHP。不過就以開發語言來說,您可以用C#、VB .NET、JavaScript、Ruby、Python等來撰寫邏輯程序。
官方以設計者及開發者來區隔適合的Silverlight整合工具
設計者:就是Microsoft Expression Studio,使用W3C標準,採XHTML、XML、XSLT、CSS及ASP.NET等技術來實現豐富型的網頁使用者體驗。
開發者:不外乎使用Microsoft Visual Studio(下一版為Orcas)來開發前後台,因為有專屬的除錯、偵測、語言等支援功能,所以很適合開發者使用。
Silverlight背後的展現層模組是使用XAML來宣告,宣告什麼呢?所有的控制件、視覺化設計、多媒體元件,都是利用XAML來控制。這與Adobe Flex的MXML是不謀而合。
三、多媒體支援能力
視訊支援了720HD(HighDefinition),這是由電影電視工程師協會(Society of Motion Picture and TelevisionEngineers; SMPTE)所提出的視訊壓縮標準,其技術基礎來自微軟的Windows MediaVideo(WMV-9),所以可提供流暢又不失真的高畫質影片,其次,官方號稱其低成本的串流亦可佈署到微軟下一代伺服器(代號Longhorn)的IIS Media Pack上。聲音部分則為WMA(Windows Media Audio)及MP3格式。
Silverlight的數位版權管理DRM(Digital Rights Management)也己支援,更還有微軟Media Encoder編碼工具來方便製作線上影音播放請求。
四、混搭(Mesh-up)網路服務能力
Web2.0的來臨,所以網頁系統混搭(Mesh-up)能力很重要,Silverlight也不例外,支援LINQ(LanguageIntegrated Query)、LINQ-to-XML,用在JSON、RSS、POX及REST存取上特別管用。另外,微軟的WindowsLive提供一個免費空間服務,可以快速將Silverlight程式及多媒體內容整合起來(稍後補充)。
Silverlight還有很重要一點特色在於,因為是XAML(eXtensible Application Markup Language)格式,所以可以將文字寫在Silverlight程式的介面或內文上,做全文檢索或文字搜尋時,就可派上用場。
免費Silverlight串流
當您做好Silverlight程式,您可以免費上傳到微軟的Windows Live,此申請帳號與MSN帳號統一,可以讓您單一登入,網址在https://silverlight.live.com
Silverlight 串流服務具備以下功能
- 可使用微軟的Expression Studio、Visual Studio或第三協力廠商工具
- 標準的描述語言
- 擴充的API程式庫
- 此環境沒有商標或使用者介面的限制
- 可以到達DVD串流的品質
- 此串流及上傳Silverlight程式的空間總共是4GB(GigaBytes)
- 若Silverlight有包含影片,需控制在22MB以下,相等於10分鐘在300Kbps速度下傳完。
Silverlight串流範例如下圖:Adobe Illustrator to XAML製作範例 (網址:http://silverlight.net/samples/1.0/Video-Library/default.html)
Silverlight目前發展狀況
目前最新版本是Silverlight 1.1Alpha,下載網址在http://msdn.microsoft.com/vstudio/eula.aspx?id=c8bf88e7-841c-43fd-c63d-379943617f36
下圖即為Microsoft Silverlight 1.1開發者速記表,裡頭繪出了Silverlight整體架構,包含平台、服務、工具、語言、瀏覽支援及命名空間。
WPF與Silverlight有何不同?
WPF(WindowsPresentation Foundation),主要是提供統一的展現層模組,來建立諸如WindowsVista智慧型使用者體驗,包含了使用者介面、3D模組、多媒體、文件等;而Silverlight是跨瀏覽器上的外掛,傳達下一代網頁多媒體互相性功能,隸屬於WPF功能上的子集,並可與Ajax來做高彈性的程式化互動。二者都是互補,也是基於XAML的展示層基礎,若與Adobe技術來比,Silverlight猶如Flash,WPF猶如AIR(前身為Apollo),XAML猶如MXML。
Silverlight與ASP.NET / Ajax.Net關係
我們剛才有提到Silverlight整合既有的網頁技術,這也包含了ASP.NET與Ajax.NET,因此就設計上可以補強二者關係,若以深入來談Silverlight可以與任何的Ajax程式來溝通,包含前端與後端(Client & Serverside),所以ASP.NET與Ajax.Net能用來控制Silverlight為基底的視覺化資料,來表現出豐富的使用者介面,舉例來說,您可以在Silverlight指向到另支一支程式,或是用依據程式需求來播放一個影片。
微軟Silverlight與Adobe Flash比較
為了讓讀者更清楚目前微軟與Adobe在RIA的展示層、語言、工具架構上的不同,筆者做了一個架構圖,如下圖所示。
小結:
Silverlight為RIA開啟另一扇窗,與AdobeFlash、Flex、AIR一樣為使用者互動提供了嶄新的解決方案,以開發角度來看,.NET開發者的您可以用.NET的程式語言VB.NET、C#,甚至Javascript、Python、Ruby(多種語言)等來實現Silverlight於網頁上,而Adobe的開發者就必須熟悉ActionScript 3在Flex應用程式上(ActionScript3單一語言),雙方各有愛好支持者,就以目前二家發展狀況而言,Flash、Flex己是AdobeRIA開發成熟產物,而微軟Silverlight仍在1.1Alpha版卻不容小覻(2007年會正式上市),因為從過去歷史觀之,在.NET推廣的浪潮下,己讓各領域應用層面達到相當高的比例(不管是就業、教育、各行業領域應用),加上Silverlight是附著在.NET平台策略上的一個重要技術,到底哪一個好,最終還是得由大環境與使用者來決定(筆者預估2~3年可以看出市場佔有率高下)。
作者簡介:
劉仲濱 (Bing)
國立交通大學電機資訊學院數位圖書組碩士,研究Adobe/macromedia相關產品多年,為國內企業及華人社群大力推展RIA互動多媒體應用暨解決方案,著作有相關Adobe/Macromedia網頁書籍、多篇雜誌專欄,同時為大型研討會講師、某公司技術顧問、軟體業務銷售及RiS平台(http://j2eemx.com)資深社群主持人。 |