WPF vs XBAP vs Silverlight ...适合商业应用程序?

时间:2009-07-21 18:08:00

标签: .net wpf silverlight xbap business-application

我对完全成熟的WPF客户端应用程序的大量细节非常熟悉。我知道WPF客户端应用程序支持完整的.NET Framework 3.5,允许硬件加速2D和3D图形,主题,模板,样式,触发器,工作。

我不清楚的是XBAP和Silverlight应用程序中存在或缺少哪些功能和/或细节。我听说由于安全问题,XBAP在某些方面本质上受到限制,但就是这样。

我知道WPF足够强大,足以用于全面的业务应用程序,但是XBAP和Silverlight呢?每个的重要能力和局限是什么?它们中的任何一个都缺少在业务应用程序中使用时会使它们无用的功能吗?

4 个答案:

答案 0 :(得分:18)

我试图为一个相当雄心勃勃的项目进行大约18个月的XBAP开发并且非常讨厌它。

有许多未记录的限制,例如无法设置自定义鼠标光标。 MS忘记告诉任何人关于那一个和一百个人。由于那个雷区,我现在非常厌恶沙盒。

与部署噩梦相结合(至今仍然没有Firefox的好故事,即使在3.5 SP1之后仍然存在问题),老实说我相信MS正在竭尽全力杀死XBAP而支持Silverlight。我不怪他们,只是希望他们对此更开放。

我会避免像瘟疫那样的XBAP 。这是一个没有未来的死亡场景。如果他们很快就被弃用,那就不会感到意外了。

答案 1 :(得分:17)

Wintellect在这里发表的Silverlight和WPF之间进行了很好的比较: http://wpfslguidance.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28278

根据WPF和Silverlight的个人经验,我发现SL完全支持LOB应用程序。 .NET RIA服务是LOB应用程序SL3的绝佳补充。为了回答您的上一个问题,我的经验中没有任何内容可以阻止SL创建LOB应用程序。在此讨论中,WPF和SL之间唯一的显着区别是SL无法访问客户端计算机上的本地资源(如注册表),并且无法访问WPF可以使用的Windows特定功能,例如Windows 7跳转列表或库。我认为Silverlight是商务应用程序的最佳选择,因为它易于部署并且能够定位多个平台。

答案 2 :(得分:12)

关于Silverlight,我将概述到目前为止的经验。 (注意:重新阅读它听起来有些消极,但我指出了缺少的功能。总的来说,我喜欢Silverlight,浏览器中使用c#?Rocks的丰富UI。)

值得注意的是,没有右键单击,鼠标滚轮支持,打印功能,您无法打开新窗口。您的OOB SL应用程序无法进入通知区域。您可以在javascript中处理鼠标事件,但如果您希望应用程序移动OOB,则不能处理。

SL团队似乎也过于关注安全性,以至于放弃其LOB适用性(没有新的窗口,OOB中的本地系统访问的信任设置,通知区域等)。

其中一些使Silverlight应用程序感觉它不兼容Windows。想想高亮文本,右键单击复制。或者右键单击粘贴。许多人使用的这些基本操作都缺失了。它也像外星人的UI体验,例如你本能地用你的鼠标滚轮滚动一个网格,它不起作用。这些东西适用于浏览器中的任何表格,但不适用于SL。

编程方面,我没有多少使用WPF,但就我所知,在如何解决某些问题方面存在一些显着差异。

SL中缺少标记扩展。它也只有整数索引绑定,所以没有一些属性包没有一些技巧。 没有触发因此你总是必须编写代码来连接事件(在更多动态页面中有刺激性)。除了工具包中的ImplicitStyleManager之外,它没有可继承的样式,这不符合工作要求。

因此对于某些LOB应用程序来说没关系,对于其他人来说,你必须跳过几个环节(例如,如果你想要客户端的自定义)。但对于所有LOB应用程序来说肯定不是很好。

我的印象是SL还没有感觉完成,有很多琐事。例如,数据网格令人沮丧(不自动拉伸,非常难以子类化),自动完成框有点不稳定,导航框架有点笨重,组合框/树视图很难绑定(如果你想要它们真的没有整理出来将SelectedItem绑定到itemsSource的另一个对象。

总而言之,Silverlight几乎就在那里,只要你准备好接受一些限制和琐事,就没关系。

答案 3 :(得分:9)

我没有使用XBAP的经验,但我的印象与您的相似,因为与WPF相比,它仅在安全性方面受到限制。

至于Silverlight:我最近用它开发了一个复杂的农业遥测监控用户界面 - 它更像是一个数据可视化应用程序,而不是传统的商业应用程序,但它有很多CRUD,没有一个功能,我想实施但不能因为我选择的技术。这就是SL2。

我相信你最终会得到更多的铃声和放大器。如果您使用XBAP,并且如果您可以保证您的用户正在运行.NET 3.5(或者也是3.0的XBAP部分?),我会选择它。否则,我对推荐Silverlight没有任何保留意见。

(道歉,如果你想要更多的功能比较矩阵 - 但我认为你可以在微软找到它们。)