2011-04-27 45 views
2

我最近加入了一個使用Workflow Foundation 4.0來爲業務流程建模的項目。Workflow Foundation以及與長時間運行的實例的向後兼容性

我們有一個設計工具,以便客戶的顧問可以自定義工作流定義。我們還堅持工作流實例和定義。工作流程可能需要很長時間(例如幾個月或幾年)。

我的問題是我們如何管理每個版本的向後兼容性,因爲我們不一定知道定製是什麼以及哪些傳統工作流仍在運行?我們正在從XAML加載,但即使對工作流定義進行了小幅改動,也無法加載。遷移腳本是我最初的想法,但考慮到WF工作流程的複雜性,它似乎不是微不足道的。

回答

3

首先,XOML是3.0; WF4使用直線上的XAML。

這樣做有兩種選擇。這取決於是否需要升級正在運行的長時間運行的工作流程,或者是否需要更新工作流程並將其用於所有新實例,同時保持當前實例在先前版本上運行。讓我們打電話給這兩個選項升級多版本策略。

重新多版本
我目前這樣做。實質上,您必須在AppDomain內隔離相同工作流程的每個不同版本。從xaml反序列化或創建一個類型的實例是同樣的事情 - 它們都會導致程序集加載到當前AppDomain中。如果工作流的v1在程序集A.1中定義,並且工作流的V2在程序集A.2中定義,那麼如果您不小心,可能會遇到綁定問題。隔離其自己的AppDomain中的每個版本有助於減少發生這種情況的可能性。

重新升級
這個目前不被支持,但也有包括本在(近)未來的發行計劃。 Ron Jacobs gave a presentation at PDC10 last October詳細介紹了WF4期貨。在演示文稿中提到了三件事(我記得) - 元數據錯誤破壞了構建,狀態機,並在執行過程中爲工作流提供了升級途徑。我可以告訴你,狀態機是在最近發佈的Platform Update中發佈的,而且我被告知元數據錯誤打破構建功能也即將推出。我假設升級路徑功能也即將推出。

+0

感謝您的XOML/XAML校正。據此編輯。 – 2011-04-27 23:13:27