【发布时间】: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应用程序存在重大缺陷,主要是
- 考虑到各种浏览器和版本。
- 屏幕分辨率
- 图形不支持硬件(业务图、200 多个点的点图)
- 对本地硬件的访问受限(导入文件、创建文件、打印)
- 键盘快捷键
第 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