一个CAB应用程序是由若干个Modules(DLLs)组成的。每个Module包含了很多的组件(Componet),这些组件既可以是可视化的也可以非可视化的组件,比方说SmartPart,Workspace,WorkItems,Services等等。
Component
CAB应用程序的最小单元是Component,它包含了下列类型的Component;
Visual Element
- SmartParts
- Items(Views 和 Controls)
Support for visual elements
- WorkItems
- Workspaces
- UIExtensionSites
Non-visual elements
- Commands
- EventTopics
- Services
Module
前面我们提到CAB应用程序是由Modules组成的,每个Module是一个独立的部署单元,CAB中提供一个在运行时加载Module的服务,在缺省情况下,该服务使用一个名为ProfileCatalog.xml文件来加载Modules。
当CAB加载一个模块的时候,它使用反射(Reflection)来判断该Module中是否包含一个实现IModule接口的类(通常情况下通过集成ModuleInit类来实现)。
我们可以使用SCSF来创建两种不同类型的Module:
- Functional Module -- 只是给其它模块提供一些服务,并不实现一个Use-case,不包含一个WorkItem
- Business Module -- 实现一系列相关的用例,包含WorkItems。
没有评论:
发表评论