用于专业业务应用程序的UI的WPF或ASP.NET MVC?

时间:2012-04-09 08:35:19

标签: wpf asp.net-mvc architecture

我知道此问题之前已被问过,但差不多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. 考虑各种浏览器和版本。
  2. 屏幕分辨率
  3. 没有图形硬件支持(业务图表,200+点的点图)
  4. 限制访问本地硬件(导入文件,创建文件,打印)
  5. 键盘快捷键
  6. 点#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在哪里?

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

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

1 个答案:

答案 0 :(得分:3)

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

让我试着解决您上面提到的一些问题,希望能说服您构建一个网络应用程序:

  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,都必须构建它们