问题标签 [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.
c# - MVP 和多个用户控件
我正在尝试使用 MVP 模式,但遇到了设计问题。我正在开发一个具有多个 UserControls 的应用程序。UserControls 本身彼此无关,仅代表实际模型的一个子集。根据我的阅读,人们倾向于说每个视图应该使用一个演示者。这似乎是有道理的,但如果我有 30 个用户控件,我真的想要 30 个演示者吗?另一方面,如果我有 1 个 Presenter 和 1 个 View 代表整个“应用程序”视图,那么我将拥有臃肿的 View 和 Presenter 界面。然后每个视图都必须实现与它无关的方法。我的问题是,有没有更好的方法来处理多个用户控件,或者我应该为每个视图创建 1 个演示者?
.net - 桌面单声道应用和 MVC/MVP 框架
我正在为我的第一个单声道应用程序寻找一个 MVC/MVP(最好是 mvp)框架。那里似乎没有太多,但我发现了以下内容:
http://www.mvcsharp.org/ http://desktoprails.osl.ull.es/doku.php
我已经研究了一段时间,而 MVC# 似乎更接近我想要的。
问题是 MVC# 似乎是一个 .net 项目,并不是专门为单声道设计的(与桌面导轨相反),所以我不能 100% 确定它将如何与单声道一起播放。此外,它在 Microsoft 公共许可证 (MsPL) 下,我不确定该许可证与我打算使用的其他组件(如 gpl/mit/apache/etc)一起使用的效果如何。
因此,如果有人对这些单声道框架中的任何一个有任何经验并且可以回答这些问题中的任何一个,我将不胜感激任何反馈。
mvp - (MVP 模式)如何将错误消息从 Presenter 转发到 View?
我有一个方法,用户可以搜索文章编号,如果它在数据库中可用,则文章编号绑定到 BindingList。现在我想让用户知道该文章是否在数据库中不可用。我该如何以正确的方式做到这一点?
只需将消息 errorMessage 传递给我的接口方法?
主持人:
看法:
你会这样做吗?
asp.net - ASP.net Model View Presenter 值得花时间吗?
我本周末正在阅读有关 ASP.net MVP 模式的信息,如果以 MVP 模式执行,即使是最简单的任务也似乎需要付出太多的努力,回报似乎是在更大的项目中,但我想如果我是将跟随MVP。为什么不在 ASP.net MVC 中做项目?
我正在研究 MVP 模式的原因是因为我注意到在我所有的 ASP.net Webform 项目中,如果我在网络上有很多服务器控制,那么背后的代码中有很多代码只是用于事件处理形式,所以我正在寻找减少这种情况的方法并遇到 MVP 模式。
是否值得努力遵循 MVP 模式或只是切换到 ASP.net MVC?
vb.net - 单元测试的 MVP 实现的最佳实践示例(在 VB.Net 中)
谁能指出我使用的完整场景
MSTest,vb.net,有或没有模拟,MVP(监督控制器)
谢谢
interface - FxCop + MVP:“属性不应该是只写的”
假设我正在实现一个 MVP 模式,并且我有一个这样的视图界面:
演示者没有理由需要从视图中检索此字符串,所以我可以安全地忽略此错误吗?
.net - MVP 中使用 WinForms 进行异步调用的最佳实践
我在 WinForms 项目中使用 Model-View-Presenter 模式,我遇到的一个问题(在许多问题中)是当表单告诉演示者做某事,然后在演示者去做时没有反应。幸运的是,在我的项目中,让所有演示者调用异步都没有问题,问题是如何做到这一点?
是否应该将每个演示者调用都包含在一个新的线程创建中?*
这里的最佳实践是什么?如果用户按下“中止你正在做的事情”按钮怎么办?如何优雅地中止?
.* 实际上,我可能只是在演示者上使用某种代理来执行此操作,而不是将线程创建放在 WinForm 中
user-interface - 在 MVP 界面模式中划分已经变得太大的演示者的好做法是什么?
我最近经常遇到的一个问题是我的演讲者班级变得太大的问题。通常情况下,我可以在不跳过节拍的情况下砍掉一堂普通的大课。但是演示者有时更难削减,而不会使代码更难遵循。
特别是当页面开始填充面向 CRUD 的控件时。有时我会划分控件,但如果它们受到其他控件的影响,则协调逻辑本身就很复杂。有时我会划分列表或网格数据检索,但有时可能会有类似的陷阱。
是否有任何技术、经验法则或您从演示者中重构出来的公共区域?
wpf - WPF 的综合指南:MVVM 与 MVP
我很困惑。也许你可以帮助我:)
我一直遵循 CAG 的指导,发现 MVP 模式对我来说非常自然。假设我有一个 UI 就绪模型(例如:实现 INotifyPropertyChanged),我使用演示者将此模型绑定到视图(演示者知道视图的接口),使我的代码隐藏尽可能小,仅处理绑定(模型和命令)属性(或方法)或没有 ICommand 的控件的事件,在这种情况下立即委托给演示者。
一段时间后,我发现了 MVVM 模式,但到目前为止我还没有发现它。据我所知,我只会在我的模型未准备好 UI 时使用 MVVM。但是保留演示者并只使用新模型是否更合理,我不明白这种用法会失去什么。我知道我错过了一些东西,但它是什么:)。
此外,当您的 View 是通用的并且可以处理多种模型(例如在 PropertyGrid 中)时。建议 ViewModel 与 DataTemplate 一起使用,但在这种情况下,您无法为模型中的每个实体创建模板,只需要在运行时进行调查,您会推荐什么?
看 Josh Smith 在截屏中讲 MVVM 的时候,我有一种感觉,在 ViewModel 中重新暴露 Model 违反了 DRY(不要重复),真的无法避免吗?与现在 ADO.Net 动态数据元数据类的火焰相比,没有人对此争论不休,这让我感到惊讶。
希望它足够清楚
谢谢
爱丽儿
c# - 在被动视图架构中,我应该在哪里为 Presenter 类创建依赖项?
我刚刚从演示者类重构了一个新的域类,但我不知道在哪里实例化它。
这是对维护不善的遗留项目进行的更大的持续重构工作的一部分。
当前正在由视图的 OnLoad 事件创建 Presenter,并且视图在构造函数中作为参数传递。Presenter 中的所有公共方法都是无参数的并且返回 void。它们使用视图的公共属性与视图通信。
视图,本质上是一种简陋的形式,完全取决于演示者的一切。
这是典型的被动视图模式,我想继续坚持下去。这使我陷入困境。我需要创建一个新域对象的实例供演示者使用。
- 如果我通过构造函数传递它,那么视图必须创建它并获得不必要的依赖。
- 如果我在演示者的任何地方创建它,我无法在单元测试中用模拟对象替换它。
- 如果我将它设为演示者的公共属性,那么我会在使用它的演示者方法上引入创建顺序依赖项,但我仍然没有解决哪个外部类负责创建它。
我目前没有使用任何依赖注入框架。虽然我有兴趣在未来使用它,但源代码仍然很脆弱,无法将第三方框架引入混合中。
我愿意接受任何建议。