这个周末我正在阅读有关 ASP.net MVP 模式的内容,似乎即使是最简单的任务也会花费太多精力,如果以 MVP 模式进行,回报似乎是在更大的项目中,但我想,如果我将会追随MVP。为什么不直接用 ASP.net MVC 来做这个项目呢?

我之所以关注 MVP 模式,是因为我注意到在我的所有 ASP.net Webform 项目中,如果我在 Web 上有很多服务器控制,则后面的代码中有很多代码仅用于事件处理所以我一直在寻找减少这种情况的方法,并遇到了 MVP 模式。

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

有帮助吗?

解决方案

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

其他提示

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

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

我的主要假设是:

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

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

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

我已广泛使用此模型进行 Web 表单开发,并且我无法想象无法对我的模型和 Presenter 代码进行单元测试。一旦您建立了基本模型(不需要很长时间)并且看到了单元测试的强大功能,使用 Web 表单就会变得很有趣。

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

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

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

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

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

以下是我博客的一个例子: http:// www 。单元-testing.net / CurrentArticle /操作方法 - 使用 - 模型 - 视图 - 演示 - 随着-ASPNET,WebForms.html

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top