ASP.NET MVP模式和实现存在疑问

时间:2011-11-01 16:45:31

标签: asp.net mvp

MVP模式http://webformsmvp.com/

让我很开心

我对实施部分有一些疑问。

  1. 是否有必要使用此模式,我必须实施用户控件?
  2. 如果我们需要跨页面重复使用控件,我一直认为会创建用户控件。

    如果我想实现和测试MVP模式,我应该通过控件将我的简单页面分解为很多用户控件,以便我可以应用MVP模式?

    如果我的网页上有很多独立组件怎么办?

    我对MVP的理解是否存在差距?

    帮助。

3 个答案:

答案 0 :(得分:1)

简单地说,实现用户控件以使用此模式是。非常简单,您需要一个视图(可以是aspx或wpf或winform或控制台等),一个演示者,它将从视图中读取/监听事件,调用模型并最终使用右侧填充视图数据,这就是MVP模式。

编辑:这个example很简单。

答案 1 :(得分:0)

您不必使用用户控件来使用MVP模式。 MVP是GUI模式,可帮助您分离您的顾虑。

例如,您编写ASP.NET网页来计算两个数字,没有MVP或MVC或任何其他GUI模式,您将在您的代码隐藏文件中编写所有这些逻辑,这很难测试。如果你想测试它,那么你带来了很多额外的行李,比如ASP.NET框架。

另一方面,你使用MVP编写这个应用程序,你会这样做。

查看=>这三个人都是最愚蠢的。没有任何或最小的逻辑。所以你没有必要进行单元测试。它只是“告诉”主持人发生了什么事情,并做了主持人要求的事情。

Presenter =>控制流程

Model =>业务逻辑/持久逻辑。

答案 2 :(得分:0)

我是您提到的Web Forms MVP项目的作者。这个答案特定于该库(这只是MVP模式的一个实现)。

不,您不需要使用用户控件。如果您愿意,可以让您的页面继承自MvpPage,然后它将与演示者本身一起使用。

我们建议您执行使用用户控件,即使您未在网站中多次使用该控件。这使您可以将视图,视图模型和演示者逻辑保持良好并捆绑为特定功能的逻辑单元。然后,页面仅用于布置控件。