【问题标题】:ASP.NET MVP as a symbiosis of ASP.NET Webforms and ASP.NET MVCASP.NET MVP 作为 ASP.NET Webforms 和 ASP.NET MVC 的共生体
【发布时间】:2011-03-14 08:27:48
【问题描述】:
我已经使用 ASP.NET Webforms 开发 Web 应用程序已有几年了,我仍然喜欢它,首先是因为它提供的 RAD 可能性。两年以来,ASP.NET MVC 现已成为经典 ASP.NET 的直接竞争对手。不知何故,我不想放弃我所有的 Webforms 经验并转向 ASP.NET MVC。一个原因是,我也处理桌面应用程序开发,而 ASP.NET Webforms 与它更相似。
现在我发现还有第三种 ASP.NET 开发方法:ASP.NET MVP:
http://webformsmvp.com/
有人已经体验过这第三种类型的 ASP.NET 了吗?
这分别是微软官方的做法,微软支持吗?
值得更详细地看一下吗?
它是 ASP.NET 两个“世界”的有前途的组合吗?
【问题讨论】:
标签:
asp.net
asp.net-mvc
webforms
mvp
【解决方案1】:
这显然是一种主观意见,取决于您要解决的特定问题。
如果您有一个简单的应用程序,不需要大量的持续维护,并且在快速展示结果很重要的地方,我认为使用 MVP 正是因为您提到的原因 - 利用团队技能和辐射度。
对于更复杂的事情,我认为这不是一个好主意。正如您所提到的,MVP 类似于桌面 GUI 模型。 ASP.NET MVC 专为 Web 的请求-响应特性而设计。视图架构,特别是引入了 EditorFor 和 DisplayFor,经过优化,可用作从模型中提取数据的模板。
从可测试性的角度来看,MVC 在允许您对小型组件进行单元测试方面做得非常好。我认为你会失去很多使用 MVP 的好处,因为视图和演示者的耦合更加紧密。本质上,MVC 采用了“Humble Dialog”模式的概念,该模式旨在最大限度地减少 UI 代码,因为它本质上是不可测试的。 (ASP.NET) MVC 还包含 Web,生成干净的 HTML,设计为 css 样式并使用 javascript (jquery) 增强。我认为 MVP 鼓励您将视图视为“小部件”的画布,这似乎总是最终会产生您必须与之抗争的标记。
最后,我认为,每当您使用旨在支持一种方法 (MVC) 并稍微改变它 (MVP) 的平台时,您最终都会逆流而上。您无法利用围绕主流方法自然建立的建议、文章和技术开发。例如,我个人宁愿使用带有 MVC 的替代视图引擎来代替 WebForms 引擎。但我没有采取行动,因为它是非标准的。有时“标准”会更好。