Silverlight3的7個新功能

在剛剛結束的Mix09大會上(Mix是微軟面向web開發者和設計者的會議),Silverlight團隊的程序經理Joe Stegman介紹了silverlight3的許多讓人興奮的新功能,摘錄如下:

1. 支持更多的媒體編碼格式

在Silverlight3中新增加的多媒體編碼格式包括H.264,AAC,MP4。Silverlight這項技術,從出生以來,就一直把對多媒體,尤其是視頻的支持,放在首要位置。這次對更多的編碼格式提供支持,方便網站建設者更容易的發佈、部署視頻資料,只需要如下一行XML:

2. 利用GPU加速

隨着顯卡計算能力的加強,應用程序把越來越多的圖形計算任務從CPU中拿出來交給GPU完成。然而,要利用到GPU,對程序員而言通常意味着更多的編碼任務,在Silverlight3中,這個任務的複雜程度被大大簡化,只需要在XAML中多加入幾行XML代碼,就可以輕鬆享受GPU的超強計算能力,貼一張GPU渲染的效果圖:

mp4 

3. 透視化3D
透視化3D,簡單的說,就是把2D對象放到3D空間中去。和傳統的3D把一個3D空間的對象投影到2D空間中不同,透視化3D意味着更高的性能,更友好的編程接口,同時能完成我們80%的3D任務。好了,說了那麼多,來看一個demo,一行XAML帶來的變化:

3d-1 3d-2
以上這個例子,稍加擴展,就可以在silverlight3中,在3D空間中旋轉一個控件。

4. 自定義特效
在silverlight3中,引入了shader的概念,它是一個像素粒度的操作——每當silverlight3要顯示一個像素的時候,它對shader說:“我要顯示這個像素了,你是否要做些處理,實現某些特效?”。我們來看看shader的強大之處:下面一個示例中,左邊的圖像是背景圖像,右邊的圖像是前景圖像,在silverlight3之前,我們儘管可以同時顯示這兩個圖像,但是背景圖像會被前景遮住。(當然可以設 置前景的透明度,但是這樣整個前景圖像的清晰度就下降了)我們在顯示前景圖像的時候可以應用一個shader:把所有的黑色過濾掉。這樣,我們在前景上過濾掉所有黑色背景的同時,還擁有了一個清晰的火焰。

shader

5. 更多的控件支持
每一個新的silverlight版本的發佈,都伴隨着很多新的控件的問世。這個版本也不例外,新推出的控件有:DockPanel,Expander,Label,TreeView,ViewBox等等。在這裏舉一個“Save as...”(另存爲)控件的例子。可能有的朋友會問,“另存爲”作爲一個耳熟能詳的控件,爲什麼要等到silverlight3才提供?答案是出於安全性的考慮:silverlight爲了保護用戶的安全,對本地文件的讀寫有很大的限制。(否則的話,如果服務器端可以隨意讀寫用戶的本地文件,那麼就很容易做出一個釣魚網站了)。silverlight3中,對另存爲控件的支持也有着安全性的考慮。開發人員可以創建一個SaveFileDialog實例,但是當用戶選定本地文件的時候,他只能得到這個文件的stream,而不是這個文件的路徑。這樣的設計避免了提供一個打開任意路徑的本地文件的功能,從而使silverlight運行在一個更爲安全的環境中。

6. 本地消息傳遞(local messaging)
Silverlight是瀏覽器的一個插件,在同一時間可能會有多個實例。比如多個瀏覽器同時訪問包含silverlight的網頁,就會有多個silverlight的實例同時運行,本地消息傳遞允許這些不同的siliverlight控件實例之間互相通信。

7. 在瀏覽器外運行silverlight
silverlight3支持把一個silverlight頁面安裝到本地,用戶可以像一個桌面程序一樣離線使用這個程序,並且可以右鍵卸載這個程序。

比如下面一個瀏覽器中運行的國際象棋程序,用戶可以在右鍵菜單中,把它存儲爲一個本地程序。

oob_install

然後,就可以像一個普通的桌面程序一樣,運行這個程序了。同時,也能在這個桌面程序的右鍵菜單中卸載這個程序。

oob_uninstall1 

 

更多關於silverlight3的信息,可以在下面這個網站中獲得

http://silverlight.net/getstarted/silverlight3/default.asp

其中包括工具的開發,第一手學習的資料(博客以及書籍),以及示例程序。

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