2011-05-06 124 views
1

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

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

+0

哈基姆做的信息共享帮助你选择智能客户端? – Wali 2013-02-20 13:02:00

回答

0

在CAB和SCSF中,有代码就绪的MVP类(和接口)。所以,如果你已经实现了它,那么你可以复制你的方法,一旦你得到了类的hang。。

将尝试向大家介绍它: -

1)IVIEW - 视图/),它是一种参考,它公开只有那些集性能的方法,可以通过主持人(或任何其它类访问

2)视图 - 它具有Presenter的参考,并且可以访问演示者的所有公共/受保护方法。按照设计,它不能访问任何服务,因为您需要WorkItem(服务,状态,命令,事件等的容器)。对于所有实际的目的,View只是在那里管理UI控件,绑定,对象状态等。

3)Presenter - 它具有对WorkItem的引用(通过它可以访问所有服务)。演示者有责任在服务的帮助下操作数据。

4)WorkItemController - WorkItemController可以采取用例相关的功能在布线UI控件/解除wire,视定位等

它不仅仅是MVP在SCSF/CAB作为其整体的UI应用的设计。它具有如下: -

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

所以,首先你必须检查codeplex docs,看看你的项目将在该平台/体系结构可以轻松升级。如果你刚刚开始,我会推荐CAB/SCSF,并考虑让项目具有可扩展性和企业级别。

1

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

SCSF具有依赖注入。因此,决定你将拥有什么样的UI服务。相应地将它们注入到Presenter中。

+0

感谢您的回复。 CAB SCSF模式有没有好书或电子书? – Hakim 2011-08-27 10:53:15

+0

我读过“编程Microsoft®复合UI应用程序块和智能客户端软件工厂”,然后阅读了安装程序中的SCSF chm,并完成了动手实验练习。最初只是试图一口气知道所有事情,你可以跳过一些不重要的事情。渐渐地你会感到舒服 - 只是我个人的意见! – ioWint 2011-08-30 21:17:03

+1

谢谢...我尝试过,但最终降落在知识超载:)...以及将再次尝试 – Hakim 2011-09-08 10:53:28