ASP.net Model View Presenter值得花时间吗?

时间:2009-05-04 02:12:20

标签: asp.net asp.net-mvc mvp

我正在阅读本周末的ASP.net MVP模式,看起来即使是最简单的任务也需要付出太多努力,如果在MVP模式中付出似乎是在更大的项目,但我想自己是否我要跟随MVP。为什么不在ASP.net MVC中进行项目?

我正在考虑MVP模式的原因是因为我注意到在我所有的ASP.net Webform项目中,如果我有很多服务器控制,那么代码背后有很多代码用于事件处理在网络表单上,所以我正在寻找减少这种情况并遇到MVP模式的方法。

是否值得努力遵循MVP模式或只是切换到ASP.net MVC?

5 个答案:

答案 0 :(得分:20)

我建议您阅读以下两个链接,以加快MVP和MVC的速度:

你应该转换吗?
根据你告诉我的内容,我建议你使用上面文章中提到的被动式MVP模型。

我的主要假设是:

  1. 您处理WebForms应用程序的现有代码库
  2. 您需要使用ThirdParty .Net控件来实现现有功能
  3. 您正在使用现有应用,没有时间重新构建它们
  4. 您将来使用的任何ASP.Net Web Apps,您可以逐步应用被动MVP并立即获得TDD的好处
  5. 你的观点(代码隐藏+ aspx)基本上变得愚蠢,只是执行简单的任务:

    • 获取演示者提供的信息
    • 响应事件并将信息提供给演示者

    我已经将这个模型广泛用于Web窗体开发,我无法想象无法对我的模型和Presenter代码进行单元测试。一旦建立了不需要很长时间并且看到单元测试功能的基础模型,使用Web表单就会变得愉快。

    我使用的模型的MVP内容的一些链接基于:

    我还建议你学习MVC。
    如果时间允许,请使用现有应用程序并将其移植到MVC。这样你唯一的关注点就是了解MVC,当你将逻辑转换为MVC模式时,你会发现你在WebForms中实现的东西并且从未考虑过,但现在需要以另一种方式解决。比较模式的好方法,看看哪些适合你。

    希望这有帮助,随时提出任何问题。

答案 1 :(得分:16)

如果你开始一个新项目,那么ASP.net MVC是一个更好的选择。但是如果你只是想像你刚才所说的那样重构一个现有的项目,那么MVP是可选的,因为没有简单的方法将这些web-forms代码转换为MVC。

答案 2 :(得分:3)

在我看来,推出新应用程序的理想方式是MVC。但是,如果你有很多代码已经在使用WebForms,那么MVP模式就是你的选择。

答案 3 :(得分:3)

如果它是一个新项目,我会去Asp.Net MVC,但我同意,MVP可能是传统webforms项目的一个很好的模式。

以下是我博客的一个例子: http://www.unit-testing.net/CurrentArticle/How-To-Use-Model-View-Presenter-With-AspNet-WebForms.html

答案 4 :(得分:2)

我的个人意见是,如果代码背后有很多代码,除了采用M-V-P之外,还有其他方法可以减少它,重构并使其可测试。

如果您的页面有广泛的用户交互(例如按钮/链接启用/禁用,面板和控件出现/消失),M-V-P将是值得的麻烦。

相关问题