WPF相比Silverlight 4还有哪些优势?

9
在Silverlight 4中宣布的新功能列表中,什么情况下还需要使用WPF?
9个回答

11

WPF仍具有更丰富的三维渲染能力。

此外,即使他们宣布了对命令和绑定功能的增强,也不能保证它将拥有WPF当前或下一版本所具备的全部功能。

编辑:在尝试Silverlight 4 beta之后,看起来几乎所有新功能(网络摄像头、文件访问、全屏键盘、COM互操作等)仅在应用程序处于提升的信任级别时才能工作,并且只有在离线运行时才能启用提升的信任级别。其中一些可能会在RTW时发生改变,但目前,在浏览器窗口内执行这些操作似乎仍然只有使用WPF是唯一的选择。


1
虽然这是肯定的,但我从来没有在我的生活中使用过3D渲染,当然也没有在任何LOB应用程序中使用过。 - Peter Wone
网络摄像头不需要提升的信任级别——只需要一个类似于请求剪贴板访问权限的窗口即可。 - Daniel May

9

在等待包含WPF完整模板和数据绑定功能的Silverlight版本之前,我主要使用XBAP进行浏览器部署。也许Silverlight 4会实现它。

Silverlight 4肯定无法做到以下几点:

  • 让您轻松地将WinForms和MFC用户界面组件与您的应用程序集成
  • 有效地处理最初在C/C++中定义的数据文件结构(使用WPF,您可以简单地复制代码,并使用unsafeStructLayoutAttribute轻松地复制原始C++代码)
  • 将非托管C++代码包含在您的应用程序中

我实际上还没有下载Silverlight 4 beta版,所以这个列表不完整。


3
当您不想依赖浏览器来完成工作,需要在没有先前确认的情况下完全快速访问文件系统时,或者需要与不安全代码进行互操作时。这些只是我能想到的一些原因,但还可能有其他原因,具体取决于Silverlight 4真正拥有哪些功能以及它们的实际效果如何。

1
你有没有看到Scott Guthrie今天在PDC主题演讲中宣布的新Silverlight 4功能列表?Silverlight 4将包括离线操作和文件系统访问。不过,与不安全代码的Interop仍将是WPF的专属功能。 - Ray Burns
1
只有“受信任”的应用程序才能包含OOB文件系统访问功能。在安装过程中,用户将收到额外的警告,告知他们该应用程序希望被信任。 - Ben McCormack

3

下一个版本的Visual Studio将不会使用Silverlight编写 ;) 我迫不及待地想在WPF中编写音频实用程序,而Silverlight必须与令人难以置信的Windows音频子系统隔离开来。然而,我可以看到有一天WPF将被称为Silverlight(或者可能是反过来)。


是的 - 对于无法访问音频子系统感到遗憾 - 但是SL4可以访问来自麦克风设备的音频输入流,所以在这个领域有一些进展。然而,从安全角度考虑,对完整音频子系统的API访问可能存在问题... - Gordon Mackie JoanMiro
Silverlight的麦克风支持使其与Flash规范保持一致,太棒了! - rasx

2
我们公司今天编写的应用程序除了本地TCP / IP连接没有限制以外,使用的所有内容都受Silverlight支持。
这是我们使用WPF的唯一原因。 如果我们可以使用Silverlight(桌面模式),我们将能够让我们的客户选择在Mac(和Linux)系统上工作,而不是被迫(由我们?)使用旧版本的Windows(您会惊讶于有多少公司仍在使用旧版本的Windows)。
即使在WPF中,我们也尽量限制对系统的访问,创建我们自己的沙盒,并尽量不超出其范围。(从不需要管理员权限,从不访问您不必要的内容)
因此,对于我们所做的事情,Silverlight +真正的tcp / ip支持已经足够了......但是WPF绝对还有空间,我相信它会留下来。
这一切取决于您正在构建什么。

1

Silverlight始终会优先考虑小负载而非功能。战略上,微软将尝试使用Silverlight超越Adobe的产品,而WPF将与其他重型平台竞争。如果您看看WPF 4,您会注意到它推出了更重的功能。我试着记住,WPF最初是作为Avalon启动的,旨在永久取代Win32。如果有一天Windows XX成为“本地”WPF,而Win32将被模拟,我也不会感到惊讶。


0

如果您需要进行大量的富文本(FlowDocument)编辑,则仍需要使用WPF。Silverlight 4增加了新的RichTextBox,但其功能仅限于非常基本的内容,并且没有提供WPF中FlowDocuments的全部功能集。FlowDocument实际上可以完成WinForms RichTextBox所能做的事情;但是如果您只需要基本功能,Silverlight中的RichTextBox可能已经满足您的需求。


0

如果你想通过ADO.NET进行直接数据库访问,那么在Silverlight 4中你将无法做到这一点。设备访问仍然会受到限制,尽管现在你将拥有一些打印支持和网络摄像头/麦克风。我还没有听说过64位支持的消息,所以如果你想提供一个64位版本的应用程序,你需要使用WPF。我认为即使Silverlight 4更好地利用了GPU,它仍然不会达到WPF利用它的水平。

.NET框架中还有大量其他的程序集,Silverlight没有包含,所以如果你需要其中任何一个,你需要使用WPF。

就像HTML5在某些情况下减少了Flash或Silverlight等插件的需求一样,Silverlight将减少对WPF的需求,但仍有很多情况需要使用WPF。


-1

归根结底,Silverlight 有限制。因此,如果您要使用一种功能较弱的技术,您应该有一个令人信服的理由。我能想到的唯一一个,在某些情况下非常重要的理由是,Silverlight 更加平台无关。我无法想象任何人希望将浏览器及其所有问题引入解决方案中。必须有一个很好的理由。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接