Web Forms拥抱Model-View-Presenter

纵然ASP.NET Web Forms也可以应用MVC风格的架构,但绝大多数的人都认为这两者之间的配合太糟糕。富客户端组件和Web窗体的有状态性与MVC模式相容得并不好。然而,开发人员仍然渴求MVC带来的分离与可测试性。开源项目Web Forms MVP正是试图做到这一点。

Web Forms MVP的主要目标是——在仍然保持由使用富客户端控件所带来的高水平生产力的前提之下,像ASP.NET MVC一样提供尽可能多的控制。在最简单的情形下,Web Forms MVP仅仅需要开发人员将他们的逻辑部分从后置代码(code-behind)的文件之中转移出来,放到Presenter里面。

Web Forms MVP声称在组合页面方面尤其出色。Web Forms MVP鼓励开发人员将页面分解成单独的可重用的组件,而不是一个单一页面与action controller。每个组件都被认为是单独的视图,有与之相对应的Presenter。Presenter应该小、基本上相互独立,但他们也可以互相通信。

这个框架还内置了控制反转和依赖注入。其正式发布包含了集成Castle和Unity的库。其姐妹项目Web Forms MVP Contrib,还提供了对Ninject、StructureMap以及Autofac的支持。

由于大部分的逻辑转移到了Presenter里面,你可以像在其他框架下测试controller或者view-model一样,使用相同的技术对它们进行自动化测试。Web Forms MVP的底层框架,大部分来自于ASP.NET MVC在一开始就引入的System.Web.Abstractions库。

 

你可能感兴趣的:(Web Forms拥抱Model-View-Presenter)