Silverlight与WPF

时间:2010-01-06 01:40:41

标签: .net wpf silverlight

我的组织正在考虑将哪些技术用于我们的下一代系统。我们将使用.NET,但尚未确定哪种用户界面技术最佳。 Silverlight和WPF似乎是最合适的选择。有人可以分享每种方法的优缺点吗?

3 个答案:

答案 0 :(得分:7)

即使在版本4中,Silverlight也远不如WPF。

它可以在浏览器中运行或在浏览器外运行,并且具有一些优势 - 但Silverlight相对于WPF的主要优点是部署相关。部署Silverlight应用程序非常容易 - 只需在服务器上的网页中引用XAP,然后部署(如果您的用户安装了Silverlight)。 WPF在部署方面需要更多的工作,因为它是一个完整的桌面应用程序。

话虽如此,WPF提供了更多功能。它提供了对完整.NET框架的访问(而不是[增长]子集)。

我个人的偏好是使用Silverlight - 前提是应用程序不需要与旧版软件互操作,访问系统上的资源或Silverlight中不可用的其他内容。但是,如果你需要做任何会对系统征税的事情(即:你需要并行性的繁重计算,使用图形资源,复杂的3D工作等),那么WPF就是你的选择。

答案 1 :(得分:7)

正如Gabriel(和里德)所说,Silverlight是WPF的精简版。

WPF 主要用于桌面应用程序,它具有围绕Silverlight尚未拥有的布局,动画和数据绑定的高级功能。 WPF可以通过浏览器提供,但它不作为浏览器插件运行,因此无法与浏览器中的任何其他内容交互。可以创建托管WinForms控件和窗口的WPF应用程序 - 这可以更容易地转换现有WinForms代码组合(如果这对您很重要)。 WPF还具有比Silverlight更复杂的3D功能 - 尽管不是很多。

Siverlight ,可通过Mono运行时和Silverlight的Moonlight端口在多个平台(如Linux和OSX)上使用。 Silver Light可以作为独立应用程序运行,也可以在浏览器环境中运行 - 这样就可以创建基于Web的应用程序。当作为基于浏览器的插件运行时,Silverlight应用程序可以与浏览器中的内容进行插入,并且可以与HTML并排显示。您还可以使用JavaScript操作Silverlight应用程序 - 创建近乎无缝的编程环境。 Silverlight应用程序存在一些限制 - 例如,WCF调用都是异步的(由于Silverlight / Browser线程模型)。此外,并非所有.NET框架SDK都可用于Silverlight应用程序。

这两种技术非常相似,因为它们使用标记和代码的组合来提供功能。要在它们之间进行选择,您需要决定是构建基于浏览器的应用程序还是独立应用程序,是否要将其移植到其他平台,以及是否需要.NET中提供的全套库。

在开发工具方面 - 最好的工具IMHO是Expression Blend - 它有一个优雅而强大的UI,可以直观地创建WPF或Silverlight用户界面。它还与Visual Studio集成 - 这仍然是一个优秀的开发环境(Blend具有有限的代码编辑功能)。还有像Expression Design和Expression Encoder这样的工具可以帮助创建图形和操作视频,以便在WPF和Silveright应用程序中使用。

答案 2 :(得分:3)

Silverlight是Silverlight浏览器插件中使用的WPF的子集。两者都很好,但您必须决定是否最终使用基于Web的应用程序或Windows应用程序。

Silverlight没有WPF所具有的所有功能(部分出于安全原因 - 它在浏览器中使用)。但是,使用Silverlight,您可以访问所有其他基于Web的应用程序优势(单个升级位置等 - JavaScript,CSS和HTML)。