最近正在學習工作流,正好從網上搜索到一個Asp.net工作流(WWF+LINQ)的例子,之前學習MOSS時接觸 過工作流,不過那是針對MOSS的工作流,我一直從事B/S架構開發,知道工作流可用於很多環境,其中就包含 asp.net,這讓我非常想做一個這樣的實例。看了它的源碼,大部分都覺的非常不錯,不過也有些個人認為 不太滿意的地方,這可能是因為作者考慮到只是一個簡單的demo,沒有必要注意一些非技術方面的細節問 題。
項目介紹:一個報銷二級審批工作流,數據層操作采用LINQ TO SQL,雖然MS不再發展示它。
第一級:員工提交報銷表給PM(經理),如果數目大於1000RMB,經理如果選擇通過審批,工作流會到副 總的二級審批,同時經理可以直接選擇拒絕。
第二級:PV(副總),副總收到PM的審批後,可以選擇通過或者是拒絕,如果通過,工作流會提交到財 務。由財務最後結束工作流。
流程圖如下:
我創建的工作流與原作者的源碼有以下幾點不同:
1:原文的工作流采用的是狀態機工作流,而這裡我采用順序工作流。
2:把數據操作部分和業務邏輯以及頁面層功能完全分開,即,只要是和數據訪問,操作相關的代碼只 允許出現在數據處理層中,而業務邏輯層以及頁面層均不允許,頁面層只和業務邏輯層溝通,不允許直接 訪問數據處理層。
3:工程的命名上有改動,例如:
解決方案名稱:ApproveWorkFlow, 頁面層叫ApproveWorkFlow.Web。
4:對相關的方法做了適當的改進。
5:增加方法以及文檔注釋。
項目結構圖如下: