写点什么

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

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

关注

评论

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

多所头部高校教师参加鸿蒙生态学堂·师资培训(贵安站),持续赋能万千开发者

最新动态

OpenHarmony首次亮相欧洲开源会议

科技热闻

区块链开发:DAPP、NFT、DAO、公链与钱包软件

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 代币开发

Charles for Mac 强大的网络代理工具

Rose

捷行2024Train-the-Trainer微课程系列-用户故事地图实操工作坊

ShineScrum

摊牌了,创业失败了

禅道项目管理

创业 企业管理 决策 战略规划 决策管理

软件测试学习笔记丨Selenium复用已打开浏览器

测试人

软件测试

AI驱动的低代码未来:加速应用开发的智能解决方案

天津汇柏科技有限公司

低代码平台 AI 人工智能

深圳!入选北斗规模应用试点城市

江湖老铁

一文彻底弄懂spring boot自动转配的过程

不在线第一只蜗牛

Java Spring Boot 后端

交易所开发:开启数字金融新时代

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 代币开发

解密虾皮商品详情API接口:获取与运用

科普小能手

API 接口 API 测试 虾皮商品详情接口 虾皮商品详情数据接口 虾皮API接口

VMware Aria Operations for Networks 6.13 发布,新增功能概览

sysin

vmware aria

AnyGo for Mac 在iPhone / iPad上轻松模拟GPS位置

Rose

2024 必备工具:JProfiler,解锁 Java 应用性能密码

Rose

华大北斗芯片级产品矩阵亮相第三届北斗规模应用国际峰会

江湖老铁

鸿蒙网络编程系列39-Web组件打印示例

长弓三石

DevEco Studio 开发实例 HarmonyOS NEXT 网络与连接

CST电磁仿真软件如何计算有源S参数

思茂信息

cst cst使用教程 cst电磁仿真

IntelliJ IDEA 2024:编程新境界,高效开发新引擎

Rose

文献解读-Sentieon DNAscope LongRead – A highly Accurate, Fast, and Efficient Pipeline for Germline Variant Calling from PacBio HiFi

INSVAST

基因数据分析 生信服务 长读长测序 Sentieon

深度解读GaussDB逻辑解码技术原理

华为云开发者联盟

数据库 GaussDB DRS #SQL

Java EasyExcel 导出报内存溢出如何解决

威哥爱编程

Java EasyExcel JavaEE

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