我应该将我的网站切换到ASP.NET MVC吗?

时间:2015-09-17 07:32:50

标签: asp.net asp.net-mvc

我有一个用ASP.NET构建的网站。这是一个可以处理大量数据的商业网站。

我遇到了很多问题,尤其是速度和效果问题,所以我用ajax做了我能做到的事情,并且速度大大提高了。

我想知道是否应该将网站切换到ASP.NET MVC?

我不太了解ASP.NET MVC,所以我想知道是否应该投资它,主要问题是:ASP.NET MVC比常规ASP.NET更快更有效吗? / p>

5 个答案:

答案 0 :(得分:4)

我相信ASP.NET MVC(如果没有,已经成为)使用ASP.NET堆栈开发网站的主流方式。在过去几年中,对ASP.NET WebForms的重视程度较低,暗示MVC是启动新项目的明智选择(注意:WebForms仍然是一些开发人员的热门选择,但我并不是说永远不要使用它。它还有一个地方。)

关于迁移现有的ASP.NET WebForms应用程序,我会有点谨慎。除非你有非常非常好的理由,否则不要转向其他技术。根据代码量,设计等因素,将ASP.NET WebForms项目转换为ASP.NET MVC可能需要花费很多精力。

在您的情况下,您提到了性能问题,这使您考虑转向ASP.NET MVC。我会更多地了解您的网站未按预期执行的原因。使用分析器来测量执行时间最长的代码路径。有很多使用ASP.NET WebForms构建的站点可以大规模执行,所以我不会错误地转移到另一种技术来解决性能问题。

答案 1 :(得分:2)

这取决于您当前的问题所在。

  • 你应该学习MVC - 绝对是。
  • 你应该在MVC中编写新的应用程序 - 当然。
  • 您是否应该迁移旧应用程序 - 依赖。

当前应用程序的架构是什么?

您需要分配多少时间/资源才能重写和消防现有应用?

是否存在明确的数据或中间层,或者是否存在于每个页面代码中的数据访问?编写了许多应用程序,以便前端可以轻松交换或从其他应用程序调用(例如通过API),但许多webforms应用程序(并非所有)都是在没有这些考虑因素的情况下编写的,因此它不会是交换出来的,而是完全重写应用程序。

除了“它有点慢”之外,目前的问题是什么?例如,我已经看到一个应用程序将整个数据模型加载到每个页面的内存中 - 在这种情况下简单地改变前端将没有区别,因为缓慢的原因是数据加载。更改架构以仅加载所需的内容会显着提高速度。

使用MVC可以获得的改进不一定是您可能期望的业务级别。有很多网站会详细介绍这些内容,以下是一些可以帮助您的网站:

  • MVC在输出中生成(更多)更清晰的HTML - 因此页面更易于开发/维护,更容易在javascript中开发UI交互。
  • MVC有一个大大改进的管道,可以挂钩,例如添加动作过滤器。
  • IoC / DI在MVC中非常容易
  • 将模型/控制器代码与视图html
  • 分开

您的应用程序用户不会关心这些内容。

答案 2 :(得分:0)

我与我的一个客户有同样的情况,在学习了MEAN堆栈并与另一家向南希过渡的公司合作之后。我建议用Nancy做一个REST API,用Angular或其他Javascript前端做一个纯粹的前端。这样可以更快地响应和灵活。此外,如果您希望将API公开给其他应用程序,它将为您提供更多灵活性。

我试图从Web Forms迁移到MVC,当时对我来说并不容易。

答案 3 :(得分:0)

如果你不想转移到asp.net mvc,你可以使用Asp.net Web表单,更多的ajax和更少的回发以及更少的视图状态使用。

另一方面,Asp.net MVC非常适合使用轻量级页面和功能来融合客户端基于ajax的解决方案。它的架构支持扩展能力。

答案 4 :(得分:0)

我认为你绝对应该花时间学习MVC,因为它正在成为一种更有市场的技能,未来的项目更有可能要求它。

关于更快更有效,它有点。首先,WebForms有很多开销,以便具有类似Windows窗体的行为(坦率地说,这从来就不适合网页)。其次,MVC倾向于在没有视图状态或长ID的情况下呈现更清晰的HTML。所以这两个项目可以让它更快。 (当然,如果您遇到速度问题,还需要仔细查看主机服务器。)

关于重写当前项目以使用MVC,这是一个更难以回答的问题。 WebForms仍然可以运行,并且可能会在未来许多年内得到Visual Studio的支持。根据您的项目,重写它可能是一项代价高昂的任务。所以你需要决定它是否值得。也就是说,我希望在时间允许的情况下使用MVC重写我的所有webforms网站,尽管部分原因只是为了更新外观并使它们对移动设备更具响应性。