QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:532078
用户头像

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

关注

评论

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

浅谈DingOS 设备端计算

鼎道智联

隐私安全 智能推荐 本地计算 服务推荐

【Arthas】初识Arthas,安装使用

石臻臻的杂货铺

Arthas 8月月更

聚焦“工业互联网+危化安全生产”,工智道入驻华为云严选商场

IT资讯搬运工

重学网络系列之(UDP)

自然

网络 8月月更

「美团 CodeM 资格赛」数码 详解

Five

c++ 算法题 8月月更

探秘苹果、微软、谷歌操作系统视觉设计,原来…

鼎道智联

ios windows UI 操作系统 视觉交互

极光与华为云携手共赢,共同助力中企出海

科技云未来

重学网络系列之(TCP)

自然

网络 8月月更

[极致用户体验] 教你个超牛逼的分割线CSS!

HullQin

CSS JavaScript html 前端 8月月更

重学网络系列之(Ping与网关)

自然

网络 8月月更

规范代码命名,让你的代码阅读起来更愉悦!

岛上码农

flutter 前端 移动端开发 跨平台开发 8月月更

解析大型电商网站系统架构分层设计

穿过生命散发芬芳

网站架构 8月月更

自此乾坤始:中国量子计算产业化的激变时刻

脑极体

C/C++size(),sizeof(),length(),strlen()对比分析详解

CtrlX

c c++ 进阶 热门活动 8月月更

华为云构建“好用的化工数字化”

IT资讯搬运工

Spring 项目启动错误提示 LoggingApplicationListener

HoneyMoose

Java集合之map集合

楠羽

#开源

【Python编程技巧】简单理解和使用Python中@property

迷彩

@PropertySource 8月月更 Python编程技巧

蓝凌生态OA,重新定义中大型企业数字化办公

科技怪咖

Spring Boot 运行的时候提示日志错误

HoneyMoose

leetcode 242. Valid Anagram 有效的字母异位词(简单)

okokabcd

LeetCode 算法与数据结构

每日一R「15」实践课之 kv-server(一)

Samson

学习笔记 8月月更 ​Rust

蓝凌“智慧云脑”,助力水务、燃气等集团服务民生

科技怪咖

如何给注册中心锦上添花?

捉虫大师

微服务 架构设计 注册中心 服务发现 8月月更

从 Multirepo 到 Monorepo 袋鼠云数栈前端研发效率提升探索之路

袋鼠云数栈

负载均衡算法

源字节1号

程序员 软件开发

阿里云-建站小能手快速体验

凌云Cloud

阿里云 网站建设

高效率团队为啥都会选择Jenkins?一文带您了解Jenkins

wljslmz

持续集成 jenkins 8月月更

ISO文件怎么管?“筷子第一股”双枪科技教你1招!

科技怪咖

React在实际开发中Variables与Prop的实战运用

恒山其若陋兮

8月月更

Polkadot + DeFi | 透明公平、高效交易的去中心化金融未来可期

One Block Community

区块链 金融创新 defi 波卡生态

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