我的组织正在考虑将哪些技术用于我们的下一代系统。我们将使用.NET,但还没有决定哪种用户界面技术是最好的。Silverlight和WPF似乎是最合适的选择。有没有人能分享一下每种方法的优缺点?
发布于 2010-01-06 10:01:45
正如Gabriel (和Reed)提到的,Silverlight是WPF的精简版本。
Silverlight 主要用于桌面应用程序,它具有布局、动画和数据绑定方面的高级功能,这是尚不具备的。WPF可以通过浏览器提供,但它不作为浏览器插件运行,因此无法与浏览器中的任何其他内容交互。可以创建承载WinForms控件和窗口的WPF应用程序-这可以更容易地转换现有WinForms代码的投资组合(如果这对您很重要)。WPF还拥有比Silverlight更复杂的3D功能--尽管远不及Silverlight。
Siverlight可通过Mono运行时和Silverlight的Moonlight端口在多个平台(如Linux和OSX)上使用。Silver light既可以作为独立的应用程序运行,也可以在浏览器环境中运行-这使得创建基于web的应用程序成为可能。当作为基于浏览器的插件运行时,Silverlight应用程序可以与浏览器中的内容交互,并可以与HTML并排显示。您还可以使用JavaScript操作Silverlight应用程序,从而创建一个近乎无缝的编程环境。Silverlight应用程序有一些限制-例如,WCF调用都是异步的(由于Silverlight/浏览器线程模型)。此外,并非所有的.NET框架SDK都可用于Silverlight应用程序。
这两种技术非常相似,因为它们使用标记和代码的组合来提供功能。要在它们之间进行选择,您需要决定是构建基于浏览器的应用程序还是独立的应用程序,是否希望可移植到其他平台,以及是否需要.NET中提供的全套库。
在开发工具方面-最好的工具是Expression Blend -它有一个优雅而强大的UI,可以可视化地创建WPF或Silverlight用户界面。它还与Visual Studio集成在一起--Visual Studio仍然是一个优秀的开发环境(Blend的代码编辑功能有限)。也有像表达式设计和表达式编码器这样的工具来帮助创建图形和操作视频,以便在WPF和Silveright应用程序中使用。
发布于 2010-01-06 09:56:57
Silverlight的能力远远不如WPF,甚至在版本4中也是如此。
它既可以在浏览器中运行,也可以在浏览器外运行,并具有一些优势-但Silverlight相对于WPF的主要优势是与部署相关的。部署Silverlight应用程序非常简单-只需在您的服务器上的网页中引用XAP,并且它已经部署(前提是您的用户已经安装了Silverlight )。WPF在部署方面需要更多的工作,因为它是一个完整的桌面应用程序。
也就是说,WPF提供了更多的功能。它提供了对完整.NET框架的访问(而不是不断增长的子集)。
我个人的偏好是使用Silverlight -前提是应用程序不需要与遗留软件进行互操作,不需要访问系统上的资源,或者不需要Silverlight中其他不可用的东西。然而,如果你需要做任何会加重系统负担的事情(例如:你想要并行的繁重计算,图形资源的使用,复杂的3D工作,等等),那么WPF就是你要做的。
发布于 2010-01-06 09:43:14
Silverlight是在Silverlight浏览器插件中使用的WPF的子集。这两个都很好,但你必须决定你最终会得到一个基于web的应用程序还是一个windows应用程序。
Silverlight并不具备WPF的所有功能(部分出于安全原因--它是在浏览器中使用的)。不过,有了Silverlight,你就可以享受到所有其他基于web的应用程序的优势(单一升级位置等-- JavaScript、CSS和HTML)。
https://stackoverflow.com/questions/2010452
复制相似问题