代码之家  ›  专栏  ›  技术社区  ›  Jason

MVC的大型Webforms项目[已关闭]

  •  0
  • Jason  · 技术社区  · 14 年前

    我知道这是一个荒谬的天方夜谭的要求,但我有一个项目,我开始了很久以前在WebForms,已成长为一个相对庞大和稳定的业务,我想转换成MVC。然而,在过去的一年里,我一直在一家专门使用MVC的公司工作,我更喜欢这种灵活性。正如你可能猜到的,我想把我目前的项目改成MVC,但我开始觉得我被WebForms束缚住了,也就是说,除非有人对如何做到这一点有任何建议。

    我想也许只是开始一个新的项目并手动转换功能,但这可能需要很长时间,而且可能会引入新的bug,尽管只是在页面上的功能代码(OO代码被破坏了)。坏主意?

    因为不清楚我在问什么而试图结束这个问题的人, 如何将大型Webforms项目转换为MVC?

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   KallDrexx    14 年前

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

    here 以便将我的项目转换为MVC并仍然允许显示webforms页面。

    它工作得很好,但并不完美。我的webform的GUI(webform控件)有点混乱(可折叠的面板不能正确折叠,模式不能隐藏等等)。这些都不影响网站的整体功能,但看起来确实很糟糕。最后我花了3天的时间把我大部分的web表单页面移到MVC上,所以我没有图形问题。

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

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

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

        2
  •  0
  •   eglasius    14 年前

    别想一步一个脚印地把它挪动,这样不行。

    我再说一遍:如果它没坏,就别修理它。说真的,不要到处移动你甚至都没在处理的代码。这通常是不可行的。

    只移动你正在处理的部分,只有其他与之密切相关的部分。如果没有bug(对…),那么选择请求的功能,移动需要为该功能修改的代码。

    随着时间的推移,你将能够采取最大的步骤,只是因为你将有更多的作品到位,也有更多的经验。