ASP.NET MVP 作为 ASP.NET Webforms 和 ASP.NET MVC 的共生体

标签 asp.net asp.net-mvc webforms mvp

我已经使用 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?

这是 Microsoft 的官方方法吗?Microsoft 是否支持它?

是否值得更详细地了解一下?

它是两个 ASP.NET“世界”的有前途的组合吗?

最佳答案

这显然是一个主观意见,它取决于您要解决的特定问题。

如果您有一个简单的应用程序,不需要大量的持续维护,并且展示快速结果很重要,我认为出于您提到的原因使用 MVP 是有意义的 - 利用团队技能和拉德。

对于任何更复杂的事情,我认为这不是一个好主意。正如您提到的,MVP 类似于桌面 GUI 模型; ASP.NET MVC 专为 Web 的请求-响应特性而设计。 View 架构,特别是引入了 EditorFor 和 DisplayFor,针对用作从模型中提取数据的模板进行了优化。

从可测试性的角度来看,MVC 在允许您对小组件进行单元测试方面做得非常好。我认为你会失去很多 MVP 的好处,因为 View 和演示者的耦合更紧密。从本质上讲,MVC 采用了“简明对话”模式的概念,该模式力求最小化 UI 代码,因为它本质上是不可测试的。 (ASP.NET) MVC 还包含网络,生成干净的 HTML,设计为 css 样式并使用 javascript (jquery) 进行扩充。我认为 MVP 鼓励您将 View 视为“小部件”的 Canvas ,这似乎总是最终会产生您必须与之抗争的标记。

最后,我认为每当您使用旨在支持一种方法 (MVC) 并略微改变它 (MVP) 的平台时,您最终都会逆流而上。您无法利用自然而然地围绕主流方法建立起来的建议、文章和技术开发。例如,就我个人而言,我宁愿使用带有 MVC 的替代 View 引擎来代替 WebForms 引擎。但我没有采取行动,因为它不符合标准。有时“标准”会更好。

关于ASP.NET MVP 作为 ASP.NET Webforms 和 ASP.NET MVC 的共生体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3220953/

相关文章:

c# - 如何在asp.net 2012中给出相对路径

脚本标签内的asp.net智能感知<%

asp.net - 使用 WebForms 进行简单成员(member)制

asp.net-mvc - MVC 5 Web 属性路由不起作用

javascript - 如何自定义 MadMimi 嵌入式电子邮件表单?

asp.net - Ajax 在 ASP.NET 3.5 中启用网格排序和分页

c# - 如何从目录中获取子文件夹中的文件

c# - Asp.net Core azure Web 应用程序日志记录

asp.net-mvc - 为什么我不能发布MVC项目

asp.net-mvc - Windows Workflow Foundation 4 和 ASP.NET MVC