17

我本周末正在阅读有关 ASP.net MVP 模式的信息,如果以 MVP 模式执行,即使是最简单的任务也似乎需要付出太多的努力,回报似乎是在更大的项目中,但我想如果我是将跟随MVP。为什么不在 ASP.net MVC 中做项目?

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

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

4

5 回答 5

20

我建议阅读以下两个链接,让您快速了解 MVP 和 MVC:

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

我的主要假设是:

  1. 您正在处理现有的 WebForms 应用程序代码库
  2. 您需要为现有功能使用第三方 .Net 控件
  3. 您正在处理现有应用程序并且没有时间重新构建它们
  4. 您将来使用的任何 ASP.Net Web 应用程序,您都可以逐步应用被动 MVP 并立即获得 TDD 的好处

您的视图(代码隐藏 + aspx)本质上变得愚蠢,只执行简单的任务:

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

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

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

我还建议您学习 MVC。
在时间允许的情况下,将现有的 App 移植到 MVC。这样,您唯一的重点就是了解 MVC,当您将逻辑移入 MVC 模式时,您会发现您在 WebForms 中实现的东西,并且从未考虑过,但现在需要以另一种方式解决。比较模式并查看适合您的方法的好方法。

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

于 2009-05-05T12:10:14.427 回答
15

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

于 2009-05-04T02:22:05.707 回答
3

在我看来,开发新应用程序的理想方式是 MVC。但是,如果您有很多代码已经在使用 WebForms,那么 MVP 模式就是要走的路。

于 2009-05-04T02:22:19.853 回答
3

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

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

于 2012-03-06T05:26:18.110 回答
2

我个人的看法是,如果后面的代码中有很多代码,除了采用 MVP 之外,还有其他方法可以瘦身、重构并使其可测试。

如果您的页面具有广泛的用户交互(如按钮/链接启用/禁用、面板和控件出现/消失),MVP 将是值得的。

于 2009-05-04T02:19:18.940 回答