日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微软Workflow Foundation 高阶透视

發(fā)布時間:2025/3/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微软Workflow Foundation 高阶透视 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是工作流?
工作流是一組同軟件或人交互的活動,以及活動間的聯(lián)系,可以像一個流程圖,也可以像一個狀態(tài)機(jī)。


[圖一,左邊是流程圖,右邊是狀態(tài)機(jī)]

?

什么是微軟Workflow Foundation?
微軟Workflow Foundation 是一組由基礎(chǔ)運(yùn)行組件和開發(fā)工具組成的工作流開發(fā)平臺,它不是一個工作流產(chǎn)品。

Workflow Foundation 中的工作流模式
Workflow Foundation 中的工作流模式分為順序工作流和狀態(tài)機(jī)工作流兩種。

?

什么是順序工作流(Sequential Workflow)?
順序工作流的執(zhí)行過程是一個連續(xù)的活動序列,它在完成一個活動之后會去執(zhí)行下一個活動,它允許分支和循環(huán)以及接收外部事件,但是只向前執(zhí)行。

?

什么是狀態(tài)機(jī)工作流(State Machine Workflow)?
一些業(yè)務(wù)過程在進(jìn)行中呈現(xiàn)出不同的狀態(tài),在Workflow Foundation中用狀態(tài)機(jī)來表示實(shí)際業(yè)務(wù)過程中的狀態(tài)。狀態(tài)機(jī)工作流由一組狀態(tài)組成,每個狀態(tài)可以接收一組事件,由事件來決定狀態(tài)之間的轉(zhuǎn)換,這樣就實(shí)現(xiàn)了工作流的執(zhí)行過程。
?

Workflow Foundation 架構(gòu)



基礎(chǔ)活動庫/自定義活動庫(Base Activity Library/Custom Activity Library)?
運(yùn)行時引擎(Runtime Engine)?
運(yùn)行時服務(wù)(Runtime Services)?

?

活動庫為工作流提供基本的元件,每個活動是相對獨(dú)立的可執(zhí)行單元。
運(yùn)行時引擎為工作流提供運(yùn)行環(huán)境,管理工作流的生命周期。
運(yùn)行時服務(wù)會在運(yùn)行時引擎中加載,他們?yōu)楣ぷ髁魈峁┹o助的服務(wù)。

?

Workflow Foundation 中的運(yùn)行時服務(wù)包括:
計(jì)劃服務(wù)(管理工作流的工作方式):DefaultWorkflowSchedulerService、ManualWorkflowSchedulerService。
批處理服務(wù):DefaultWorkflowCommitWorkBatchService,SharedConnectionWorkflowCommitWorkService。
持久化服務(wù)(將工作流實(shí)例存儲在硬盤上):SqlWorkflowPresistenceService。
跟蹤服務(wù):SqlTrackingService,SqlTrackingQuery。

以上服務(wù)均要通過運(yùn)行時引擎(Workflow Runtime)加載。

?

Workflow 如何與外部交互?
組成Workflow的每一個Activity都可以接收外部事件,由Workflow接受的接口中的事件可將外部數(shù)據(jù)發(fā)送到工作流,工作流通過方法將數(shù)據(jù)發(fā)送給外部。

?
Workflow Foundation 如何支持分布式應(yīng)用?
Workflow Foundation 內(nèi)建支持基于Web Service 與 WCF 的分布式應(yīng)用。在基礎(chǔ)活動庫中提供了通用的Web Service活動。

通過WebServiceInputActivity、WebServiceOutputActivity將工作流發(fā)布為Web服務(wù)。
通過InvokeWebServiceActivity調(diào)用Web服務(wù)。

?

Workflow Foundation 開發(fā)基本過程包括哪些?
1、分析業(yè)務(wù)流程,提取功能點(diǎn)并封裝成Activity,可以利用微軟的基礎(chǔ)Activity庫與自定義Activity組合。
基礎(chǔ)Activity實(shí)現(xiàn)通用操作,自定義Activity實(shí)現(xiàn)業(yè)務(wù)。

2、利用微軟提供的Workflow Designer 組織Activity 配置控制邏輯

3、找到Workflow與應(yīng)用程序的交互點(diǎn),通過定義接口使應(yīng)用程序與Workflow建立協(xié)作關(guān)系,在應(yīng)用程序中實(shí)現(xiàn)這些接口

4、根據(jù)業(yè)務(wù)需要為工作流配置運(yùn)行時要啟用的服務(wù),如持久化、計(jì)劃服務(wù)等。

?

Workflow Foundation 運(yùn)行環(huán)境/開發(fā)環(huán)境
運(yùn)行環(huán)境:
Windows Vista
Windows XP
Windows 2003

開發(fā)環(huán)境:
Visual Studio 2005+Visual Studio 2005 Extensions for .net 3.0( Workflow Foundation )
Visual Studio 2008


?

見微知著 — 從一小段代碼觀察Workflow Foundation
一段工作在Asp.net的全局代碼:

  • void?Application_Start(object?sender,?EventArgs?e)
  • ????{
  • ????????//創(chuàng)建工作流運(yùn)行時實(shí)例
  • ????????System.Workflow.Runtime.WorkflowRuntime?workflowRuntime?=
  • ????????new?System.Workflow.Runtime.WorkflowRuntime();

  • ????????//創(chuàng)建工作流計(jì)劃服務(wù)并在運(yùn)行時服務(wù)中加載
  • ????????System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService?manualService?=
  • ????????new?System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService();
  • ????????workflowRuntime.AddService(manualService);

  • ????????//啟動工作流運(yùn)行時
  • ????????workflowRuntime.StartRuntime();

  • ????????//存儲工作流運(yùn)行時實(shí)例到Application對象?這是Asp.net中的全局對象
  • ????????Application["WorkflowRuntime"]?=?workflowRuntime;
  • ????}

  • 一段工作Asp.net頁中的代碼:
  • protected?void?StartRuntime_Click(object?sender,?EventArgs?e)
  • ????{
  • ????????//引用工作流運(yùn)行時對象
  • ????????WorkflowRuntime?workflowRuntime?=?Application["WorkflowRuntime"]?as?WorkflowRuntime;

  • ????????//從運(yùn)行時對象中取出計(jì)劃服務(wù)實(shí)例
  • ????????ManualWorkflowSchedulerService?manualScheduler?=
  • ????????workflowRuntime.GetService(typeof(ManualWorkflowSchedulerService))
  • ????????as?ManualWorkflowSchedulerService;

  • ????????//通過運(yùn)行時對象創(chuàng)建一個類型為ASPNetSequentialWorkflow的順序工作流實(shí)例
  • ????????WorkflowInstance?instance?=?workflowRuntime.CreateWorkflow(
  • ????????typeof(ASPNetSequentialWorkflow));
  • ????????//啟動工作流實(shí)例
  • ????????instance.Start();
  • ????????//讓工作流實(shí)例參與計(jì)劃服務(wù)
  • ????????manualScheduler.RunWorkflow(instance.InstanceId);
  • }
  • 轉(zhuǎn)載于:https://www.cnblogs.com/JiangMingFeng/archive/2009/09/09/1563320.html

    總結(jié)

    以上是生活随笔為你收集整理的微软Workflow Foundation 高阶透视的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。