我这个周末正在阅读有关 ASP.net MVP 模式的内容,似乎即使是最简单的任务也会花费太多精力,如果以 MVP 模式进行,回报似乎是在更大的项目中,但我想,如果我将会追随MVP。为什么不直接用 ASP.net MVC 来做这个项目呢?
我之所以关注 MVP 模式,是因为我注意到在我的所有 ASP.net Webform 项目中,如果我在 Web 上有很多服务器控制,则后面的代码中有很多代码仅用于事件处理所以我一直在寻找减少这种情况的方法,并遇到了 MVP 模式。
是否值得努力遵循 MVP 模式或直接切换到 ASP.net MVC?
我建议您阅读以下两个链接,以帮助您快速了解 MVP 和 MVC:
- Gil Fink 撰写的一篇很棒的博客文章,介绍了 MVP 和 MVC 的不同优势 http://beta.blogs.microsoft.co.il/blogs/gilf/archive/2009/01/16/deciding-when-to-use-asp-net-mvc-framework.aspx
- 关于 MVP 和 MVC 之间有什么区别的 StackOverFlow 问题 https://stackoverflow.com/questions/2056/what-are-mvp-and-mvc-and-what-is-the-difference
你应该切换吗?
根据您告诉我的内容,我建议您使用上面文章中提到的被动 MVP 模型。
我的主要假设是:
- 您处理 WebForms 应用程序的现有代码库
- 您需要使用第三方 .Net 控件来实现现有功能
- 您正在处理现有应用程序,但没有时间重新构建它们
- 您将来开发的任何 ASP.Net Web 应用程序,您都可以逐步应用被动 MVP 并立即获得 TDD 的好处
您的视图(代码隐藏+ aspx)本质上变得愚蠢并且只执行简单的任务:
- 获取演示者提供的信息
- 响应事件并向演示者提供返回信息
我已广泛使用此模型进行 Web 表单开发,并且我无法想象无法对我的模型和 Presenter 代码进行单元测试。一旦您建立了基本模型(不需要很长时间)并且看到了单元测试的强大功能,使用 Web 表单就会变得很有趣。
我使用的模型基于的 MVP 内容的一些链接:
- MVP 模型的简单示例 http://www.codeproject.com/KB/aspnet/EasyExampleForMVP.aspx
- ASP.Net 的简单 MVP 模型 http://www.c-sharpcorner.com/UploadFile/shivprasadk/1246712242008074334AM/12467.aspx
- ASP.Net 的 MVP 和 MVC 示例 http://www.codeproject.com/KB/aspnet/AspNetMvcMvp.aspx
我还建议您学习 MVC。
如果时间允许,将现有的应用程序移植到 MVC。这样,您唯一的重点就是了解 MVC,当您将逻辑转移到 MVC 模式中时,您会发现在 WebForms 中实现的东西,并且从未考虑过,但现在需要以另一种方式解决。比较模式并看看什么适合您的好方法。
希望这对您有所帮助,如有任何问题,请随时提出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)