写点什么

Web Forms 拥抱 Model-View-Presenter

  • 2011-06-17
  • 本文字数:575 字

    阅读完需:约 2 分钟

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

2011-06-17 19:532031
用户头像

发布了 76 篇内容, 共 24.6 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

“新程序员”必须学会的8个GPT提问技术

思码逸研发效能

面向未来的全面预算管理,财务团队应具备的技能

智达方通

全面预算管理 财务团队

Java集合篇之set,面试官:请说一说HashSet、LinkedHashSet、TreeSet的区别?

EquatorCoco

Java List 集合 set

春节后,必读的12篇大模型论文

学术头条

人工智能 大模型 AIGC AI Agent

重磅发布!12位效能专家联合打造的《研发效能100问》为你解答疑惑| 附下载

思码逸研发效能

零基础搭建chatgpt商业网站,上线即可运营,集合midjourney

aiisai

源码 ChatGPT

如何有效利用API接口进行数据采集

Noah

思码逸企业版 4.0 特性之三:研发效能数据的智能化分析与解读

思码逸研发效能

利用故事推动企业变革:如何提升数据分析技能

智达方通

数据分析 数据可视化 全面预算管理 数据故事

数字先锋| 乘云而上!天翼云助力东吴人寿开启云端办公新体验

天翼云开发者社区

云计算

揭秘智能商品计划管理系统:为何服装企业老板争相引入?

第七在线

人工智能与测试开发:新时代的黄金组合

测试人

人工智能 软件测试 自动化测试 测试开发

Windows虚拟主机:轻松搭建网站的首选,快来了解如何优化性能!

一只扑棱蛾子

虚拟主机 Windows虚拟主机

一文总结 C++ 常量表达式、constexpr 和 const

不在线第一只蜗牛

c++ 开发语言 tldr

如何提高企业独立站的转化率

九凌网络

云上业务一键性能调优,应用程序性能诊断工具 Btune 上线

百度Geek说

小程序 百度智能云

展开说说鸿蒙开源与技术细节

Geek_2305a8

后端:手把手带你精简代码-京东零售实践

京东零售技术

Java 后端 代码精简

云服务器怎么搭建:从零到运行的基础指南

天翼云开发者社区

云计算 云服务器

《人工智能在测试开发中的应用》

测吧(北京)科技有限公司

测试

云电脑Win7系统安装报错详解:问题与解决方案

天翼云开发者社区

云计算 云电脑 系统安装

Web Forms拥抱Model-View-Presenter_.NET_Jonathan Allen_InfoQ精选文章