我正在阅读本周末的ASP.net MVP模式,看起来即使是最简单的任务也需要付出太多努力,如果在MVP模式中付出似乎是在更大的项目,但我想自己是否我要跟随MVP。为什么不在ASP.net MVC中进行项目?
我正在考虑MVP模式的原因是因为我注意到在我所有的ASP.net Webform项目中,如果我有很多服务器控制,那么代码背后有很多代码用于事件处理在网络表单上,所以我正在寻找减少这种情况并遇到MVP模式的方法。
是否值得努力遵循MVP模式或只是切换到ASP.net MVC?
答案 0 :(得分:20)
我建议您阅读以下两个链接,以加快MVP和MVC的速度:
你应该转换吗?
根据你告诉我的内容,我建议你使用上面文章中提到的被动式MVP模型。
我的主要假设是:
你的观点(代码隐藏+ 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将是值得的麻烦。