在MIX10大会上,silverlight 4 RC发布了。这里版本和之前发布的silverlight 4 beta有产生了一些变化,这里讲系统的介绍一下这些变化以及新的特性。
http://timheuer.com/blog/archive/2010/03/15/whats-new-in-silverlight-4-rc-mix10.aspx
首先先预备工作环境
- Visual Studio 2010 RC 或者 Visual Web Developer Express 2010 RC
- Silverlight 4 Tools for Visual Studio 2010 (这里会安装上silverlight 4运行时,SDK,for VS Tools,以及WCF RIA Services).
- Silverlight Toolkit March 2010 Release
- WCF RIA Services Toolkit
- Expression Blend 4 beta
- BREAKING CHANGES DOCUMENTATION – 建议阅读
- Windows Phone Developer tools
ok开始吧~ 这里整理出来一些比较重要的变更以及新的特性。
变更 | 新特性 |
|
|
关于Visual Studio 2010
在为Visual Studio 2010安装Silverlight 4 toos之前请先给VS安装一个补丁文件。
RichTextBox(之前称为RichTextArea)
Silverlight 4 包含了一个可以编辑显示富文本的新控件RichTextBox(在beta时他被称为RichTextArea)。这里他有了一些变化,根据大家的意见更名为RichTextBox。在新特性上他提供了可以获取运行时显示内容的XAML能力,这个对保存内容以及在意外情况下找回内容十分的有用。获取XAML十分的简单
string richText = MyRichContent.Xaml;
这里还提供了新的文本选择、定位API。更加详细的请看我的这一篇文章《[Silverlight 4 RC]RichTextBox概览》
WebBroswer Control
之前的Beta版本中提供了在OOB模式下显示Html内容的机制。这个版本中只是有一些API发生了变化。其中的HtmlBrush现在被称为WebBrowserBrush。
更加详细的请看这两篇文章《[Silverlight 4 RC]WebBrowser概览》《[Silverlight 4 RC]WebBrowserBrush概览》
Painting API enhancements
打印API的增强能帮助开发者查询打印页面的大小以及打印的区域。
之前:
PrintDocument doc = new PrintDocument();
doc.DocumentName = "Sample Document";
doc.Print();
之后:
PrintDocument doc = new PrintDocument();
doc.Print("Sample Document");
Native automation (COM interop)
一些API产生了变化,运行需要OOB下的高级信任模式。
之前:
dynamic excel = ComAutomationFactory.CreateObject("Excel.Application");
之后:
dynamic excel = AutomationFactory.CreateObject("Excel.Application");
Language/script support
Silverlight现在有了很棒的多语言支持,包括了泰国文和越南文子,还增加了对印度多字符的支持。
Script | Language |
Bengali Oriya Malayalam Kannada Tamil Telugu Gujarati Gurmukhi Devanagari |
Bengali, Assamese, Manipuri Oriya Malayalam Kannada Tamil Telugu Gujarati Punjabi Hindi, Marathi, Sanskirt, Konkani, Kashmiri, Nepali, Sindhi |
Networking
在beta期间socket端口被限制在收信任的模式下运行,在这个RC版本了这个限制被取消掉了。
另外,ClientHttp增加了UpLoadProgress状态以及缓存的支持。
摄像头、剪切板等的用户对话框
上边所提到的对话这里可以统一称作“用户授权对话框”。当一些香情况访问机器硬件、摄像头、麦克风、剪切板等的设备,或是增加独立存储空间等的操作都将要询问用户是否允许。在beta版本中只是最基本的yes和no,在这里发布版本中为了提搞用户体验增加了一个“Remember my answer”记住我的选项。
当然这个“记住我的选择”你可以在silverlight的Configuration中的Permission选项卡下做修改。
高级信任模式下的证书认证
在启用高级信任模式后的OOB应用你会发现他的安装界面和之前的OOB安装界面有了很大的区别。从安全角度上来说未经过证书认证的xap,在安装界面时总是有黄色警戒提示,而且不会显示App的Icon在安装界面上。
windows:
mac osx:
在签名后黄色的警戒没有了,Icon也显示了出来。
windows:
mac osx:
另外未经过证书认证的xap OOB SL应用是无法自动的进行更新(CheckAndDownloadUpdateAsync)。
OOB模式窗体边框样式
之前做过wpf开发的朋友应该知道。wpf是可以自定义不规则边框的。在这里silverlight 的OOB模式也提供了类似的功能。他提供了三种样式的边框,一个是大家之前常用的,这里就不多做解释了。另外两个,一个是无边框模式,他是一个四四方方的矩形直接显示内容。还有一个,就是在之前的无边框模式下将直角边缘改成圆角边缘。
你可以在OOB模式下方选择边框样式。
这里再看一下效果
传统的边缘:
圆角无边框样式:
Pinned full-screem mode
可固定的全屏模式,不知道大家有没有多显示器的开发环境。目前我就是一台笔记本在外接一个22寸的显示器。在实际应用中,可能会需要一遍在开发环境,另一个显示器全屏播放一个电影~。 但是要是在开发环境中的显示器点击鼠标会导致另外的全屏电影模式的显示器退出全屏回到普通状态。在这个发布版本里新增加了一些API来完善这个在多显示器模式下的全屏模式。
App.Current.Host.Content.FullScreenOptions = System.Windows.Interop.FullScreenOptions.StaysFullScreenWhenUnfocused;
一旦上边的代码生效,全屏模式将一直保持下去直到用户按下esc键或者手动点击退出全屏按钮,全屏模式才会退出。
ContextMenu control
在beta版本里新增加了右击事件,在绝大多数情况下这个事件被开发人员用来做了右键菜单。这里最新发布的Toolkit for March 2010里新增加了一个ContextMenu控件来实现右击菜单的功能。
SLLauncher silent installs
这个版本里应用sllanucher.exe可以允许用户通过命令行的方式开部署OOB模式的silverlight应用。
"%ProgramFiles%\Microsoft Silverlight\sllauncher.exe" /install:"D:\deploy\demoapp.xap"
/origin:"http://foocompany.com/apps/ClientBin/demoapp.xap"
/shortcut:desktop+startmenu
/overwrite
WCF RIA Services Toolkit
在你安装了silverlight 4 Tools for Visual Studio会自动的给你装上WCF RIA Service。
其中包括:
- LinqToSql DomainService
- SOAP endpoint – enabling exposing a SOAP endpoint for your DomainService
- JSON endpoint – enabling exposing a JSON endpoint for your DomainService
- ASP.NET DomainDataSource – enabling your ASP.NET application to talk to your DomainService