`
61party
  • 浏览: 1132677 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Smart Client Software Factory:简单的新建一个界面并显示出来

阅读更多

首先在VS.NET上新建一个Smart Client Software Factory的解决方案.最初自动生成的是一个Source文件夹,然后是一个子文件夹名为Infrastructure

几个Infrastructure(基础设施)项目

Infrastructure.Interface

Infrastructure.Layout

Infrastructure.Library

Infrastructure.Module

还有一个启动项目Shell,Shell下的ShellForm为整个程序的入口点,这个shellForm并不是程序的最终界面,只是一个"壳",运行时上面的内容是动态加载上去的

研究一下它的代码

WorkspaceNames.LayoutWorkspace 这个workspace的概念是什么,以后再研究

那么要往这个"壳"上加上你自己的View,就要用SCSF的模板先新建一个Module项目,有两种module可以选择,bussiness和functional

  • Functional Module -- 只是给其它模块提供一些服务,并不实现一个Use-case,不包含一个WorkItem
  • Business Module -- 实现一系列相关的用例,包含WorkItems。

我这里选的是bussiness类型,菜单上面有些选择项,可以选择生成对应的单元测试项目和接口项目。

生成Module项目以后,会生成几个文件夹Constants,Services,Views。另外还有两个类ModuleController,ModuleInitializer

这里先只关注ModuleController这个类,它继承自WorkItemController,WorkItemController是一个什么类呢?它来自Infrastructure.Interface下,看看它的源代码

它基本就是在操纵WorkItem和IView这两个对象,这里要搞清几个概念

Workspace是什么?SmartParts是什么?

先看微软官方对SmartParts的解释

Microsoft’s CAB documentation defines a SmartPart as ‘a view of data (in the MVC pattern) such as a control, a Windows Form, or a wizard page

微软的CAB文档中把SmartPart 定义为数据的视图(在MVC模式下) 比如控件,Windows 窗体,向导页

姑且就把它看成是控件吧,或者应该说它是除了容器以外的控件

再看微软官方对Workspace的解释

The components that encapsulate a particular visual layout of controls and SmartParts, such as within tabbed pages

一个特定的组件,封装控制视觉布局与SmartParts,比如"标签页"


从字面上已经能解释,Workspace实际跟我们平时项目中用到的容器控件类似,都是一个承载其它控件的容器

Workspaces are themselves controls that allow other controls to be laid out within them,In particular they are designed to allow SmartParts to be laid out within them.

Workspaces它们自身允许其它的控件放进它们之中,特别是它们被设计为让SmartParts放进它们中.

看,这句话已经说得够明白的了。

Workspaces与普通容器控件的不同就是,它们利用了CAB依赖注入容器(Workitmes)

我们可以在Workspaces集合中用AddNew关键字创建一个Workspace,然而我们并不需要这么做。可以拖放一个Workspace到屏幕,ObjectBuilder 会自动的识别这个Workspace,并把它加入到适当的集合中

Workspace分为好几种,具体可以看以下页面

http://richnewman.wordpress.com/2007/11/24/workspace-types-introduction-to-the-cabscsf-part-17/

具体概念回顾,参考我以前的文章

http://blog.csdn.net/lee576/archive/2011/05/03/6386857.aspx

以OfficeExcel来举例就清楚了,它们在Excel中各自扮演的角色一目了然.

回到主线上来,WorkItem就是业务逻辑,WorkItemController就是业务逻辑控制器啦.它所做的工作很简单,避免View与WorkItem之间的耦合,View不知道WorkItem的存在,WorkItem也不认识View,他们都只与WorkItemController发生耦合.从代码来看,WorkItemController的工作无非就是告诉View,工作在哪个Workspace之下,这就是经典的MVC模式,不是吗?

WorkItem: A runtime container of the objects and services used by a discrete part of a CAB application. Think of it as a logical sub-process or sub-application. It is the basic unit of software scoping in a CAB application. Your business logic lives in one or moreWorkItems.

英文的头一句解释似乎很抽象,"CAB程序的一个独立部分,用于对象和服务运行时容器."

说回我们刚刚生成的这个ModuleController类,如果我们想在主窗体中显示我们自己的view怎么做呢?

首先我们在Views文件夹下右键选择SCSF的模板菜单,选择Add View(with presenter)

这里我们给View起名叫Demo,会自动生成三个文件,DemoView.vb,DemoViewPresenter.vb,IDemoView.vb

哈,典型的MVP模式啊!

DemoViewPresenter类继承自Presenter基类,Presenter又干了些什么呢

设置当前的Workitem,当前的View,把它们关联起来,然后在View的三个生命周期中放上了三个虚函数,目的是便于在子类中重写达到扩展的目的,这就是事件的支持。最后它还负责析构自身,及移除workitem中的view.为什么要移除view呢?无非是为了释放掉资源,本来View就是动态加上去的。在Close的时候就移除view与workitem的关系。

最后,如果我们要把刚刚新建的Demo加到主窗体中怎么做呢?

回到ModuleController类,写上

这是把View设置到一个Workspace上面,WorkspaceNames.LayoutWorkspace

WorkspaceNames是个自定义的常量类

Public Const LayoutWorkspace As String = "LayoutWorkspace"

这个相当于是Microsoft.Practices.CompositeUI.WinForms.DeckWorkspace

证据在这里,ShellForm.Designer.vb里面

还有其它几个常量,具体都是在ShowViewInWorkspace里使用,以后再弄清楚细节

分享到:
评论

相关推荐

    Smart Client Software Factory 2010 CHM

    微软官方的Smart Client Software Factory 2010 CHM 文档,不过是英文的,配合VS 2010,SCSF 3.0使用,以下是简介: The Smart Client Software Factory is a collection of assets that enables architects and ...

    Smart Client Software Factory

    SCSF,全称Smart Client Software Factory,是由微软提供的一个工具和框架,用于简化智能客户端应用的开发。它基于微软的Enterprise Library,尤其是CAB(Composite UI Application Block),提供了构建可扩展、模块...

    SCSF2010(Smart Client Software Factory)

    The Smart Client Software Factory is a Visual Studio extension that helps software teams create composite smart client applications.

    smart client software factory 2010 帮助

    SCSF2010帮助文档,帮助你快速开发SCSF程序

    Web Client Software Factory增删改查

    5. **企业库(Enterprise Library)**:这个库是Microsoft提供的一个应用程序块集合,包括数据访问、缓存管理、日志记录等多个方面,常常被Web Client Software Factory用于实现应用的基础设施服务。 6. **增删改查...

    Smart Client系列课程(12):利用组合界面应用程序块构建智能客户端应用程序(Video)

    课程中提到的“组合界面应用程序块”是Smart Client Software Factory的一部分,这是一个设计和构建企业级Smart Client应用的工具集。应用程序块是一种可重用的软件组件,它们封装了特定的功能或设计模式,帮助...

    Programming Microsoft Composite UI Application Block and Smart Client Software Factory (Jul 2007)

    智能客户端软件工厂(Smart Client Software Factory,简称SCSF)则是微软提供的一个工具集,用于简化基于CAB的智能客户端应用的开发过程。它包含了各种模板和指导,帮助开发者快速创建符合企业级标准的、具有丰富...

    Smart Client 2010插件

    SCSF(Smart Client Software Factory,智能客户端软件工厂)是微软提出的一个框架,它基于Microsoft Patterns & Practices团队的指导原则,旨在简化开发企业级Windows客户端应用的过程。SCSF提供了一种结构化的方法...

    Programming Microsoft® Composite UI Application Block

    Programming Microsoft® Composite UI Application Block and Smart Client Software Factory WinForm的CAB/SCSF框架

    Programming.Microsoft.Composite.UI.Application.Block.and.Smart.Client.Software.Factory

    Programming.Microsoft.Composite.UI.Application.Block.and.Smart.Client.Software.Factory

    cscf 安装必备组件

    "smartclient software factory"则可能是一个用于构建智能客户端应用程序的开发平台或框架。 SmartClient Software Factory可能是微软的智能客户端解决方案框架(Smart Client Software Factory,简称SCSF),它...

    智能客户端例子

    总的来说,"智能客户端例子"是一个展示如何使用Smart Client Software Factory来构建一个利用Web服务访问数据库的桌面应用程序的示例。通过SCSF,开发者可以高效地组织代码,实现模块化设计,同时利用Web服务实现...

    SCSF.chm

    smart client software factory _may2007

    SCSFDeveloperCSLabs-20070810.zip

    SCSF(Smart Client Software Factory,智能客户端软件工厂)是一种基于微软.NET Framework的开发框架,旨在提升企业级桌面应用的开发效率和质量。该框架利用设计模式、最佳实践和可重用组件来帮助开发者构建可扩展...

    The first direct port of SCSF 2010 to 2012

    标题 "The first direct port of SCSF 2010 to 2012" 提供了一个关键的信息,即这是一个将Smart Client Software Factory (SCSF) 2010版本直接移植到2012年的项目。SCSF,全称为智能客户端软件工厂,是由微软开发的...

    Visual Studio 2010 SCSF开发模板安装文件

    Visual Studio 2010 SCSF(Smart Client Software Factory,智能客户端软件工厂)是微软推出的一种用于构建企业级Windows桌面应用的开发框架。它提供了一种结构化的方法来创建可重用的、可扩展的业务组件和用户界面...

    .NET企业级项目开发-1期 技术术语.doc

    13. **SCSF(Smart Client Software Factory)**:智能客户端软件工厂,是一套工具和模板,用于构建智能客户端应用,提高开发效率。 14. **WCSF(Web Client Software Factory)**:Web客户端软件工厂,类似SCSF,...

    SCSF实例

    SCSF(Smart Client Software Factory)实例是基于微软的Composite UI Application Block(复合UI应用程序块)技术,这是一种设计和构建智能客户端应用的框架。这个实例旨在帮助开发者更好地理解和应用Cab技术,提升...

    CAB SCSF - Architecture Guidance

    **CAB SCSF - 架构**是一本专为希望深入了解基于Microsoft的Composite Application Block (CAB) 和 Smart Client Software Factory (SCSF) 设计复合智能客户端应用程序的读者准备的书籍。该书由微软奥地利分公司的...

    wcf模式与实践系列

    在给定的文件"20080110--模式与实践系列课程(2):Smart Client Software Factory.pdf"中,可能会涵盖如何使用智能客户端软件工厂创建和管理WCF客户端。这是一个设计模式,用于简化客户端应用程序的开发,使其能够...

Global site tag (gtag.js) - Google Analytics