細數Silverlight 4的十二大引人注目新特性
原創【51CTO獨家特稿】序言
在過去的幾年里,脫胎于Windows Presentation Foundation(WPF)的Silverlight,很快成為了開發下一代跨瀏覽器,跨平臺的Rich Internet Application(RIAs)應用程序的首選技術。Silverlight是一個瀏覽器插件,它促進了豐富的在線媒體內容協同開發環境的發展,使開發者和設計師可以用相似的方式把多媒體和圖形內容整合進Web頁面,當然,這個Web頁需要運行在Microsoft .NET Framework托管環境的上下文中。本文將關注Silverlight 4那些引人注目的新特性,以及如何在應用程序開發過程中使用它們,來設計和實現支持豐富的圖形和媒體的應用程序。
為什么使用Silverlight 4?
Silverlight 4為構建先進的多媒體和圖形應用程序的開發者和設計師提供了強大的工具。在Silverlight 4中,對打印,rich reporting和圖表有相當好的支持,也支持網絡攝像頭和麥克風,COM自動化,本地文件訪問,新語言,富文本編輯,同時改善了數據綁定的支持,等等。并且,你可以很容易的把你的Silverlight 4應用程序和后端系統,服務器產品(包括SharePoint)整合在一起。Silverlight 4的功能十分地豐富,它的發展將會進一步增加用Silverlight 4來構建LOB應用程序的需求。
前提條件
為了開發Silverlight 4應用程序,你應該在你的系統上安裝如下工具:
Microsoft Visual Studio 2010 RC 或更高的版本
Silverlight 4 Tools for Microsoft Visual Studio 2010
注意:如果你以前在你的系統上安裝過Silverlight 4 Beta或RC,你應該在你的系統上卸載這些版本Silverlight,同時,在你安裝“Silverlight 4 Tools for Microsoft Visual Studio 2010”以前,你需要安裝“Update for Microsoft Visual Studio 2010 (KB976272)”補丁。并且,如果你安裝了“Silverlight 4 Tools for Visual Studio 2010”,那么你無需單獨安裝Silverlight 4 SDK。
Silverlight 4的12個頂級新特性
Silverlight 4提供了很多令人興奮的新特性。這個列表包含了Silverlight 4的12個頂級的令人興奮的新特性
1,對網絡攝像頭和麥克風的支持
你可以使用Silverlight 4來構建支持視屏和音頻共享的應用程序。在你的系統中,你可以下面的代碼段來獲取所有可用的音頻和視頻源的列表:
- AudioSources.ItemsSource =
- CaptureDeviceConfiguration.GetAvailableAudioCaptureDevices();
- VideoSources.ItemsSource =
- CaptureDeviceConfiguration.GetAvailableVideoCaptureDevices();
2,對多播網絡的支持
這個特性可以讓企業減少會議和培訓等流媒體播放活動,也可以和已經投入使用Windows Media Server流媒體基礎設施進行無縫的交互。
3,性能優化
使用Silverlight 4構建的應用程序相當快,比Silverlight 3應用程序快很多,這要感謝新的Just in Time編譯器。Silverlight 4應用程序的啟動速度也比舊版本的Silverlight應用程序快很多。
4,為Microsoft Visual Studio 2010提供了更好的開發工具
Silverlight 4 Tools for Visual Studio 2010相當強大。它提供了十分優秀的設計面板,rich proterty grids,并且支持XAML代碼的智能提示,數據綁定控件的拖放,等等。
5,支持在用戶的系統上訪問本地文件和文件夾
在Silverlight應用程序中,你不再需要依靠OpenFileDialog和SavaFileDialog來訪問你系統中的文件和文件夾了,Silverlight 4現在允許你直接訪問你系統中的文件夾。允許訪問的文件夾包括所有“My”開頭的文件夾:MyDocuments,MyVideos,MyMusic,等等
6,支持COM互操作
你現在可以用Silverlight 4來和COM接口交互。舉例來說,你現在可以用ComAutomationFactory API,在Microsoft Office應用程序和Silverlight之間進行無縫的通信。你可以用這個代碼段來讓你的Silverlight 4應用程序和Microsoft office對話:
- dynamic excel = ComAutomationFactory.CreateObject("Excel.Application");
- excel.Visible = true;
- dynamic workbook = excel.workbooks;
- workbook.Add();
- dynamic sheet = excel.ActiveSheet;
類似地,你也可以用下面的代碼段來讓你的Silverlight 4應用程序和Microsoft Word對話:
- dynamic word = ComAutomationFactory.CreateObject("Word.Application");
- word.Documents.Add();
- word.Visible = true;
7,加強了對Out-of-browser應用程序的支持
Silverlight 3對運行在桌面上的RIA應用程序提供了無縫的支持,這些RIA程序不需要任何的附加代碼或運行時,Silverlight 4進一步擴展了這個功能。對Out-of-browser應用程序的支持開始于Silverlight 3。Silverlight 4進一步加強了對Out-of-browser應用程序的支持,它現在已經放寬了運行這樣的應用程序的時候的一些沙箱限制。在提升權限的情況下執行out-of-browser應用程序,Silverlight 4運行時可以提供如下支持:
支持伴隨著策略文件檢查的跨域網絡訪問
支持訪問用戶文件夾
支持COM交互
支持HTML hosting
注意:為了在安裝out-of-browser應用程序的時候請求提升權限,你應該在你的ApplicationManifest.xaml文件中指定下面的配置,
- <OutOfBrowserSettings.SecuritySettings>
- <SecuritySettings ElevatedPermissions="Required" />
- </OutOfBrowserSettings.SecuritySettings>
8,支持用WebBrowser控件Hosting HTML內容
Silverlight 4現在支持使用WebBrowser控件Hosting HTML內容。這個例子展示了WebBrowser控件的標記代碼:
- <WebBrowser x:Name="TestBrowserControl" Width="800" Height="600" />
然后你可以這樣使用WebBrowser控件的NavigateToString()方法:
- TestBrowserControl.NavigateToString
- ("<div><b>Joydip Kanjilal</b></div>");
你也可以使用下面的代碼段導航到一個URL:
- TestBrowserControl.Navigate
- (new Uri("http://aspadvice.com/blogs/joydip"));
9,支持RichTextArea
Silverlight 4包括一個叫RichTextArea的文本編輯控件,它支持存儲各種類型和大小的rich文本。Silverlight4的RichTextArea控件也可以載入和保存基本的HTML內容。這個控件的標記代碼如下:
- <RichTextArea x:Name="MyRichTextAreaControl" Grid.Row="1" />
現在,要把RichTextArea控件中的內容變成黑體,你可以使用如下代碼:
- MyRichTextAreaControl.Selection.SetPropertyValue(TextElement.FontWeightProperty, FontWeights.Bold)
同樣,這是為控件中的文本添加下劃線的代碼:
- MyRichTextAreaControl.Selection.SetPropertyValue
- (TextElement.TextDecorationsProperty, TextDecorations.Underline)
10,支持剪貼板API
Silverlight 4提供的新的剪貼板API,可以讓你把內容從剪貼板粘貼到Silverlight應用程序,下面的代碼段說明了如何存儲系統剪貼板中的文本:
- Clipboard.SetText("This is a sample text.");
11,支持打印API
Silverlight 4提供了可擴展的打印API,為了直接打印Silverlight應用程序中的內容,可以使用這些API來建立一個虛擬的可視化樹。你可以通過Silverlight 4的打印API中的PrintDocument類來使用打印功能。
12,支持鼠標右擊事件的處理
Silverlight中的事件處理更簡單,也更靈活。你現在可以用Silverlight 4來設計和實現使用MouseRightButtonUp/Down事件的上下文菜單風格的應用程序了。這是訂閱鼠標右鍵事件的代碼:
- SampleControl.MouseRightButtonDown += new MouseButtonEventHandler(RectangleContextDown);
- SampleControl.MouseRightButtonUp += new MouseButtonEventHandler(RectangleContextUp);
總結
在這篇文章里我們快速的瀏覽了Silverlight 4的新特性。現在我只討論上面的這些特性,在我以后的文章里我將會討論Silverlight4的其他引人注目的特性,敬請期待!
原文標題:12 New Features in Silverlight 4
【編輯推薦】