我有一个用ASP.NET构建的网站。这是一个可以处理大量数据的商业网站。
我遇到了很多问题,尤其是速度和效果问题,所以我用ajax做了我能做到的事情,并且速度大大提高了。
我想知道是否应该将网站切换到ASP.NET MVC?
我不太了解ASP.NET MVC,所以我想知道是否应该投资它,主要问题是:ASP.NET MVC比常规ASP.NET更快更有效吗? / p>
答案 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)
这取决于您当前的问题所在。
当前应用程序的架构是什么?
您需要分配多少时间/资源才能重写和消防现有应用?
是否存在明确的数据或中间层,或者是否存在于每个页面代码中的数据访问?编写了许多应用程序,以便前端可以轻松交换或从其他应用程序调用(例如通过API),但许多webforms应用程序(并非所有)都是在没有这些考虑因素的情况下编写的,因此它不会是交换出来的,而是完全重写应用程序。
除了“它有点慢”之外,目前的问题是什么?例如,我已经看到一个应用程序将整个数据模型加载到每个页面的内存中 - 在这种情况下简单地改变前端将没有区别,因为缓慢的原因是数据加载。更改架构以仅加载所需的内容会显着提高速度。
使用MVC可以获得的改进不一定是您可能期望的业务级别。有很多网站会详细介绍这些内容,以下是一些可以帮助您的网站:
您的应用程序用户不会关心这些内容。
答案 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网站,尽管部分原因只是为了更新外观并使它们对移动设备更具响应性。