问题标签 [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 - Asp.Net WebForms 上的 MVP
这个我不是很清楚......
当在视图上有一个网格视图时,控制器是否必须设置数据源、列等?或者我只需要公开 DataBinding 的东西,从控制器触发它,让视图上的 html/codebehind 处理所有的渲染和连接?
更准确地说:关于我应该有的观点
或者应该是(来自MVP 模式 - Passive View 并通过 IView (Asp.Net, Web Forms) 公开复杂类型)
也许我完全错了......
我在哪里可以找到一个不是 ASP.Net MVP 的“Hello world”示例的示例???
c# - 半复杂页面上的 MVP
我正在开发行为稍微复杂的 .NET 3.5 表单应用程序。是用来存书的。为了给您一个想法,工作流程将是:
- 用户输入 ISBN 代码
- 如果ISBN有效,检查是否存在,
- 如果有效且存在,则显示图书详细信息并启用保存按钮,如果不是,则显示“添加图书”按钮,
- 如果它无效,则显示错误,
- 最终,用户将单击“保存”,因此必须保存条目。
这是四个责任:
- 验证 ISBN,
- 检查书的存在,
- 显示图书详情,
- 保存新书详细信息。
我的问题是:我应该将应用程序逻辑保留在一个 MVP 结构中,还是应该将其拆分为四个 MVP 结构,每个职责一个?
将其保持在一个 MVP 结构中
- 使模型更复杂
- 使测试设置更加复杂(每个测试都有很多设置代码来选择正确的验证器、退回的书等,即使它们没有被使用),
- 使表示逻辑更容易遵循
将其保存在单独的 MVP 结构中将
- 使模型更简单,
- 为每个演示者创建更多但更简单的测试,
- 在演示者之间的交互中增加复杂性(我如何向演示者表明 ISBN 有效,以便显示图书详细信息?)
我正在尝试演示者第一原则,所以: - 保持视图不变(所以没有像“演示者验证 ISBN”这样的事件), - 保持演示者无状态, - 保持模型简单(足够)
任何人都知道最好的方法是什么?
model-view-controller - .Net 的 MVP Taligent 编程模型
有没有人使用如下的智能编程模型创建.NET
控制架构?
http://www.wildcrest.com/Potel/Portfolio/mvp.pdf
正如IBM所说 -
MVP 将使 IBM 能够在其所有主要的面向对象语言环境中提供统一的概念编程模型
问题是如何实现或将 IInteractor 概念(第 9 页)映射到 .NET 接口?目前的猜测是使用IInputElement
接口作为所有 UI 输入控件的事件源。
如果有人已经在 .NET 中实现了 taligent 模式,我想知道它是否适用于 Silverlight 和 WPF。如果是这样,它是否适用于它们的接口的联合?
最后,这代表了统一的抽象架构,可以取代PresentationFramework.dll
. 如果您认为这适用于控制架构,请发表评论。
c# - 如何使用 C# WinForms 在 MVP 中的视图之间导航?
据我了解,当我们使用 MVP 时,我们会将所有表示逻辑移至 Presenter。但是我们不想让 Presenter 知道视图的实现,那么我们如何才能导航到应用程序中的另一个屏幕呢?您如何管理实际应用程序上的应用程序流?
c# - WPF 和 Silverlight 命令实现对于 MV-VM (MVP) 模式是否无用?
请原谅我的无知,我最近才开始在 Silverlight 中编码。
我尝试在 Silverlight 中实现命令模式并碰壁。他们说命令很棒,因为您可以将它们写入 xaml,因此您可以保持代码隐藏干净,而且您的视图和视图模型之间存在松散耦合,因为视图中没有对视图模型的直接引用。
您不能保持代码隐藏干净,因为您只能将一个命令绑定到控件,并且您必须决定在绑定时哪个事件将触发您的命令。如果一个控件有 30 个事件,你必须选择一个来指挥。其他 29 个将从后面的代码执行来自事件处理程序的其他命令。
松散耦合可以通过依赖注入更简单地实现,命令添加了一个无用的间接层,没有提供任何额外的东西,它们只会使维护代码变得更加困难。当您针对接口进行编程并准确查看调用了什么方法时,维护代码会更容易,然后当您必须在命令定义和视图模型之间不断跳转时。
我是否遗漏了什么,或者命令真的不适合用于视图和视图模型交互?
请看下面的问题。这就是为什么我没有得到所有命令的炒作:
c# - C# Noob - 在模拟接口类中触发事件 - 此代码如何工作?
我对这里发生的事情有点困惑。我正在查看 Atomic Object 中的 Puzzle 示例,展示如何测试 Model-View-Presenter 模式Puzzle.zip
视图有一个私人事件。该视图还有一个订阅(delegate) 函数,用于将委托添加到事件中。Presenter 在 IView 和 IModel 中传递。在构建期间,它订阅视图并将其连接到模型上的函数。
为了对 Presenter 进行单元测试,使用 NMock 模拟 View 类。所以它只是一个愚蠢的类,Subscribe() 函数实际上并没有做任何事情。当然,要测试presenter,你必须模拟视图和模型,然后在视图中触发事件并确保调用了模型函数。示例代码工作得很好 - 但是,我不明白它是如何工作的!
部分摘录:
不知何故,“触发器(点)”调用实际上连接到视图,并导致视图中的私有事件触发。我不知道它是如何工作的——我看不到它与视图实例的连接位置。我错过了什么?
更新: 我正在尝试使用 NMock 2。看来 moveRequestConstraint 变量接收到在 TestSetup 函数中传递给 SubscribeMoveRequest() 的值。但是,那是 NMock 1 语法 - 而 NMock 2 似乎不支持该语法。我将如何使用 NMock 2 做到这一点?
asp.net - ASP.NET MVP 和 AJAX 发布/网络服务
将 MVP 模式应用于 ASP.NET 应用程序时,使用 AJAX 发布数据适合哪些地方?在我所知道的 MVP 模式中,UI 很简单(外观),所有繁重的工作都在 Presenter 中完成。我看不出您如何遵循该模式并仍然使用 AJAX 与客户端上的 Web 服务进行交互。是否有人对如何使用 AJAX 和 Web 服务并仍然遵循 MVP 模式有任何参考?
谢谢!
design-patterns - 这是命令模式吗?
我有一个 MVP Gui,现在我想为某些视图定义某些操作或命令(修改、保存、关闭……)。
是否有捷径可寻?我应该为每个视图提供命令吗?
c# - 将 WinForm ClickNCode 重构为 MVP Passive View
我正在尝试重构现有的 Winform 应用程序以使用 MVP Passive View 模式。应用程序的 UI、业务逻辑和数据存储代码多年来一直自由混合。看起来它要么从单独的层开始,要么有人试图将其分成层。在任何情况下,层边界都没有得到尊重。
由于表单直接操作域对象和数据源(反之亦然),我的首要任务是创建演示者/控制器对象并委派这些职责。
该应用程序是一个 .NET 1.1 应用程序,我正在 VS.NET 2003 中使用相当有限的重构加载项进行开发。我使用现有代码的测试生成器来创建样板单元测试,然后通过并手动编辑每个测试。当然,这最终会测试代码的作用,而不一定是它应该做的事情。对于新课程,我正在做 TDD。
在这种规模的重构工作中,有什么技巧、资源、陷阱需要注意吗?
我已经掌握了一些资源:
- 编程书籍合集;重构, PEAA , WELC
- 互联网(显然)
- 大量含咖啡因的饮料
更新:作为一个例子,你会采取什么步骤来改变这个:
进入这个:
design-patterns - 在 MFC 应用程序中使用 Model-View-Presenter 模式
我在一个“相当”大的 MFC 应用程序的 ui 中工作。
我们试图将应用程序拆分为模块以隔离业务逻辑,但无论如何,仍然有很多地方 ui 有一些不应该存在的业务逻辑。这种业务逻辑很难测试,更改控件有时会很痛苦。但是……你们都知道我的意思……
现在我们想使用 MVP 模式来尝试真正隔离 ui。我已经阅读了很多关于该模式的论文,并看到了一些小例子。理解模式没有问题,但无论如何我想在开始之前先了解一些更复杂的示例(如果它们来自 MFC 应用程序更好)。
如果有人有一些好的资源或知道一本关于这种模式的好书(带有示例),那将非常有用。
谢谢。