HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

架构实战营毕业总结

Geek_53787a

开源一夏 | 使用 HTML、CSS 和 JavaScript 的简单模拟时钟

海拥(haiyong.site)

开源 8月月更

移动端四种热更新技术对比

Geek_99967b

小程序

什么是知识管理系统?如何改善客户体验?

Geek_da0866

系统入门-Linux系统基础命令

Albert Edison

Linux centos 指令 8月月更

超云

Kent Yao

超云 Supercloud

Github又爆神作!野生程序员自学SpringCloudAlibaba必备学习笔记开源(阿里2022最新版)

Java永远的神

Java 程序员 面试 微服务 SpringCloud

Redis 潜在问题

武师叔

8月月更

李斯特:不同流派的产品创新方法及创新误区丨创新工作坊

声网

灵感宝盒 RTE NG-Lab

浅谈成功的企业知识管理

Baklib

【云原生】微服务SpringCloud-eureka(server)集群搭建

java李杨勇

Eureka spring-cloud 签约计划第三季

中国开源先锋人物志 | ChinaOSC

CCF开源发展委员会

开源一夏 |ModelScope--人像卡通化、人像美肤

六月的雨在InfoQ

开源 8月月更 ModelScope

因果决策从YLearn开始,数据智能基础软件迎“风口”

九章云极DataCanvas

人工智能 GitHub 数据智能 YLearn 工具包

开源一夏 |分布式事务

六月的雨在InfoQ

开源 分布式事务 2PC 3PC 8月月更

备受资本市场关注的Zebec,正在构建“新DeFi”生态

小哈区块

底层原理源码+面试场景还原,阿里巴巴多线程JDK源码学习笔记全网首次公开

程序员小毕

程序员 面试 多线程 高并发 jdk源码

StoneDB 读、写操作的执行过程

StoneDB

MySQL 数据库 大数据 #开源 8月月更

开源生态研究与实践| ChinaOSC

CCF开源发展委员会

“新DeFi”生态的构建,流支付协议Zebec或厚积薄发

BlockChain先知

知识管理体系在企业中的作用

Baklib

CSS 移动光标使文本产生多个反差色特效

南城FE

CSS css3 前端 动画

Hi,我是ChunJun,一个有趣好用的开源项目

袋鼠云数栈

RocketMQ高性能设计之动态缩扩容和消息实时投递

急需上岸的小谢

8月月更

【云原生】SpringCloud-Spring Boot Starter使用测试

java李杨勇

Java web SpringCloud Alibaba 签约计划第三季

多次拿下移动集团技术发明大奖,TA是怎么做到的?

鲸品堂

AI 资源

基于JavaSpringMVC+vue实现协同过滤电影推荐系统详细设计

java李杨勇

Java spring Vue 3 签约计划第三季 协同过滤

开源知识库与SaaS解决方案的区别

Geek_da0866

leetcode 239. Sliding Window Maximum 滑动窗口最大值

okokabcd

LeetCode 数据结构与算法 双端队列

开源中国专访 TJ:开源许可证,欢迎来到云时代

tapdata

Tapdata 开源社区

【云原生】SpringCloud是什么?

java李杨勇

Java spring-boot 签约计划第三季

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