从 ASP.NET WebForms 迁移到 ASP.NET MVC 的建议?

Suggestions for Migrating from ASP.NET WebForms to ASP.NET MVC?

提问人: 提问时间:8/18/2008 最后编辑:Community 更新时间:9/20/2008 访问量:739

问:

ASP.NET MVC 在这个论坛上已经讨论过几次了。我即将对几个网站进行大规模迁移,从经典的 ASP/ASP.NET WebForms 迁移到 ASP.NET MVC,我想知道那些在这两种技术方面有经验的人有什么建议。

我所拥有的:一个典型的 ASP.NET 应用程序,具有高度耦合的表示/业务逻辑,各种凌乱的 ASP。NET 生成的 Javascript cruft 等。

我想要的:清理 ASP.NET MVC 生成的不可知标记。“说得够多了。

有什么需要注意的提示、提示、技巧或陷阱吗?

谢谢!

asp.net ASP.NET-MVC Web窗体

评论


答:

3赞 Keith 8/18/2008 #1

哇,我不确定我们在这里谈论的是迁移——区别更像是重写!


正如其他人所说,MVC 是一种构建 Web 应用程序的全新方式——您的大部分演示代码都无法传递。

但是,如果你在MVC中重写,你已经拥有的是一个很好的原型。您的问题可能是很难一点一点地完成 - 例如,MVC 使用开箱即用的 URL 重命名,使来回链接相当混乱。

另一个问题是为什么?我们中的许多人都有庞大的遗留应用程序,我们希望使用最新的技术,但是如果您的应用程序已经在工作,为什么还要切换呢?

如果我现在正在寻找一个新的应用程序,MVC 将是一个非常强大的候选者,但是没有足够大的收益来在项目后期切换到它。

0赞 Dale Ragan 8/18/2008 #2

我的观点是,这两种技术是如此不同,以至于如果您在原始 Web 窗体应用程序中具有紧密耦合的代码,那么最好的方法是首先选择其中一种,然后通过创建一个新的 ASP.NET MVC 应用程序并将代码撕掉到它们各自的层中来转换它。这将使您走上重用以移植其他应用程序的道路。

2赞 Nathan 8/18/2008 #3

任何指针、提示、技巧或 需要注意的陷阱?

好吧,我认为你可能离考虑技巧和陷阱还有一段路要走:)我相信您已经知道,ASP.NET MVC 不是 ASP.NET 的新版本,而是与 ASP.NET 完全不同的范式,但您不会迁移,而是启动全新的开发工作来替换现有系统。因此,也许您可以在确定应用程序的要求方面占得先机,但其余的可能会从头开始重新构建。

根据您在现有代码库中描述的(非常常见的)问题,您应该考虑借此机会学习一些当前设计松散耦合系统的最佳实践。这很容易做到,因为现代“最佳实践”易于理解和实践,并且有大量的社区支持,以及高质量的开源工具来帮助这个过程。

目前,我们也正在将 ASP/ASP.NET 应用程序迁移到 ASP.NET MVC,无论如何,这是我的准备研究导致我得出的结论。

这是一篇关于使用 ASP.NET MVC的链接的帖子,但我会从阅读这篇文章开始。这篇文章表面上是关于 NHibernate(一个 ORM 工具)的,但讨论和链接是关于正确的基础,是准备将 ASP.NET 站点移植到 MVC 的结果。该文章中链接到的一些参考体系结构基于 ASP.NET MVC。这是另一篇关于NHibernate的文章,但在“最佳实践和参考应用程序”部分,列出的大多数(如果不是全部)参考应用程序也 ASP.NET MVC应用程序。参考体系结构对于快速了解如何设计最佳、可维护 ASP.NET MVC 站点非常有用。

1赞 Haacked 8/28/2008 #4

WebForms 可以在同一应用中与 MVC 控制器共存。默认情况下,路由不会路由对磁盘上存在的文件的请求。因此,您可以一次开始重写网站的一小部分以使用 MVC 模式,并使用 WebForms 保留其余部分。