从ASP.NET WebForms迁移到ASP.NET MVC的建议?
ASP.NET MVC已经在该论坛上讨论了几次。我打算将几个网站从经典的ASP / ASP.NET WebForms大规模迁移到ASP.NET MVC,并且想知道你们在这两种技术方面都有哪些经验。
我所拥有的:一个典型的ASP.NET应用程序,具有紧密耦合的表示/业务逻辑,各种杂乱的ASP.NET生成的Javascript残存等等。
我想要的是:清洁ASP.NET MVC生成的不可知标记。纳夫说。
有什么需要注意的指针,技巧,窍门或者陷阱吗?
谢谢!
解决方案
回答
哇,我不确定我们是否在这里谈论迁移,区别更像是重写!
正如其他人所说的那样,MVC是构建Web应用程序的一种全新方法,大多数演示文稿代码都不会被继承。
但是,如果我们要用MVC重写,那么已经拥有的就是一个很好的原型。问题可能是很难一点一点地完成,例如MVC使用现成的URL重命名,使得来回链接相当混乱。
另一个问题是为什么?我们中的许多人都拥有庞大的遗留应用程序,希望使用最新技术,但是如果应用程序已经在工作,为什么要切换?
如果我现在正在研究一个新的应用程序,那么MVC将是一个非常强大的候选人,但是在项目后期无法获得足够的收益来切换到它。
回答
我认为这两种技术是如此不同,以至于如果我们在原始Web Form应用程序中将代码紧密耦合在一起,那么最好的方法是从选择其中一种并通过创建新的ASP.NET MVC应用程序并将其转换为开始,代码放入各自的层中这将使我们走上重用之路,以移植其他应用程序。
回答
Any pointers, tips, tricks, or gotchas to be aware of?
好吧,我认为我们可能与思考技巧和陷阱有些距离:)我确定我们知道,ASP.NET MVC不是ASP.NET的某些新版本,而是与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站点非常有用。
回答
WebForms可以与同一应用程序中的MVC控制器一起使用。默认情况下,路由不会路由对磁盘上存在的文件的请求。因此,我们可以一次开始重写网站的一小部分以使用MVC模式,而其余部分则使用WebForms。