如何从MVP模式转变为SCSF CAB模式?

如何从MVP模式转变为SCSF CAB模式?,mvp,cab,scsf,Mvp,Cab,Scsf,我以MVP模式设计和开发了我的应用程序。我没有使用任何软件工厂来实现这一点。现在我想转到SCSF模式和CAB结构 我需要知道,由于CAB结构只实现MVP,是否可以以任何更简单的方式实现它。在CAB和SCSF中,有代码就绪的MVP类(和接口)。所以,如果您已经干净地实现了它,那么一旦您掌握了类的窍门,就可以复制您的方法 我将尝试简要介绍:- 1) IView——它是一个视图引用,它只公开那些可由Presenter(或任何其他类)访问的集合属性/方法 2) 视图--它具有Presenter的引用,可

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


我需要知道,由于CAB结构只实现MVP,是否可以以任何更简单的方式实现它。

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

我将尝试简要介绍:-

1) IView——它是一个视图引用,它只公开那些可由Presenter(或任何其他类)访问的集合属性/方法

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

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

4) WorkItemController——WorkItemController可以采用用例相关的功能,如ui控件的接线/解接线、视图的定位等

它不仅仅是SCSF/CAB中的MVP,而是作为UI应用程序的总体设计。其中包括:-

  • 模块化结构
  • 按需架构
  • 服务模式
  • 命令
  • 事件处理程序 等等

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

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

    我将尝试简要介绍:-

    1) IView——它是一个视图引用,它只公开那些可由Presenter(或任何其他类)访问的集合属性/方法

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

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

    4) WorkItemController——WorkItemController可以采用用例相关的功能,如ui控件的接线/解接线、视图的定位等

    它不仅仅是SCSF/CAB中的MVP,而是作为UI应用程序的总体设计。其中包括:-

  • 模块化结构
  • 按需架构
  • 服务模式
  • 命令
  • 事件处理程序 等等

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

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


    SCSF具有依赖注入。因此,决定您将拥有哪些UI服务。将它们相应地注入演示者。

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


    SCSF具有依赖注入。因此,决定您将拥有哪些UI服务。相应地将它们输入演示者。

    谢谢您的回复。CAB SCSF模式有什么好书或电子书吗?我通读了“编程Microsoft®复合UI应用程序块和智能客户端软件工厂”,然后通读了安装程序提供的SCSF chm,并进行了实践性实验练习。起初,你可以跳过一些不重要的事情,而不是试图一次就知道所有的事情。渐渐地,你会发现自己是个骗子