堅持學習WF文章索引

堅持學習WF文章索引

堅持學習WF(1):從HelloWorld開始
本文主要通過實現了一個可以接受參數的HelloWorld程序來了解WF。

堅持學習WF(2):WF創作模式和設計時工具
堅持學習WF(3):WF框架概覽
2.3兩篇主要全面的闡述了WF框架和Visual Studio對開發WF的一些設計時的工具。

堅持學習WF(4):活動(Activity)和依賴屬性(DependencyProperty)
堅持學習WF(5):自定義活動(CustomActivity)
4.5兩篇對主要對活動(Actibity)的介紹和依賴屬性(DependencyObject)和DependencyProperty事件的使用。

堅持學習WF(6):開發可複用的宿主程序
主要實現兩個類來對WorkflowInstance和WorkflowRuntime進行簡單的封裝。

堅持學習WF(7):流程控制(Flow Control)
主要說了WF中和流程相關的活動,主要包括以下這些活動:IfElseActivity,WhileActivity,ParallelActivity,ReplicatorActivity,ConditionedActivityGroup,InvokeWorkflowActivity,TerminateActivity,SuspendActivity等。

堅持學習WF(8):本地服務之調用外部方法
堅持學習WF(9):本地服務之事件處理
工作流能夠使用方法和事件通過消息與宿主程序交互。 事件用於將數據發送到工作流,而工作流使用方法將數據發送到主機應用程序,8.9兩篇主要說了本地服務如何調用外部方法和接收事件。

堅持學習WF(10):在工作流中使用關聯
當工作流實例在本地服務接口上偵聽相同事件的不同實例時,就無法確定該響應哪個事件。如何解決這個問題呢,我們就需要在工作流中使用關聯。

堅持學習WF(11):工作流通信與隊列
WF 提供的通信模型是構建於隊列系統的基礎之上,我們可以使用自定義活動來註冊以接收關於隊列的消息,而宿主應用程序中的服務則發送關於隊列的消息。自定義活動可以使用此模型來處理外部事件,也可以傳遞異步活動執行的完成。這樣,您的活動可以先執行到某一點,然後等待激發因素的到來以便繼續執行。

堅持學習WF(12):使用EventHandlingScopeActivity活動
EventHandlingScopeActivity活動包含一個主線子活動和一組事件處理活動(EventHandlersActivity),它的主線子活動中只能包含一個子活動。它會執行其主子活動比如SequenceActivity。 同時,可能會執行每個EventDrivenActivity,也可能不執行它們,這取決於在SequenceActivity 活動執行時是否發生了它們的事件,當主線活動執行完了整個EventHandlingScopeActivity活動也就結束了。

堅持學習WF(13):WF中的持久化服務
主要介紹瞭如何使用WF中提供的SqlWorkflowPersistenceService來進行持久化存儲。

堅持學習WF(14):自定義持久化服務
我們除了使用WF提供的SqlWorkflowPersistenceService外,還可以自定義持久化服務。因爲有的時候你可能不想使用Sql Server數據庫,我們就可以通過自定義持久化服務來使用其他的數據庫,文件等來進行持久化存儲。 

堅持學習WF(15):狀態機工作流
本文主要介紹WF中狀態機工作流的基礎知識,狀態機工作流和順序型工作流不同。順序型工作流一般是比較固定的,可預測的,和系統交互的時候比較多。而狀態機工作流一般是不可預測,和人的交互會比較多一些,一般有回退流程的時候使用狀態機工作流會比較好一點,如何正確的選擇順序型工作流還是狀態機工作流是十分重要的。

堅持學習WF(16):WF中的事務
在關係型數據庫中支持事務已經有10幾年了,事務用來解決數據的完整性、一致性等等問題。在WF中提供了TransactionScopeActivity活動用來支持事務,當該活動執行時一個System.Transactions.Transaction實例就被創建了,如果TransactionScopeActivity中的子活動有一個有異常,就會執行回滾操作。


堅持學習WF(17):WF中的補償
事務是你在做一組更新時要不成功,要不失敗,不可能只部分更新。事務最經典的使用場合就是在關係型數據庫中。補償是取消之前已經成功的操作,在我們的工作流中我們可能完成一項任務有很多活動組成,比如我們的活動都使用了TransactionScopeActivity,我們在之後發現錯誤了,想要取消之前成功的操作,這個和事務就沒有關係了,因爲事務已經成功了。這個時候我們就可以使用補償。 

堅持學習WF(18):使用IPendingWork接口
WF會定期在各個持久性點(Persistence Point)檢查並將工作流實例保存到持久化存儲中,這樣如果工作流出現錯誤或是異常終止時相關的信息就會被存儲,下次加載工作流實例時就會從此做爲開始點。這個主要是針對工作內置的服務。工作流的外部服務使用工作批次來保留狀態信息。 這些服務對其工作項進行批處理並共享與工作流的事務相同的事務。 如果工作流尚未提交事務,則服務仍可以在持久點期間對某些工作項進行批處理。WF提供 IWorkBatch 和 IPendingWork 以幫助服務和工作流實例保留狀態信息。 

堅持學習WF(19):工作流線程
WF中提供了很多內置的服務,其中工作流計劃服務是用來管理工作流實例線程的。默認情況下WF會自動使用DefaultWorkflowSchedulerService服務,我們還可以手動去加載ManualWorkflowSchedulerService服務。本文利用MSDN中的一個例子來說明工作流中的線程以及如何使用DefaultWorkflowSchedulerService和ManualWorkflowSchedulerService服務。

堅持學習WF(20):規則引擎中的活動條件
堅持學習WF(21):規則引擎中的RuleSet
WF提供了非常靈活,強大和簡單易懂的規則引擎。這幾篇文章介紹了WF中規則引擎的相關知識。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章