我知道以前有人问过这个问题,但是已经过去了将近 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。
以下是两个对立派系的论点:
Pro Web:部署更容易。所有要求都可以直接在 Web 应用程序中完成,如果没有,我们使用 ActiveX 或为缺少的部分制作单独的桌面应用程序。此外,IT 世界将停止使用纯桌面应用程序,一切都将转向 HTML 5 (Windows 8)。
Pro WPF: Web 应用程序使用许多不同的技术,这使得开发和维护变得更加困难和昂贵(HTML、ASP.NET、CSS、JavaScript、JQuery、AJAX)。Web应用程序存在重大缺陷,主要是
- 考虑到各种浏览器和版本。
- 屏幕分辨率
- 图形没有硬件支持(业务图、200+点的点图)
- 限制对本地硬件的访问(导入文件、创建文件、打印)
- 键盘快捷键
第 1 点也令人担忧,因为浏览器更加失控,因为使用了公司中的其他 Web 应用程序(不是专家系统),而且我们担心与新应用程序的利益冲突(例如,我们必须使用 ALL 的浏览器版本)应用程序运行/渲染良好)。
我知道这没有黑白分明,但我会对以下内容感兴趣:
谁有类似的情况,他们是如何解决的?(在http://karlshifflett.wordpress.com/2007/12/20/reasons-for-choosing-wpf-over-aspnet-for-very-large-project/ 上有一篇不错的文章,但问题是文章已有 5 年历史 :(
Web 解决方案要贵多少? 对于开发,假设程序员在两者方面都同样熟练(我们可以外包)。为了维护,假设我们将在内部支持这一点,因为我们对 ASP.NET 和 WPF 的知识有限。我们知道使用 C# 的 WinForm/WCF。我们必须训练/学习这两种技术。
Web 应用程序进行 Excel 交互、打印等操作有多容易? 我读了很多关于“ActiveX 地狱”的文章,我想知道我们今天的立场是什么?
部署 我在过去非常成功地使用了 Click-Once,尽管一些团队成员提到 Click-once 可能是一个问题。有什么经验吗?
未来? 该系统应该持续5年以上。我们目前不能针对 HTML5(WinXP 仅支持 IE 8)。Windows 8 在这方面有何立场?
其他想法? 我错过了什么重要的事情?
谢谢! 我知道这个条目很长而且不是一个简单的问题。因此,我认为您阅读并更加感谢您的建设性反馈。谢谢!!!!