【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
【编辑推荐】