将现有ASP.NET站点逐渐转换为MVC的最佳方法

时间:2008-10-17 11:06:39

标签: asp.net-mvc

请记住,这对我来说是新的,我可能错过了一些重要的事情。

我有一个基于ASP.NET Web应用程序的现有网站。我现在使用ASP.NET MVC进行新开发,并打算逐步用基于MVC的页面替换大量页面。

我有两个问题:

1)我需要逐渐替换页面,因为我无法一次转换所有内容。 2)如果可能,应保留现有的(物理文件的)URL。

我看到它的方式,我有以下选择:

1)在网站的根目录中创建一个全新的MVC Web应用程序,然后将现有的HTML / ASPX / ASMX / ...页面包含在其中。这样,路由始终相对于网站的根目录。

2)修改现有的Global.asax,Web.config,Default.aspx(依此类推)以切换MVC处理程序以进行路由,然后将我的MVC应用程序发布到子文件夹。

最简单的方法是什么,我错过了什么?

谢谢, 劳伦

4 个答案:

答案 0 :(得分:10)

和你一样,我正在解决同样的问题。我遇到的一些事情我在这里发布了https://stackoverflow.com/users/84825/mouffette,它们主要与SETUP相关。最好的办法是启动一个新的MVC项目,并将文件和结构与现有的ASP.NET应用程序进行比较。如果有疑问,只需逐行移动和web.config,最终你会得到它; - )

一旦你有管道工作,那么你可以专注于MVC,它只是并排工作。

这些链接也有所帮助:

http://media.wiley.com/assets/1539/15/professionalaspnet35mvc_chapter13.pdf http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf

你已经找到了最好的网站... stackoverflow。

答案 1 :(得分:2)

Scott Hanselman撰写了一篇很好的博客文章,讨论如何将MVC与Web窗体和其他ASP.NET技术相结合。 http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

答案 2 :(得分:1)

这实际上取决于您现有的Web应用程序的状态。如果它主要只是代码隐藏的业务逻辑,那么你可能最好重写一次。如果您的数据对象模型和业务层与代码隐藏的代码分离非常不错,那么您就可以在此过渡中领先于游戏。不幸的是,这是一个非常难以回答的问题,并且根据您当前的状态是相当主观的。

“经典的ASP.Net网站” - 听起来很奇怪。

答案 3 :(得分:0)

我认为这个问题措辞错误,因为这不是我的意思。

我的意思是:我如何在现有的“经典”ASP.NET网站中集成基于MVC的页面(是的,我知道这听起来很奇怪:))。我最终将替换整个内容(如果它意味着重写一些页面,那就这样)但我想已经添加了基于MVC的新内容。

我找到了有关如何创建新MVC应用程序的指导,甚至如何在其中集成基于Web表单的新内容,但更不用说将应用程序逐渐移植到MVC。

我找到了这个链接 http://blog.eworldui.net/post/2008/05/ASPNET-MVC---Living-in-a-Web-Forms-World.aspx

这很有希望,但听起来像是工作的一部分。

具体来说,我正在寻找在现有ASP.NET应用程序中添加新的基于MVC的内容的步骤,并且仍然保持旧内容像以前一样工作。