1

我在 MVP 模式中设计和开发了我的应用程序。我没有使用任何软件工厂来实现这一点。现在我想转向 SCSF 模式和 CAB 结构。

我需要知道它是否可以以任何更简单的方式完成,因为 CAB 结构仅实现 MVP。

4

2 回答 2

1

我同意瓦利的观点。你已经准备好你的观点了。假设他们是完美的MVP。现在您需要将它们分类为模块。我们创建了子工作项,因此当一个用例启动时,它是一个新的子工作项实例,添加到模块的工作项集合中。因此,当用例完成时,我们只需终止子工作项。如果发生任何异常,那么子工作项就是现在模块的工作项将受到影响的工作项。SCSF 具有您可以在屏幕上合成多个视图的功能。所以你需要看看你是否可以使用 ZoneWorkspace 来避免重复的 UI 和逻辑。决定模块将如何通信,比如事件或命令。数据将如何在视图和模块之间传递。现在你有了 Shell,你需要决定你要在 shell 上拥有的所有区域。默认情况下出现在 shell 上。模块如何监听 Shell。Shell 从模块中侦听哪些事件以自定义自身。

SCSF 有依赖注入。所以决定你将拥有哪些 UI 服务。将它们相应地注入到 Presenter 中。

于 2011-08-17T20:48:52.533 回答
0

在 CAB 和 SCSF 中,有代码就绪的 MVP 类(和接口)。因此,如果你已经干净地实现了它,那么一旦你掌握了这些类,你就可以复制你的方法。

将尝试简要介绍:-

1) IView -- 它是 View 的引用,它只公开那些可以由 Presenter(或任何其他类)访问的设置属性/方法

2) View -- 它有Presenter的引用,可以访问Presenter的所有public/protected方法。按照设计,它不能访问任何服务,因为您需要 WorkItem(服务、状态、命令、事件等的容器)。出于所有实际目的,视图仅用于管理 UI 控件、绑定、对象状态等。

3) Presenter -- 它有一个对 WorkItem 的引用(通过它你可以访问所有的服务)。演示者的责任是在服务的帮助下处理数据。

4) WorkItemController -- WorkItemController 可以采用 UseCase 相关的功能,如 ui 控件的接线/取消接线、视图的定位等。

它不仅仅是 SCSF/CAB 中的 MVP,而是其 UI 应用程序的整体设计。其中有以下内容:-

  1. 模块化结构
  2. 按需架构。
  3. 服务模式
  4. 命令
  5. 事件处理程序等

因此,首先您必须检查codeplex 文档以查看您的项目是否可以在该平台/架构中轻松升级。如果您刚刚开始并考虑使项目具有可扩展性和企业级,我会推荐 CAB/SCSF。

于 2011-05-30T07:06:19.463 回答