我知道此问题之前已被问过,但差不多2年过去了,业务要求也有所不同。
我们正在开发一个中型应用程序,并分为哪种技术用于前端, WPF或ASP.Net MVC 3 ? 我们不是一家IT公司,而是一家拥有IT部门的商业公司,可以外包编程任务,而业务核心应该留在公司内部。我确实花了很多时间在互联网上搜索答案,我部分地成功了,但由于问题非常重要,我想我也在这里问。 当然,在有人能够回答这个问题之前,我需要为应用程序指定要求和环境:
基础设施: 我们有一个纯粹的Windows环境。每个用户都将安装Windows XP SP3(当前)或未来版本的Windows(如果我们从XP跳到Windows 8仍有待观察,但我们假设用户将使用Windows 7)。 我们的目标是面向服务的体系结构,这意味着我们只想在客户端计算机上运行/显示真正需要的东西。这一点尤为重要,因为数据库远离客户(美国/欧洲)。我们计划在用户系统(浏览器或WPF),应用程序和数据库服务器之间使用WCF进行跨机器通信。
我们预计主要用户群大约为30+,但由于我们是一家成长型公司,因此不应该有任何问题扩展到100个用户。用户遍布全球三个主要地点,同时我们也希望选择支持较小的位置。所有这些位置都连接到同一个Intranet。
用户界面体验 新系统应该取代现有的桌面应用程序系统(Winform)。屏幕数量可能在100左右,有许多标签,组合框,图形。我喜欢称之为专家系统b / c我们希望用户每天花费多个小时,用户需要快速与之交互(多次点击,多个对话框弹出和关闭等)和应用程序将包含许多业务逻辑(主要是数学上的)。 需要与Excel进行一些有限的交互。在此阶段,仅将.xlsx文件中的格式化数据导入应用程序,以便处理数据。我们希望经常这样。 从Excel或其他应用程序复制和粘贴到我们的新应用程序是一项要求(没有图片,只有文本)。 我们将使用供应商控件库来获得更丰富的UI体验。 用户习惯于桌面应用程序的日常工作(当前系统/ Excel等)。 平板电脑或智能手机支持不是必需的。
部署 如果我们要使用WPF应用程序,我们可能会将其部署在CITRIX中或使用Click-Once。
这是两个对立派系的论据:
专业网站: 部署更容易。所有要求都可以直接在Web应用程序中完成,如果不是,我们使用ActiveX或为缺少的部分创建单独的桌面应用程序。此外,IT世界将停止使用纯桌面应用程序,一切都转向HTML 5(Windows 8)。
Pro WPF: Web应用程序使用许多不同的技术,这使得开发和维护(HTML,ASP.NET,CSS,JavaScript,JQuery,AJAX)变得更加困难和昂贵。 Web应用程序存在重大缺陷,主要是
点#1也令人担忧,因为浏览器更加失控,因为公司(非专家系统)中的其他网络应用程序被使用,我们担心与新应用程序的利益冲突(例如,我们必须使用浏览器所有应用程序运行/渲染正常的版本。
我知道这里没有黑白,但我会对以下内容感兴趣:
谁处于类似情况,他们是如何解决的? (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在哪里?
其他想法? 我错过了什么重要的事情?
谢谢! 我知道这个条目很长并且不是一个简单的问题。因此,我认为您阅读并感谢您更多的建设性反馈。谢谢!!!!
答案 0 :(得分:3)
我不会在WPF中构建业务应用程序,尤其是,如果您的目标是将其持续5年以上。 Silverlight现在在sunset phase - 现在Win8应用程序正在押注JavaScript和HTML5,尽管您正确地注意到HTML5支持并非在所有浏览器和平台上都是通用的(请参阅http://caniuse.com/)
让我试着解决您上面提到的一些问题,希望能说服您构建一个网络应用程序: