Silverlight 3.0 beta刚刚在拉斯维加斯举行的Microsofts Mix Conference上宣布.
新测试版的两个功能是3D图形和在浏览器之外运行应用程序的能力,这对我来说似乎是WPF(Windows Presentation Foundation)之前提供的两项主要功能.
我目前正在评估WPF和Silverlight可能用于我们公司未来的开发活动,这个公告让我对这两种UI技术的预期方向感到困惑,以及为什么我会选择其中一种.
有没有人最近使用WPF实现了一个新的应用程序,如果有的话,是什么驱使你做出这个决定?鉴于已宣布对silverlight的更改,如果您现在已经改变了,您的决定是否会改变,如果没有,为什么?
任何意见,将不胜感激.
我找到的最大区别是您必须在Silverlight应用程序中采用的异步模型.它看起来似乎是一种优势(也可能是),但它确实使生活变得非常困难.
还有一些限制可能是一个真正的挑战,如缺乏印刷支持.
在以下情况下,我会推荐Silverlight而不是WPF:
- 不需要最佳性能(包括图形) - 可以避免打印支持(它会来,我们只是不知道什么时候) - 不需要摄像头/麦克风支持 - 可以容忍assync应用程序/开发模型 - 可以容忍对WCF的限制(此时不支持WS-Security) - 无需在客户端上存储大量数据. - 无需与Office等客户端应用程序直接集成. - 有一台托管您的应用程序的服务器我想说主要区别在于WPF要求客户端拥有.Net 3.0+框架.Silverlight只需要运行时.既然如此,WPF更适合内部网等受控环境.Silverlight适用于公共网络.另一个区别是Silverlight是跨平台的(未来的Windows,Mac,Linux和Cross浏览器).WPF仅适用于Windows.
对于某些用户来说,.Net框架可能是一个巨大的下载.Silverlight只有4-5MB.这是在网络上运行您的应用程序的一个很大的区别,但如果它是您公司的内部应用程序,这不是一个大问题.
Silverlight是Sandboxed,适用于Web.因此,如果您的应用需要更多权限,则需要WPF.
Silverlight代码和WPF之间也存在一些差异.但是从我所听到的情况来看,最终的目标是让Silverlight在WPF内部运行,并且代码更改最少.但他们还没有.
我刚刚参与了一个WPF项目,事后我们觉得我们可能选择了SilverLight.知道差异并选择最适合您正在做的事情可能更为重要.
这是关于一些重要差异的十个起始者 - 最初在可用控件中存在一些差异,但现在已基本平滑了.
Silverlight的
完全在客户端上运行AJAX调用服务器以获取数据
可以在任何服务器上运行,包括Windows和Linux/Apache
使用COMPACT .NET框架
WPF
在客户端上运行...通常调用数据服务
使用.NET 3.5在Windows XP/Vista上运行
利用整个.NET框架