【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

关注

评论

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

如何使用Putty登录安装在VirtualBox里的ubuntu

Jerry Wang

ubuntu windows 虚拟机

如何给VirtualBox虚拟机的ubuntu LVM分区扩容

Jerry Wang

虚拟机 Cloud virtualbox CloudFoundry

优化docker镜像的几种方法

运维研习社

Docker 镜像 优化技巧 5月日更

如何使用代码获得一个function module的Where Used List

Jerry Wang

CRM SAP abap SAPGUI

高性能 JavaScriptの六 -- 老生常谈Ajax

空城机

JavaScript ajax 大前端 5月日更

ABAP git客户端的简单介绍

Jerry Wang

GitHub SAP abap

观察者模式在One Order回调函数中的应用

Jerry Wang

CRM SAP abap

如何证明CRM WebClient UI上的应用是有状态(Stateful)的

Jerry Wang

CRM SAP abap WebClient UI

ABAP和Java里关于DEFAULT(默认)机制的一些语言特性

Jerry Wang

SAP abap Netweaver SAPGUI

架构实战营 - 模块四作业

Sun

设计千万级学生管理系统的考试试卷存储方案

俞嘉彬

S/4HANA for Customer Management里的搜索分页处理

Jerry Wang

CRM SAP abap S/4HANA

SAP Fiori里的List是如何做到懒加载Lazy load的

Jerry Wang

JavaScript SAP Fiori SAP UI5

如何用ABAP代码读取CDS view association的数据

Jerry Wang

CDS SAP abap CDS view

在浏览器里使用SAPGUI里的SE80

Jerry Wang

JavaScript SAP abap Fiori SAP UI5

ABAP宏的调试

Jerry Wang

调试 SAP abap macro

人生算法:做事要闭环

石云升

读书笔记 职场经验 5月日更 人生算法

那些年我用过的SAP IDE

Jerry Wang

ide SAP abap SAPGUI

金融科技如何在产业互联网蓝海中扬帆远航?大数据、区块链与物联网应用被看好

CECBC

CRM订单状态的Open, In process和Completed这些条目是从哪里来的

Jerry Wang

CRM SAP ERP abap

架构师训练营 作业四

开拓纪

CRM, C4C和Hybris的工作流简介

Jerry Wang

CRM SAP C4C Hybris Commerce Cloud

会说话的ABAP report

Jerry Wang

SAP abap SAPGUI

如何在Chrome development tool里查看C4C前台发送的未经 GZIP 压缩之前的请求细节

Jerry Wang

chrome SAP C4C Chrome开发者工具

SAPGUI里实现自定义的语法检查

Jerry Wang

SAP abap SAPGUI 语法检查

如何使用腾讯云提供的云主机

Jerry Wang

腾讯云 云主机 Cloud

ABAP的语法高亮是如何在浏览器里显示的

Jerry Wang

SAP abap SAPGUI 语法高亮

如何在ubuntu上安装virtualbox的driver module vboxdrv

Jerry Wang

ubuntu 虚拟机 vboxdrv 驱动

如何将iso文件安装到Virtual里的ubuntu去

Jerry Wang

Linux ubuntu windows 虚拟机 Windows 10

如何使用SAP Cloud for Customer里的ABSL代码调用Web service

Jerry Wang

SAP C4C Cloud for Customer

S4HANA和CRM Fiori应用的搜索分页实现

Jerry Wang

CRM SAP Fiori SAP UI5 S/4HANA

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