Welcome

首页 / 软件开发 / C# / wf框架编程-设计器部分:工作流设计器

wf框架编程-设计器部分:工作流设计器2009-10-14 cnblogs lodestar1 Net设计器基础框架

.net设计器基础框架所在的命名空间是System.ComponentModel.Design,而wf、asp.net、win from这三种设计器架构都是建立在.Net本身提供的基础框架之上。

wf设计器框架所在的命名空间是System.Workflow.ComponentModel.Design,相关类都在这个NameSpace里面。在研究wf设计器之前,我们先看看Winform设计器。对Winform设计器的研究,对WF设计器的理解很有帮助。

1.1 Winform设计器设计:

曾经研究过几天SharpDevelop,一个免费开源的IDE开发环境,并且有类似eclipse的插件思想。在这个开源IDE里面有比较完整的Winform设计器实现。Winform

IDE主要依靠下面几个接口和类实现。只要实现了相关的接口和抽象,.Net框架会帮助我们实现Winform设计器。很像模板方法。相应的接口和类为:

wf框架编程-设计器部分:工作流设计器

Winform设计器结构

ü DesingerHost:

1.服务管理:服务容器和服务提供者

2.组件管理和事务管理

ü ISite:

绑定组件和容器,DesignerHost中所有的服务都可以通过ISite(GetService)得到

ü IServiceProvide

ü IDesinger

提供定制服务,设计期在组件的上下文菜单中添加菜单命令,添加的组件实现操作

Initialize方法中与ICompont关联

工具箱实现:

ü IToolboxService

工具箱服务,主要目的是存储ToolboxItem

如何填充工具箱?

要使用ToolboxItemFilterAttribute

AddToolboxEntries:listbox.Items.Add(new SelfHostToolboxItem(entry)

CategoryNames:工具箱类别属性

AddCreator:

其中的WorkflowDesignerControl我觉得是Mediator模式的应用

ü 选取服务

相关assemblies和CCU的容器:TypeProvider

大家可以down下SharpDevelop的源代码看看,有本书专门介绍这个的。