【问题标题】:WPF or ASP.NET MVC for UI for an expert business application?用于专业业务应用程序 UI 的 WPF 或 ASP.NET MVC?
【发布时间】:2012-04-09 08:35:18
【问题描述】:

我知道以前有人问过这个问题,但是已经过去了将近 2 年,业务需求有所不同。

我们正处于开发中型应用程序的初期,并且正在划分前端使用哪种技术,WPF 还是 ASP.Net MVC 3? 我们不是一家 IT 公司,而是一家拥有 IT 部门的商业公司,可以外包编程任务,而业务核心仍留在公司内部。我确实花了很多时间在互联网上搜索答案,并且我确实部分成功了,但是由于问题如此重要,我想我也在这里问。 当然,在有人回答这个问题之前,我需要指定应用程序的要求和环境:

基础设施: 我们有一个纯Windows环境。每个用户都将安装 Windows XP SP3(当前)或未来版本的 Windows(如果我们从 XP 跳到 Windows 8 还有待观察,但让我们假设用户接下来将使用 Windows 7)。 我们的目标是面向服务的架构,这意味着我们只想在客户端机器上运行/显示真正需要的东西。这一点尤其重要,因为数据库远离客户(美国/欧洲)。我们计划使用 WCF 在用户系统(浏览器或 WPF)、应用程序和数据库服务器之间进行跨机器通信。

我们预计主要用户组将在 30 人左右,但由于我们是一家成长中的公司,因此扩展到 100 名用户应该没有问题。用户分布在全球三个主要位置,而我们也希望选择支持较小的位置。所有这些位置都连接到同一个 Intranet。

用户界面体验 新系统应该取代现有的桌面应用程序(Winform)系统。屏幕数量可能在 100 多个左右,带有许多标签、组合框、图表。我喜欢称它为专家系统 b/c 我们希望用户每天花几个小时使用它,用户希望与它进行快速交互(多次点击、多个对话框弹出和关闭等),并且应用程序将包含很多业务逻辑(主要是数学上的)。 需要与 Excel 进行一些有限的交互。在此阶段,仅将 .xlsx 文件中的格式化数据导入应用程序以便处理数据。我们预计这会经常发生。 从 Excel 或其他应用程序复制和粘贴到我们的新应用程序是一项要求(没有图片,只有文本)。 我们将使用供应商控制库来获得更丰富的 UI 体验。 用户习惯于使用桌面应用程序进行日常工作(当前系统/Excel 等)。 平板电脑或智能手机支持不是必需的。

部署 如果我们要使用 WPF 应用程序,我们可能会在 CITRIX 中部署它或使用 Click-Once。

以下是两个对立派系的论点:

专业网络: 部署要容易得多。所有需求都可以直接在 Web 应用程序中完成,如果没有,我们使用 ActiveX 或为缺少的部分制作单独的桌面应用程序。此外,IT 世界将停止使用纯桌面应用程序,一切都将转向 HTML 5 (Windows 8)。

专业版 WPF: Web 应用程序使用许多不同的技术,这使得开发和维护变得更加困难和昂贵(HTML、ASP.NET、CSS、JavaScript、JQuery、AJAX)。 Web应用程序存在重大缺陷,主要是

  1. 考虑到各种浏览器和版本。
  2. 屏幕分辨率
  3. 图形不支持硬件(业务图、200 多个点的点图)
  4. 对本地硬件的访问受限(导入文件、创建文件、打印)
  5. 键盘快捷键

第 1 点也令人担忧,因为浏览器更加失控,因为公司使用了其他 Web 应用程序(不是专家系统),而且我们担心与新应用程序的利益冲突(例如,我们必须使用浏览器所有应用程序都可以正常运行/渲染的版本)。

我知道这没有黑白分明,但我会对以下内容感兴趣:

谁遇到过类似情况,他们是如何解决的?http://karlshifflett.wordpress.com/2007/12/20/reasons-for-choosing-wpf-over-aspnet-for-very-large-project/有一篇不错的文章,但问题是文章已经5年了:(

网络解决方案要贵多少? 对于开发,假设程序员在两者方面都同样熟练(我们可以外包)。为了维护,假设我们将在内部支持这一点,因为我们对 ASP.NET 和 WPF 的知识有限。我们知道使用 C# 的 WinForm/WCF。我们必须训练/学习这两种技术。

Web 应用程序进行 Excel 交互、打印等操作有多容易? 我读了很多关于“ActiveX 地狱”的文章,我想知道我们今天的立场是什么?

部署 我过去使用 Click-Once 非常成功,尽管一些团队成员提到 Click-once 可能是一个问题。有什么经验吗?

未来? 该系统应该持续5年以上。我们目前不能针对 HTML5(WinXP 仅支持 IE 8)。 Windows 8 在这方面有何立场?

其他想法? 我错过了什么重要的事情?

谢谢! 我知道这个条目很长而且不是一个简单的问题。因此,我认为您阅读并更加感谢您的建设性反馈。谢谢!!!!

【问题讨论】:

  • 很遗憾,这个网站不适合提出这类问题。
  • 我还不会在 HTML5 采用上算你的鸡。只有某些类型的应用适用于 Metro 功能。
  • 您为什么不考虑 Silverlight - 它是 WPF 的基于 Web 的姐妹。
  • 因为从我读到的内容来看,微软明天是否会拔掉插头还不清楚。这是任何技术的宿命,但 ailverlight 似乎很快就会消亡:(
  • 哇,Silverlight 已经出现了一段时间。那将是向 Flash 让步。

标签: wpf asp.net-mvc architecture


【解决方案1】:

我不会在 WPF 中构建业务应用程序,尤其是如果您的目标是让它持续 5 年以上。 Silverlight 现在在 sunset phase 中 - Win8 应用程序现在押注 JavaScript 和 HTML5,尽管您正确地注意到 HTML5 支持并非在所有浏览器和平台上都通用(请参阅 http://caniuse.com/

让我尝试解决您上面的一些问题,希望能说服您构建一个 Web 应用程序:

  1. 考虑到各种浏览器和版本。是的,你必须这样做。但是,对于企业应用程序大部分时间,如果您使用行业标准的 Web 技术并且不使用未得到普遍支持的深奥 HTML5 内容,您可以找到可接受的解决方案。这不会是一次扣篮,但非常可行。
  2. 屏幕分辨率。您可以使用通常称为Responsive Web Design 的方式解决此问题。再一次,有广泛的社区和行业支持 CSS 框架,使您能够实现响应能力。 YUIBootstrap 是两个例子。
  3. 没有硬件支持图形(业务图、200+ 点的点图)。好吧,这就是 HTML5 硬件加速可以帮助你的地方,但我想说像 HighCharts 这样的库可以轻松处理 200+ 点图 - 请参阅 example
  4. 限制对本地硬件的访问(导入文件、创建文件、打印)。有道理。我认为使用Socket.ioFilepicker.ioZip.js 之类的东西处理文件要容易得多,但“企业”要求可能会阻碍。至于打印,您可以创建页面的“可打印”版本或在服务器端生成 PDF 和 Excel 导出。不理想,但非常可行。
  5. 键盘快捷键。您使用过 Gmail 应用程序吗?它充满了快捷方式和基于键盘的交互。这适用于任何应用程序 - 如果您需要键盘交互,无论您选择 WPF 还是 Web,都必须构建它们

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2015-08-27
    • 2012-04-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多