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

Posted

技术标签:

【中文标题】从 ASP.NET WebForms 迁移到 ASP.NET MVC 的建议?【英文标题】:Suggestions for Migrating from ASP.NET WebForms to ASP.NET MVC? 【发布时间】:2010-09-06 00:51:38 【问题描述】:

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

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

我想要什么:干净的 ASP.NET MVC 生成的不可知标记。 '纳夫说。

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

谢谢!

【问题讨论】:

【参考方案1】:

哇,我不确定我们是否在这里谈论迁移 - 不同之处更像是重写!


正如其他人所说,MVC 是一种构建 Web 应用程序的全新方式 - 您的大部分演示文稿代码都不会继承。

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

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

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

【讨论】:

【参考方案2】:

任何提示、提示、技巧或 需要注意的问题?

嗯,我认为你可能离思考技巧和陷阱还有一点距离:) 我相信你知道,ASP.NET MVC 不是 ASP.NET 的某个新版本,而是一个完全与 ASP.NET 不同的范例,您不会迁移,您将启动全新的开发工作来替换现有系统。因此,也许您可​​以帮助确定应用程序的需求,但其余的可能会从头开始重新构建。

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

我们此时也在将 ASP/ASP.NET 应用程序迁移到 ASP.NET MVC,无论如何,这是我的预备研究得出的结论。

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于从 ASP.NET WebForms 迁移到 ASP.NET MVC 的建议?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.Net WebForms + Paypal 表单

ASP.NET WebForms Authentication Logout, Cookie 仍可用于访问站点

ASP.NET WebForms:Repeater 控件中的图像尺寸模式

ajax 在 asp.net webforms 中返回 json 对象的身份验证失败

如何将 Perl 与 ASP.NET Webforms 集成?

将 ASP.Net MVC 与 WebForms 相结合