在webforms应用程序上实现MVP模式是否更容易过渡到MVC?

时间:2011-06-02 12:09:53

标签: asp.net-mvc webforms mvp

由于MVP模式允许更多的可测试性和webforms应用程序中的一些重用,我认为这将是转移到MVC for legacy的良好的第一步(带有代码隐藏的代码的webforms,没有模式)。当我用MVP内部结构刷新自己时,它似乎并非如此。任何人都有使用此方法的经验。将MVC添加到项目并开始移植页面/视图会不会更好?

注意:我有动态注入控件的webform应用程序,将页面数量保持在4或更低(单页面webforms应用程序)。

2 个答案:

答案 0 :(得分:2)

如果需要,正确分离关注点应该会使转换变得更容易。

MVC框架仅适用于Web应用程序,而MVP可以更通用,可以用于Web表单和Windows表单 - 视图实现了演示者使用的界面,视图本身处理与导航相关的实现细节。

你说你动态插入控件。如果你这样做是为了让UI由可重用和自足的组件组成,那么这个原理对MVC不起作用 - 控制器希望对页面拥有完全的权限,并且在MVC上实现它会导致一系列子动作,部分视图和视图模型共享。

在我看来,MVP + Web窗体最适合企业Web应用程序,其中页面高度模块化,具有互连组件,MVC - 用于一般网站,其中页面对应于具有域对象的单个操作,通常是CRUD或已优化更多的阅读。

答案 1 :(得分:1)

最好直接移植到MVC,恕我直言,原因如下:

  • 学习和规划MVP部分需要花费大量的额外时间,然后迁移到MVC。如果您只是直接迁移,则涉及的学习/计划时间较少。
  • ASP.NET MVC是一个专门的框架,大多数MVP实现使用Web表单 - 因此它是一个更接近使用Web表单而不是视图的端口。

我们在工作中使用MVP。要迁移我的项目会更容易,但我宁愿为最终产品拍摄而不是使用迁移步骤......总体来说会减少整体时间并降低成本,恕我直言。

HTH。