5

我们正在考虑将我们的 UI 迁移到 XBAP。尽管知道客户必须预先安装 .net,但我们还是选择了 XBAP,因为我们的目标不是大众而是企业环境中的 IT 专业人员,这是一种保护我们投资的方式(在基于 WPF 的 UI 中客户端-服务器架构)并享受 Web 部署。但是,我们担心平台/架构的成熟度及其采用情况。

您知道使用 XBAP 的任何商业应用程序吗?您有使用它的经验吗?你能详细说明一下那次经历吗?

另外,正如@Murph 所建议的那样,您能想出比 XBAP 更喜欢 clickOnce(或相反)的有力理由吗?

4

5 回答 5

3

我一直在做一个 XBAP 工具,也是为了满足公司内部的需求。推出更新非常容易——只需更新服务器应用程序版本,客户端将在下次连接时更新。因此,在这方面它与 ClickOnce 并没有太大区别。

我们的主要问题是“部分信任”模式,你必须遵守。并且在一些非常意外的情况下会出错,比如我们的一些第三方 WPF 失败了,因为他们使用了 WPF 位图效果,而后者又使用了 GPU 着色器,这被系统视为安全违规并被阻止。我不确定 ClickOnce 是否解决了这种问题。有传言称 XBAP 信任模式在 .NET 4 中将不那么偏执。

否则,我看不出有什么区别。至少 XBAP 与独立 WPF 的开发是一样的。(注意:Silverlight 不同,它只使用 .NET 框架的一个子集,单独安装并适用于多个平台。XBAP 需要 Windows 平台和 .NET Framework 3+)。

于 2009-10-30T22:22:25.367 回答
2

我们开发了一个具有桌面和 Web 实现的应用程序。因为功能几乎相同,我们需要单一来源的解决方案。该应用程序是 CAD 应用程序的项目和图纸管理工具。让它在浏览器中运行的最重要原因是该应用程序将用作交换项目数据和图纸的协作工具。

浏览器托管应用程序的问题在于它们在浏览器中运行,因此仅限于适用的规则(如另一个答复中所述,例如新窗口和信任限制)。

因为我们的应用程序主要用于受控的 Intranet 和 Extranet,我们认为我们可以使用我们的解决方案进行管理。我们的应用程序在完全信任的情况下运行,并使用我们自己的证书进行签名,这让生活变得更轻松。

好处当然是单击一次安装(和更新维护)以及让用户通过网站“在任何地方”安装应用程序(或者当然您需要.NET 和我们案例中的证书)的能力。

我们面临的最大问题与我们可以解决的信任、导航和对话有关。另一个问题是我们的应用程序使用 Web 服务来访问数据。默认情况下(嵌入式),客户端和 Web 服务之间的绑定非常困难,但我们也找到了克服这个问题的方法。

我们也可以在浏览器之外运行我们的应用程序(但通过浏览器安装它)。但是我们的产品负责人目前想要浏览器体验,因为这对用户来说更有意义。如果您通过网站安装但在浏览器之外运行应用程序,则浏览器要求的限制较少。

于 2010-04-13T11:48:24.157 回答
2

我们在 ClickOnce 方面取得了很大成功,包括向外部非技术客户推出生产。它易于使用,包括易于集成到我们的自动化构建过程中。我们的经验至少是您在权衡两种替代方案的风险时需要考虑的一个数据点。

没错,XBAP 的采用率确实很低。我认为这主要是因为 Silverlight 对大多数希望在浏览器中受益于 WPF/DotNet 的人来说更有意义(因为他们的应用程序可以使用 Silverlight 跨平台)。

于 2009-10-28T21:21:36.683 回答
2

这是一个有趣的事实。在 .NET 4.0 中,他们增加了通过 ClickOnce 部署的 XBAP 应用程序完全信任运行的能力。不再需要部分信任。那应该给你一些选择!

于 2010-04-14T09:35:00.060 回答
1

我可能错了,但 IIRC XBAP 使用 ClickOnce 作为它的底层部署方法。[找不到我在哪里读到这篇文章,所以请谨慎对待。]

也就是说,我通过 ClickOnce 部署运行 WPF 应用程序取得了巨大成功。如前所述,您将所有文件部署到 Web 服务器。当您发布更新时,您只需将它们复制到您的 Web 服务器,当客户端运行应用程序时,它们会被提示更新到最新版本,您可以要求更新,或允许它们延迟。

它非常用户友好,并且不需要浏览器的开销来运行您的应用程序。

于 2009-10-30T15:29:20.983 回答