Asp.net mvc MVC的大型Webforms项目

Asp.net mvc MVC的大型Webforms项目,asp.net-mvc,webforms,Asp.net Mvc,Webforms,我知道这是一个荒谬的空中楼阁的要求,但我有一个我很久以前在WebForms中启动的项目,它已经发展成为一个相对较大且稳定的业务,我想转换为MVC。然而,在过去的一年里,我一直在一家专门使用MVC的公司工作,我更喜欢这种灵活性。正如你可能猜到的,我想把我当前的项目改成MVC,但我开始认为我一直在使用WebForms,也就是说,除非有人对如何做有任何建议 我在考虑可能只是启动一个新项目并手动转换功能,但这可能需要花费很多时间,并且可能会引入新的bug,尽管只是在页面功能代码上(OO代码被分解)。坏主

我知道这是一个荒谬的空中楼阁的要求,但我有一个我很久以前在WebForms中启动的项目,它已经发展成为一个相对较大且稳定的业务,我想转换为MVC。然而,在过去的一年里,我一直在一家专门使用MVC的公司工作,我更喜欢这种灵活性。正如你可能猜到的,我想把我当前的项目改成MVC,但我开始认为我一直在使用WebForms,也就是说,除非有人对如何做有任何建议

我在考虑可能只是启动一个新项目并手动转换功能,但这可能需要花费很多时间,并且可能会引入新的bug,尽管只是在页面功能代码上(OO代码被分解)。坏主意

我知道“如果它没有坏,就不要修复它”,但我是一名开发人员,所以如果它没有坏,我就不够努力:)

对于那些因为不清楚我在问什么而试图结束这个问题的人,如何将大型Webforms项目转换为MVC?或者,我想,什么是最好的方法,或者是否有工具等等


PS:预算不是问题,因为这是一个个人开发项目。

Webforms应用程序可以在MVC内部运行,因此它确实允许您以自己的速度移动到MVC

我在Webforms中为我们公司开发了一个仪表板应用程序。当它开始变得越来越大,比我原来的计划,我决定转移到MVC,以更好地处理扩展。我按照说明将我的项目转换为MVC,并且仍然允许webforms页面显示

它工作得很好,但并不完美。我的webform的GUI(webform控件)稍微有点混乱(可折叠面板没有正确折叠,模态无法隐藏,等等)。所有这些都没有影响网站的整体功能,但看起来确实很糟糕。在接下来的3天里,我把我的大部分网页转移到MVC上,这样我就不会有图形问题了

另一件需要注意的事情是,尽管MVC和Webforms可以共享母版页,但不能将webform控件放在母版页中。如果这是必需的(就像我将脚本管理器和其他东西放在母版页中一样),您必须将母版页链接在一起以保持它们的同步。因此,MVC页面使用MVC.Master,而webform页面使用my Webforms.Master(它具有所需的所有webform控件),Webforms.Master实际上使用MVC.Master作为其母版页。到目前为止,这一切进展顺利

关于将实际的webform页面转换为MVC,这对我来说很容易,因为我的业务层已经很好地分离出来了。我所要做的就是重写(并重组!)GUI以与业务层协同工作。如果您的业务层位于webform代码后面的部分中,这将是一个更大的问题


我想我在编辑和意识流方面遇到了一个很糟糕的情况,所以我希望这是有意义的或有帮助的。我很高兴我转换成了MVC,尽管我的应用程序中仍然有一些webforms方面在愉快地工作。在大多数情况下,进行渐进转换是可行的,但这实际上取决于应用程序的模块化程度

不要试图一步一个脚印地移动它,这是行不通的

我知道“如果它没有坏,就不要修复它”,但我是一名开发人员,所以如果它没有坏,我就不够努力:)

我再说一遍:如果它没有坏,就不要修理它。说真的,不要到处乱动你根本没在做的代码。这通常是不可行的

仅移动您正在处理的部件,以及与这些部件密切相关的其他部件。如果没有bug(右…),那么选择请求的功能,移动您需要修改的代码


随着时间的推移,你将能够采取最大的步骤,因为你将有更多的细节和更多的经验。

任何接近者/下层选民愿意评论这个问题的错误/不清楚之处吗?你应该尝试缩小你的问题范围。考虑到我们对你的项目一无所知,因此不可能找到最好的转换方法。这就像问你如何把我的标准车改装成赛车一样?谁知道呢?轮胎、制动器、悬架、车身、发动机、车架、车轴等是什么。。。其余的组件。。。比如?@jfar好吧,我想这是公平的。然而,我只是征求一般性的建议,而不是关于如何做的一步一步的手册。是的,回到我的例子。“通过一次升级一个部件,你可以把一辆汽车变成一辆赛车。”。那会有帮助吗要求转换工具就可以了,或者要求你的项目中某个看起来很难转换的特定部分就可以了。你现在的问题只是泛泛的。第2段可能的重复没有意义,webforms不会对UI错误负责,这都是html/cssNo问题。我想我忘了你确实需要计划GUI转换。GUI在webforms中的工作方式可能与MVC中的工作方式不同,如果您尝试使MVC完全相同,则整个web请求工作流将不同。在开始重新编写GUI之前,先了解一下在MVC下如何工作。@jfar:GUI错误都在Webform控件中。我不知道到底是什么导致了它们,但是html和CSS在我转换之前和之后是完全相同的。它们在控件本身的运行方式上是错误的,而不是在控件的显示上。