NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

我所理解的云原生(二)

劼哥stone

云原生

TTF、OTF、WOFF 和 WOFF2 的相关概念

编程三昧

CSS css3 1月月更

特征工程:归一化与标准化

强劲九

Python 人工智能 神经网络 机器学习 scikit-learn

模块六作业-拆分电商系统为微服务

CH

#架构实战营 「架构实战营」

浅谈 Java 集合框架

宇宙之一粟

java集合总结 1月月更

WebRTC 流媒体常见开源方案综述 | 社区征文

liuzhen007

音视频 新春征文 2月月更

2021,平(jia)凡(ban)的一年

xiezhr

年终总结 2021 2021年终总结

第六周作业

cqyanbo

从IaC到IaD

俞凡

云计算 基础设施即代码

Windows 和 Linux 上安装 TTF 字体的方法

编程三昧

HTML5, CSS3 1月月更

ReactNative进阶(四十六):移动端实现字体自适应

No Silver Bullet

自适应 React Native 2月月更

Mybatis技术专题之MybatisPlus自带强大功能之多租户插件实现原理和实战分析

洛神灬殇

多租户 MyBatisPlus 2月日更 多租户技术

模块六作业

Anlumina

架构实战营

云原生的前世今生(一)

劼哥stone

云原生

Kubectl插件开发及开源发布分享| 社区征文

雪雷

golang 云原生 cobra kubectl plugin 新春征文

Java NIO为何导致堆外内存OOM了?

JavaEdge

2月月更

Linux之killall命令

入门小站

Linux

JAVA新特性的入场券-函数式接口

蜜糖的代码注释

Java 后端 Java高级特性

行业研究流程及资源总结

轻口味

android AI 1月月更

ReactNative进阶(四十三):Mac 通过 .bash_profile 文件配置环境变量

No Silver Bullet

Mac 2月月更 .bash_profile

Kubernetes初学者指南

俞凡

架构 Kubernetes 云原生 2月月更

Linux之kill命令

入门小站

Linux

我的2021

劼哥stone

年终总结

ReactNative进阶(四十四):Mobile App 适配性优化

No Silver Bullet

React Native 适配 1月月更

简单入门计算机网络

宇宙之一粟

计算机网络 2月月更

Promise 基本方法的简单实现

编程三昧

JavaScript Promise 2月月更

2021年度总结-拥抱变化

wood

300天创作

从 TDD 到测试策略

Teobler

前端 TDD 单元测试 测试策略 测试金字塔

模块六

Geek_59dec2

架构

拆分电商系统为微服务

AUV

「架构实战营」

【优化技术专题】「系统性能调优实战」终极关注应用系统性能调优及原理剖析(下册)

洛神灬殇

性能调优 Java 分布式 优化逻辑 技术职场 1月日更

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