摘要:
《WF编程》系列之17 - 工作流与外部事件:工作流参数 居然有两个多月没有更新WF笔记,这段时间也许真的太忙了,毕业的事情,工作的事情,从今天起继续更新. 3.2.2 工作流参数 Runtime的CreateWorkflow方法有一个重载允许我们向新的工作流实例传递参数,参数的类型是Dictionary(名值对的集合).... 阅读全文
摘要:
《WF编程》系列之16 - 工作流与外部世界:生存周期事件 3.2 工作流与外部世界 对许多工作流来说,有一个重要的步骤是决定工作流与应用程序之间如何交互.我们如何得知工作流是否顺利完成?如何从运行中的工作流实例获取数据?如何获取已经完成的工作流的数据?这一节,我们来介绍一些解决这些问题的基本技术原理. 工作流的基本通信机制包括事件,方法和工作流参数.应用程序可以触发工作流实例的事件,也... 阅读全文
摘要:
《WF编程》系列之15 - 顺序工作流与SequenceActivity 3 顺序工作流 Windows Worklow提供两种现成可用的工作流执行风格:顺序和事件驱动(event-driven).顺序工作流的执行过程是一个连续的步骤序列,它在完成一个活动之后会去执行到下一个.比如用顺序工作流模拟将访问记录从网站日志转移到数据库中的操作:第一步,下载日志文件;第二步,将日志批量插入数据库中... 阅读全文
摘要:
《WF编程》系列之14 - 工作流编写方式:结合代码与XAML 2.4结合代码与XAML Visual Studio还提供另外一种生成工作流的方式:代码分离与XAML标记结合的方式,即通常我们所说的code-beside.采用这种方式时,设计器会将工作流标记存储到一个XOML文件中,我们则可以在C#或Visual Basic源代码文件里扩充定义.这种开发方式的项目模板是Sequential ... 阅读全文
摘要:
《WF编程》系列之13 - XAML激活 2.3.3 XAML激活 在有些环境中,编译过程会变成一种负担.想象一下,数据库中包含了上千个为特定用户量身打造的工作流定义.在这种情形下,我们也许想要避免总是创建新的程序集而引起的性能消耗.而我们需要的就是以最低的开销加载工作流,然后执行.幸运的是,这正是以纯XAML方式编写工作流的优点. 如果要激活之前创建的工作流,我们需要调整一下XOML文件.... 阅读全文
摘要:
《WF编程》系列之12 - 编译工作流:XAML序列化 2.3.2.4 XAML序列化 我们可以从工作流实例中生成XAML,因为XAML本质上就是托管对象的XML序列化.下面的代码将输出正在运行的工作流的标记: using (WorkflowRuntime runtime = new WorkflowRuntime()) using (StringWriter stream = new ... 阅读全文
摘要:
《WF编程》系列之11 - 编译工作流:使用MSBUILD 2.3.2.3 使用MSBuild MSBuild是.NET 2.0 Runtime中包含的基于XML的生成引擎.Visual Studio中所有的.csproj和.vbproj项目文件都可以看作是MSBuild文件. Visual Studio 2005生成项目的过程实际上是IDE使用MSBuild托管的线程来执行的.开发人员也可... 阅读全文
摘要:
《WF编程》系列之10 - 编译工作流:使用WorkflowCompiler类 2.3.2.2 使用WorkflowCompiler类 我们可以使用WorkflowCompiler类和WorkflowCompilerResults类以编程的方式来编译工作流定义并得到一个程序集.其实Wfc.exe就是通过使用WorkflowCompiler类来执行编译过程的.下图是和编译相关的几个类: ... 阅读全文
摘要:
《WF编程》系列之9 - 编译工作流:使用WFC.EXE 2.3.2 编译工作流 Windows Worfklow提供两种工作流编译方式,通过WorkflowCompiler类(位于System.Workflow.ComponentModel.Compiler名称空间)来编译,或者使用一个命令行编译工具(其实还是通过WorkflowCompiler类实现编译的). 工作流编译器在将工作流定义... 阅读全文
摘要:
《WF编程》系列之8 - 工作流编写方式:纯XAML 2.3 纯XAML 下面是一段纯XAML的工作流定义: 这段XAML的根元素是SequentialWorkflowActivity.WF的根活动可以是SequentialWorkflowActivity或StateMachineWorkflowActivity.这两个类以不同方式管理其子活动的执行过程.... 阅读全文