2011-02-23 71 views
1

我正在研究Microsoft WF樣本,並發現它們序列化/反序列化尚未完成其狀態的工作流。我不喜歡它,因爲工作流是一個過程,它不需要任何額外的數據來從不同的線程或代碼部分繼續。來自業務對象的工作流基礎反序列化

也許我錯過了什麼。如果有可能,您可以分享保存/加載未完成工作流程的示例嗎?也許替代工作流框架可以在沒有序列化/反序列化的情況下完成。例如,它可以從業務對象狀態中恢復。

回答

2

你在想太小。除了你現在可以想象的以外,還有許多用途。所有的工作流框架(除非他們使用某種類型的對象db?)將序列化工作流狀態,以便以後可以繼續使用。微軟WF,K2 BlackPerl和其他許多人都這樣做。 K2會這樣做,因爲您可以讓項目通過工作流v1,然後在中間某人將工作流更新爲v2,但K2足夠聰明,知道應該繼續在v1工作流程下處理該項目。

也許我錯過了你的問題,但它似乎不喜歡它序列化工作流存儲。

+0

謝謝達斯汀。對我來說,我需要在兩個地方保持狀態有點奇怪 - 第一個是工作流程,第二個是業務對象。也許這是正確的,因爲它是不同的策略。但是現在它讓我感到困惑。 – Danil 2011-02-23 16:29:16

+0

您的業務對象需要它自己的狀態。該工作流程必須連同自己的長期存儲以及該項目的狀態。所以它不完全重複。但它可能會讓人困惑。 WF的定義令人困惑:) – 2011-02-23 16:35:17