写点什么

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

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

关注

评论

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

深入学习SAP UI5框架代码系列之四:HTML原生事件 VS UI5 Semantic事件

汪子熙

JavaScript SAP SAP UI5 ui5 9月月更

2022-09-06:以下go语言代码输出什么?A:Hi All;B:Hi go All;C:Hi;D:go All。 package main import “fmt“ func app() f

福大大架构师每日一题

golang 福大大 选择题

数据治理的内核:数据质量

小鲸数据

数据治理 数据质量管理 数据质量 数据生命周期

SAP系统和微信集成的系列教程之一:微信开发环境的搭建

汪子熙

系统集成 SAP 微信开发 微信平台 9月月更

Dragonfly 基于 P2P 的文件和镜像分发系统

SOFAStack

容器 云原生 镜像 日志 文件

Vue基础语法--插槽(Slot)基础使用

Sam9029

Vue 前端 基础 9月月更

小程序容器技术加入到混合App开发队伍

Geek_99967b

小程序 混合开发

业务应用小程序化,一种潜在的技术趋势

Speedoooo

小程序 移动开发 小程序容器

在小程序中开启直播的解决方案

Geek_99967b

小程序容器 小程序开发

行业智能化走向何方?昇腾AICE带来的新范式,新起点

脑极体

跟着卷卷龙一起学Camera--AWB

卷卷龙

ISP 9月月更

剖析智能运维的五大应用场景

穿过生命散发芬芳

智能运维 9月月更

时代变了,企业网站应该这么策划内容

石头IT视角

「工作小记」接口请求数据的缓存实践

叶一一

前端 设计思维 9月月更

DDD领域驱动设计

源字节1号

软件开发 前端开发 后端开发 软件设计思想

C++学习------iso646.h与limits.h头文件的源码学习

桑榆

c++ 9月月更

深入学习SAP UI5框架代码系列之三:UI5 控件的渲染器

汪子熙

JavaScript 前端框架 SAP UI5 ui5 9月月更

为什么要用小程序容器做小程序生态

Geek_99967b

小程序 小程序容器 小程序开发

动态规划-编辑距离

wing

MVCC

急需上岸的小谢

9月月更

ShareSDK Android端主流平台分享示例

MobTech袤博科技

an'droid

LeetCode-21. 合并两个有序链表(java)

bug菌

9月日更 Leet Code 9月月更

SD-WAN网络可靠性设计

阿泽🧸

9月月更 网络可靠性设计

小程序能否成为电商的突破口

Geek_99967b

小程序 小程序开发

计算机网络——速率相关的性能指标

StackOverflow

计算机网络 编程‘ 9月月更

轻松理解20种常用AI算法

Baihai IDP

AI 算法

对jdbc的讲解

楠羽

JDBC 笔记 9月月更

设计模式的艺术 第八章建造者设计模式练习(开发一个视频播放软件,为了方便用户使用,该播放软件提供多种界面显示模式,例如完整模式、精简模式、记忆模式、网络模式等。在不同的显示模式下主界面的组成元素有所差异。例如,在精简模式下只显示主窗口、控制条)

代廉洁

设计模式的艺术

技术团队如何高效落地代码CR

慕枫技术笔记

架构 后端 9月月更

LeetCode-26. 删除有序数组中的重复项(java)

bug菌

9月日更 Leet Code 9月月更

前端食堂技术周刊第 51 期:pnpm v7.10.0、8 月登陆网络平台的新内容、重新思考流行的 Node.js 模式和工具、打包 JavaScript 库的现代化指南

童欧巴

chrome Node React Chrome开发者工具 pnpm

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