惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
罗磊的独立博客
宝玉的分享
宝玉的分享
月光博客
月光博客
V
V2EX
博客园 - 司徒正美
Vercel News
Vercel News
量子位
Y
Y Combinator Blog
美团技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
博客园 - Franky
小众软件
小众软件
I
InfoQ
A
About on SuperTechFans

博客园 - SuperBowl

新蛋(成都)急聘.net 高级软件工程师 NetTiers模板中各个选项的一些解释 敏捷实践--个人与过程 敏捷实践--持续集成工具CC.net配置 .net4.0 & VS2010 敏捷实践--用户故事和用例的选择 .Net 常用开发工具 敏捷实践--准备 敏捷实践--启航 敏捷软件开发之持续集成 6,Composite UI Application Block (CAB) WorkItem介绍 5,Composite UI Application Block (CAB) WorkSpace介绍 (转)2007年IT薪资调查 IT人更关注职业前途 3,Composite UI Application Block (CAB) 结构介绍 2,Composite UI Application Block (CAB) 概念和术语 1,Composite UI Application Block (CAB) 介绍 很想提笔写点什么 读完“影响力” Hello ,Atlantic
4,Composite UI Application Block (CAB) FormShellApplicat...
SuperBowl · 2008-01-25 · via 博客园 - SuperBowl
 

现在我们来看看基于CAB的应用程序中非常重要的一个类。这个类可以认为是一个CAB应用的启动点。他就是FormShellApplication

FormShellApplication的继承关系如下:


该类需要传入两个类型参数,一个是继承自
WorkItem的类(如果不需要通过重载WorkItemOnRunStarted方法来实现更多处理,这里可以直接使用WorkItem,一个是继承自Form的窗体。

public class Program:FormShellApplication<MyWorkItem,ShellForm>

通常我们在Main方法中调用其Run方法,执行Run方法会初始化许多应用程序信息。可以通过override来重写或增加FormShellApplication的方法处理。

FormShellApplication的初始化包括(可以通过子类重载FormShellApplication的相关方法来判断其执行顺序)以下步骤:

1. RegisterUnhandledExceptionHandler

2. 创建 Build strategies

3. 创建顶级 WorkItem

4. 创建和初始化 Visualizer

5. 添加 services

6.创建Shell

CAB提供的标准服务如下,开发人员可以在此基础上进行扩展:

ü SimpleWorkItemActivationService

ü FileCatalogModuleEnumerator

ü WindowsPrincipalAuthenticationService

ü ModuleLoaderService

ü DataProtectionCryptographyService

ü TraceSourceCatalogService

ü CommandAdapterMapService

ü WorkItemExtensionService

ü WorkItemTypeCatalogService

ü ControlActivationService

执行了FormShellApplication的子类的Run方法,一个CAB应用程序就算是启动了。随后就是根据自己的需要来执行WorkItem了。