用于复杂Web应用程序的ASP Webforms或MVC

时间:2010-11-25 04:37:45

标签: asp.net-mvc webforms

我已经阅读了关于webforms与MVC的每个问题/答案。但没有人解决我要问的问题。

我们是一个小型开发团队(3人),我们有一个类似于Crystal Reports的遗留应用程序。

我们需要将此VB6应用转换为基于网络的应用。原因?它是用VB6编写的,对VB6的支持将在Windows 8中逐步淘汰。该应用程序将类似于Crystal Reports / Google Docs,成千上万的用户将使用该Web应用程序从大型数据库生成复杂的报告。将根据查询的数据动态生成图表和图形。然后,可以将所有报告导出为PDF和其他受支持的文档文件类型。可能的功能是使用此数据创建Word文档或至少注释PDF报告。文件/内容管理后端也是存储和搜索所必需的。

好的 - 很明显它是一个相当复杂的Web应用程序,带有大量的数据库访问/查询。前端也需要相当尖锐(虽然gridviews不是必须的)。

约束: 1.上市时间相对较短(6个月到1年)

  1. 技术应该在未来10到20年内持续或可用 - 我们不能永远地在这个应用程序上工作,每当新技术取代旧技术时不得不不断更新和重写它。 HTML将持续超过这个时间,但是ASP.NET?

  2. 用户端性能需要相对较快。它不一定要快速起泡;但是用户开始抱怨的时间不应该太长(响应时间超过2秒)。 (即ViewState不是一个概率,如果它不超过100Kb)。

  3. 请回答我的问题:

    1. 所以我的问题是:我们选择Webforms还是MVC?

    2. MVC听起来很有吸引力,但MVC是STATELESS。你认为这个应用程序需要保持状态还是没有它?或者是否可以在MVC中实现状态(困惑)?

    3. 一些用户在政府部门,并且出于安全原因(由他们的IT管理员)限制了笔记本电脑 - 因此Javascript,对于大量用户将被关闭。这意味着JQuery可能不是可能的技术。有没有办法适应Javascript和非Javascript浏览器?

    4. 提前致谢。

      萨姆

4 个答案:

答案 0 :(得分:2)

使用网络表单

原因如下:

1 - 更快的开发时间(快速应用程序开发) - 如您的时间限制所述

2 - 对于复杂的图表/报表/网格,您必须使用ASP.NET MVC(或使用其他人创建的帮助程序)自行编写。但是使用Web Forms,您拥有丰富的服务器控件(以及Telerik等产品)。

所以回答你的问题:

  1. Web表单 - 见上文。
  2. 我们无法回答 - 我们不知道您的应用程序将如何运作。 MVC本身并不是无状态的,它是无状态的,因为它不使用ViewState。但你仍然可以使用Session这样的东西。
  3. JavaScript是客户端的,与Web Forms和MVC无关。您必须满足没有JavaScript的场景(最小化AJAX工作,效果等)。
  4. 你提到“速度需要快”。好吧,如果ViewState出现问题,请将其关闭!当你可以在控件或页面级别关闭它时,会让我很恼火的人说“我讨厌ViewState,它让页面变慢”。

    BTW - 我绝不是Web Forms的倡导者 - 我其实更喜欢ASP.NET MVC。但是根据我在你的问题中所读到的内容,我会使用Web Forms。

答案 1 :(得分:1)

  1. 这是完全主观的;使用你想要的任何一个。我个人更喜欢MVC,但使用你想要的。
  2. 无论客户端或服务器是什么,HTTP都是无状态的。也就是说,所有 Web框架都有一些技巧让它看起来很有状态。 MVC在这里是一个例外。它只是不使用ASP.NET Webforms所做的相同技巧。
  3. 是。检测他们是否启用了Javascript,并确保提供备用的,仅限服务器的方式来执行相同的功能。

答案 2 :(得分:1)

<强> MVC

  1. 我认为两者都是可行的选择,但我个人会选择MVC,考虑到MVC 3的候选版本已经出来,并且有一些很棒的新功能。我会选择MVC,因为一旦项目完成,它将具有极强的可维护性和可扩展性。这听起来对你很有帮助,因为你的项目 看起来非常复杂。然而,相反,使用MVC而不是WebForms需要更长的时间(至少从我的经验和阅读中),因此,如果您认为您的团队确实需要满足您提到的截止日期,那么可以选择WebForms。

  2. 如果您希望继续使用MVC,其无国籍性质应该对您的项目没有任何问题,至少,不是我所知道的。

  3. 虽然关闭JS可能会让人感到有些恼火,但是WF和MVC必须同样处理问题,并且应该对你的最终决定没有影响。

答案 3 :(得分:-1)

使用webforms,你可以随时将一些工作分配到印度,他们多年来一直在使用webforms,如果你遇到速度问题,那么让他们通过在组件级别上使用viewstate来解决它们

虽然真的

Rick Kiessig的超快asp.net解决了99%的网页形式速度问题,如果你有那本书,那么webforms就没那么明白了

mvc是一个微软的分支,因为许多网络用户无法优化视图状态

现在你可以关闭每页或每个组件的视图状态,或者只是通过电子邮件向印度发送电子邮件,然后说'加速,某种程度'。