能否将一个庞大的WebForms网站迁移到MVC?

4

这是一个完整的大学网站。

其中一些旧页面使用经典ASP,而所有较新的页面都是使用C#代码后端的ASP.NET。我们目前正在运行ASP.NET 4,因此我们将迁移到MVC 3。

那么,有一些问题;

  • 我们应该如何进行网站迁移?我已经了解了一些相关知识,似乎可以同时使用MVC和Web Forms,但这样做安全吗?

  • 文件夹结构...我们的结构很大而且复杂。考虑到我们的庞大设置,采用混合设置是否安全?

  • 这真的值得吗?最近我一直在研究和阅读MVC,并将其用于个人网站,但这将是一个巨大的变化。

  • 有人能给我链接几个大型MVC项目的示例(包含源代码!)供参考吗?我很想看看源代码。

  • 这种改变需要多长时间?


1
是的,这取决于情况。你最好创建一个新的MVC网站,并逐步将旧网站的内容移动过去。在同一个网站中运行经典ASP、WebForms和MVC理论上是可能的,但会增加很高的复杂性。 - jrummell
是可能的,没错。只要记住,这可能是一座不值得攀登的大山,除非你能将其分解成更易处理的部分。我建议你尝试迁移现有项目中对影响最小的某些内容,看看它是否能与其他部分集成并“与他人玩得好”。请注意,“least amount”指的是“最小量”。 - Brian
也许你应该保持当前项目的运行状态,只是用新的MVC项目处理一些部分。这样,你可以逐步将部分内容移动到新项目中,而不会弄乱你的两个项目。我以前曾经尝试过在同一个项目中同时使用两种类型,但失败了,不建议这样做。 - cheesemacfly
2个回答

3
这基本上相当于对网站进行全面重写。任何少于此的努力都是掩饰。即使您重新使用所有网页并几乎不使用MVC框架的功能,回归测试本身也足以构成一个完整的项目。
如果您已经决定重新编写应用程序,那么这是值得的。如果你不打算这样做,我就不羡慕你了。

假设我们真的想这样做。该网站的大部分内容都是一堆文本、表单和图片。典型的大学网站。将每个表单转换为等效的MVC视图需要多长时间?也就是说,如果原始表单需要一个小时制作,那么我应该预计新表单需要更少的时间(至少在我更深入了解之后),还是需要相同的时间?谢谢! - Stachu
我不知道该如何回答这个问题,因为它实际上取决于你想要投入多少努力。你必须清理HTML吗?将其从表格布局站点转换?您是否已经设置好了干净的站点模板,还是需要从头开始创建?你写.NET代码有多快?等等。 - Katie Kilian
你最好的选择是先做一个原型。试着将其中一页转换成中文,然后通过整个网站进行推广。然后将得到的数字乘以三。这可能会让你接近总体工作量。 - Ryan Bennett

1
这个问题相当模糊!是的,这是可能的。请找一个应用程序架构师来处理当前网站,并制定过渡到MVC的计划。不过,我认为混合方法论是一个相当糟糕的想法。两者之间的边界往往存在粗糙的边缘,在现有员工习惯于WebForms的情况下,你将不可避免地将WebForm实践“泄漏”到你的MVC网站中。要么承诺改变,要么干脆不做。
这种改变值得吗?也许!摆脱经典ASP是一个不错的选择,所以有一点支持。其他事情也浮现在脑海中:你当前网站的痛点是什么?它不稳定吗?你的经典ASP是否陷入了大量的包含文件中?网站有多模块化?你觉得你的员工能够接受MVC的培训吗?你有多少预算来进行过渡?你有多少时间表?如果失败了,你的组织会损失多少钱?失去多少信誉?如果你失败了,你为你的竞争对手创造了什么样的机会?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接