Cra*_*rze 5 .net silverlight wpf
我的组织正在考虑将哪些技术用于我们的下一代系统.我们将使用.NET,但尚未确定哪种用户界面技术最佳.Silverlight和WPF似乎是最合适的选择.有人可以分享每种方法的优缺点吗?
即使在版本4中,Silverlight也远不如WPF.
它可以在浏览器中运行或在浏览器外运行,并且具有一些优势 - 但Silverlight优于WPF的主要优点是与部署相关.部署Silverlight应用程序非常容易 - 只需参考服务器上的网页中的XAP,然后部署(如果您的用户安装了Silverlight).WPF在部署方面需要更多工作,因为它是一个完整的桌面应用程序.
话虽这么说,WPF提供了更多功能.它提供对完整.NET框架的访问(而不是[增长]子集).
我个人的偏好是使用Silverlight - 只要应用程序不需要与传统软件互操作,访问系统上的资源或Silverlight中不可用的其他东西.但是,如果你需要做任何会对系统征税的事情(即:你需要并行性的繁重计算,使用图形资源,复杂的3D工作等),那么WPF就是你要走的路.
正如Gabriel(和Reed)所说,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应用程序中使用.