问题标签 [mvp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - 为什么微软为 ASP.NET 选择 MVC?
除了作为一个 30 年的模式之外,MVC 从来都不适用于当前的应用程序。MVP 是它的继任者,旨在处理 90 年代出现的基于事件的应用程序。Passive View 和 Supervising Controller 似乎已经升到了顶峰。对于这两个,几乎没有必要谈论 MVC/MVP。
具体来说,ASP.NET MVC 中的控制器操作是否会带回创建该视图的视图?在 MVC 中,控制器不会创建视图或与它们对话。将 ASP.NET MVC 称为 MVC 实现有多准确?或者,它的准确名称是什么?
.net - MVP 模式,一个演示者有多少视图?
我们正在尝试将模型-视图-演示者模式用于(实际上)我们承担的所有新开发工作。
我坚信有一个框架可以帮助人们满足设计要求,我们有一些用于各种不同组件(日志记录、电子邮件发送等)的内部框架,所以我正在尝试获得某种 MVP开发的框架。
我已经设法为那些不熟悉 MVP 并且与我们目前的工作方式相差不远的人提供了一些易于使用的东西。问题是它与 1 个视图与 1 个演示者建立了关系。
这是框架的粗略轮廓:
它的基本工作方式是创建的任何视图都从IView
接口继承,并传递给从抽象类继承的Presenter类。Presenter
正如您所看到的,我正在使用 .NET 泛型,以便开发人员在使用演示者(然后最终是从演示者继承的类)时可以对视图进行强类型化。
所以我可以像这样设置一个基本的登录组件:
所以正如我所说的,我非常喜欢这个,有编译器强制类型、强类型视图和类似 MVP的模式。
虽然有些人对实现不太满意,因为它在演示者和视图之间具有 1 对 1 的关系,严格来说这不是 MVP 的本意。
我质疑这个论点的有效性,在我一直在跟踪这个框架的几个项目中(从中型到大型项目)我没有找到任何我认为“我需要为这个演示者提供多个视图”的好例子. 当我看到可以在多个视图之间共享的功能时,我质疑它是否应该与特定的演示者绑定,或者它是否应该在一个更中立的类中。
我试图实现的框架是否离 MVP 太远而不能被称为 MVP?MVP 的主要目标是需要对演示者有多个视图吗?是否有可能拥有一个真正支持 n-view 的 .NET MVP 框架?
c# - Winforms MVP 网格事件问题
我正在尝试为 WINFORMS 实现 MVP 模式。它是一个简单的按钮和网格,单击按钮时,网格将加载,用户可以将值填充到网格中。
对于我的按钮单击事件,我有这样的事情:
_presenter.LoadGrid();
这是简单明了的。
我的问题是,关于网格...我计划触发一个行单击事件...用于启用/禁用网格的特定列/行等的后续输入字段。
我知道演示者不应该包含任何 GUI 元素,并且 View(form) 不应该真正包含逻辑?
因此,要触发 GridRowClick 事件,我需要根据业务规则 (Logic) 操作网格 (GUI)。我在让演示者处理该点击事件或表单的逻辑之间迷失了?
如果演示者要处理单击事件,那不包括 gui 组件吗?如果视图要处理点击事件,字段名等都是业务驱动的(逻辑),根据业务层返回的数据表动态绑定。
任何建议将不胜感激。
干杯
c# - Model-View-Presenter:验证 UI
我正在寻找关于如何在模型-视图-演示者架构中进行 UI 验证的最佳实践方法。
我需要验证一些带有很多控件的表单。为了方便用户,我将所有错误或警告与控件的引用一起存储在日志中,然后显示给用户,以便他可以立即跳转到他必须修复的控件。这是在视图部分完成的,这实际上是错误的,因为验证应该在演示者中进行以交换视图。
对我来说,在演示者中进行此验证的问题在于,它不仅要检查提供的值是否错误,还需要检查单选按钮是否已被选中以启用文本框,例如,该文本框必须包含一些文本。
我正在考虑在演示者中使用 BindingSource,因为它反映了 UI 更改并且对演示者可见。但我不确定这是否是正确的方法(我认为这有点难看)?
顺便说一句:验证不仅仅发生在我写入数据库之前;它已经在用户处理表单时发生。
谁能想到这样做的好方法?
c# - 您使用什么规则来描述 MVP 方法和成员
在使用 MVP 模式时,我经常遇到方法和成员似乎不太适合 View 或 Presenter 类...我的问题是:您使用什么规则来决定哪些类的功能是什么?我对 MVP 比较陌生,所以请幽默。
TIA。
sorting - 在视图或模型中过滤/排序?
有一个数据对象列表和一些可视化的东西来表示每个对象,你会在哪里编写排序/过滤逻辑?为什么?
编辑:到目前为止所有的答案都很好,但我忘了添加另一个约束。如果我不想每次都重建视图怎么办?
asp.net - 有没有使用 MVP 模式的好的开源 ASP.NET 应用程序
我正在尝试将现有的 Web 表单应用程序升级到即将推出的框架,并根据新的业务需求重写几个工作流程。我想在这个项目中介绍基于 TDD 的开发,但经过一些调查发现 ASP.NET MVC 对我没有帮助,因为我的 Web 现有应用程序正在使用大量 Infragistics UltraWebGrid 控件进行分组、分页、列移动等,并且没有好的选择ASP.NET MVC 世界中的网格。我还需要在这个版本中支持黑莓。因此,我计划在同一个项目中将 MVP 用于桌面客户端,将 MVC 用于黑莓客户端。
我想知道是否有人在他们的项目中做过类似的事情,并使用 MVP 模式链接到任何好的开源 asp.net 应用程序。我不想使用 WCSF,因为它太重了。我看到了他们的 MVPBundle 示例应用程序,但它缺乏对 IoC(Unity 或 StructureMap)、Mocking 框架等现代工具的使用。
问候, 苏尼尔
dependency-injection - MVP - 依赖注入和模型
给定一个 View 使用一个 Presenter,并且在 Presenter 中你有一个模型。
你如何将模型注入到演示者中?如果我要在 View 级别注入它,那么您将回到原点,业务逻辑在视图中 - 也就是视图不应该知道它的模型。
有什么建议吗?
tdd - 使用 Rhino Mocks 将 TDD 与 Model View Presenter 结合使用的良好示例/参考
感谢任何好的示例或网站参考,其中包含使用 Rhino Mocks 将 TDD 与 Model-View-Presenter 模式结合使用的有用信息。
我正在寻找的是关于以下几点
- 模拟什么(查看和演示者)
- 新的 AAA 语法
- 如何模拟 UI 行为?例如,如果在视图中输入“firstName”和“lastName”启用“提交”按钮,否则禁用它。这只是一个简单的例子。
- 最佳实践
非常感谢这个方向的任何输入。
提前致谢。
c# - 如何使用 MVP 处理 FormClosing
开始:
我有一个看起来像这样的视图:
我有一个看起来像这样的演示者:
然后我有一个窗口窗体,它有一个取消按钮、一个保存按钮和所有用于显示地址的控件。取消按钮运行:
它反过来检查视图是否脏并提示用户放弃任何更改。这很棒,这就是我想要的。
现在我的问题是,如果用户关闭表单而不单击“取消”(即他们单击右上角的“X”甚至按 ALT+F4),如何实现相同的效果。我尝试处理 FormClosing 事件,但最终复制了一些代码,如果单击取消按钮,弹出窗口会发生两次。这是我所拥有的: