BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Web Forms拥抱Model-View-Presenter

| 作者 Jonathan Allen 关注 593 他的粉丝 ,译者 金明 关注 0 他的粉丝 发布于 2011年6月18日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

纵然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库。

 

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT