Posts Tagged ‘Runtime’

《WF编程》系列之44 – 承载工作流:跟踪服务 Tracking Service

Windows Workflow 提供了可扩展可收缩的跟踪功能来捕捉和记录工作流的执行信息。对于接收到的工作流信息,跟踪服务会使用跟踪配置(tracking profile)来进行筛选。WF Runtime可以发送许多信息,包括工作流事件、活动状态更改、规则判断和我们的自定义检测数据(custom instrumentation data)。跟踪服务有能力决定如何处理接收到的数据,可以把它们记录到日志文件里,也可以保存到数据库中。跟踪服务会参与到工作流Runtime中来,以确保它记录的信息是一致并且持久的。

《WF编程》系列之43 – 承载工作流:持久性服务 Persistence Services

工作流在长时间运行时难免会遇到一些问题,许多业务逻辑需要花费数日、数周乃至数月。在这段时间中,我们不能让工作流实例一直驻留在内存中(比如,我们需要一份开支报告,而不巧的是对此负责的会计师却在西班牙海滩休假,怎么办呢?)。在Windows Workflow中,可以通过持久化服务来解决长时间运行的工作流可能遇到的问题。

《WF编程》系列之42 – 承载工作流:调度(Scheduling)服务

在WF中,调度服务的职责是将工作流安排到线程上来执行。WF提供了两个调度服务:DefaultWorkflowSchedulerService和ManualWorkflowSchedulerService。如果我们不去显式的配置调度服务,Runtime会使用默认的调度器(DefaultWorkflowSchedulerService)。这两个调度器都继承自 WorkflowSchedulerService类。如果我们需要自定义的调度逻辑,也可以从此基类继承,并重写它的虚方法。

《WF编程》系列之41 – 承载工作流:日志和配置文件

Windows Workflow 其实是一个Runtime,而不是应用程序。在启动工作流之前,宿主进程必须先加载并运行工作流Runtime。宿主进程告诉Runtime要创建什么类型的工作流,Runtime则负责管理工作流的生命周期并通知宿主进程重要的生命周期事件,比如工作流的完成和终结。Runtime并不挑剔它的宿主,宿主可以是台式机上的智能客户端应用程序,也可以是机架上的服务器中运行的ASP.NET进程。所有宿主进程需要做的只是加载.NET 3.0工作流程序集而已。

《WF编程》系列之29 – 本地通信事件:HandleExternalEventActivity & 活动生成器

像CallExternalMethod活动一样,HandleExternalEvent活动也有一个必须设置的InterfaceType属性。

《WF编程》系列之18 – 触发事件与调用方法:服务合同 Service Contracts

许多开发人员想要建立一个更加正式的机制来方便和工作流交互.尽管使用Dictionary可以简单灵活的向工作流传递数据,但这种方法需要参数名称和伴随属性的严格匹配.而且我们只可以在工作流开始时使用参数向工作流传递数据,或在结束是获取数据.许多工作流需要在执行过程的不同时期和宿主交换数据.我们可以使用事件和方法调用来达到这个目的.这一节,我们来讨论数据传输通信的基本原理.

《WF编程》系列之17 – 工作流与外部事件:工作流参数

Runtime的CreateWorkflow方法有一个重载允许我们向新的工作流实例传递参数,参数的类型是Dictionary(名值对的集合).

《WF编程》系列之16 – 工作流与外部世界:生存周期事件

对许多工作流来说,有一个重要的步骤是决定工作流与应用程序之间如何交互.我们如何得知工作流是否顺利完成?如何从运行中的工作流实例获取数据?如何获取已经完成的工作流的数据?这一节,我们来介绍一些解决这些问题的基本技术原理.

《WF编程》系列之4 – 漫游工作流:Windows Workflow Runtime及其服务

在Windows Workflow中,活动可以视作提交给工作流处理器执行的指令或代码,而这个工作流处理器就是WF Runtime.为了启动工作流,我们必须托管Runtime与工作流服务.