WPF与Silverlight 3.0

Chr*_*isV 21 silverlight wpf cross-platform

Silverlight 3.0 beta刚刚在拉斯维加斯举行的Microsofts Mix Conference上宣布.

新测试版的两个功能是3D图形和在浏览器之外运行应用程序的能力,这对我来说似乎是WPF(Windows Presentation Foundation)之前提供的两项主要功能.

我目前正在评估WPF和Silverlight可能用于我们公司未来的开发活动,这个公告让我对这两种UI技术的预期方向感到困惑,以及为什么我会选择其中一种.

有没有人最近使用WPF实现了一个新的应用程序,如果有的话,是什么驱使你做出这个决定?鉴于已宣布对silverlight的更改,如果您现在已经改变了,您的决定是否会改变,如果没有,为什么?

任何意见,将不胜感激.

Kli*_*ger 13

我找到的最大区别是您必须在Silverlight应用程序中采用的异步模型.它看起来似乎是一种优势(也可能是),但它确实使生活变得非常困难.

还有一些限制可能是一个真正的挑战,如缺乏印刷支持.

在以下情况下,我会推荐Silverlight而不是WPF:

- 不需要最佳性能(包括图形)

- 可以避免打印支持(它会来,我们只是不知道什么时候)

- 不需要摄像头/麦克风支持

- 可以容忍assync应用程序/开发模型

- 可以容忍对WCF的限制(此时不支持WS-Security)

- 无需在客户端上存储大量数据.

- 无需与Office等客户端应用程序直接集成.

- 有一台托管您的应用程序的服务器


irp*_*rez 11

我想说主要区别在于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内部运行,并且代码更改最少.但他们还没有.


Fen*_*ton 6

我刚刚参与了一个WPF项目,事后我们觉得我们可能选择了SilverLight.知道差异并选择最适合您正在做的事情可能更为重要.

这是关于一些重要差异的十个起始者 - 最初在可用控件中存在一些差异,但现在已基本平滑了.

Silverlight的

  • 完全在客户端上运行AJAX调用服务器以获取数据
  • 可以在任何服务器上运行,包括Windows和Linux/Apache
  • 使用COMPACT .NET框架

WPF

  • 在客户端上运行...通常调用数据服务
  • 使用.NET 3.5在Windows XP/Vista上运行
  • 利用整个.NET框架