2010-02-18 58 views
1

我有兩個擁有相同工作流程的客戶(創建文件 - >傳輸文件 - >等待響應 - >向內部團隊發送響應);然而,每個客戶的每個步驟的實施方式都不相同。例如,一個客戶需要通過SFTP發送平面文件,而另一個客戶需要通過FTP發送XML文件。如何創建可重複使用的WF順序工作流程?

我想創建一個順序的工作流,使用Microsoft Workflow Foundation(WF),併爲多個供應商重複使用此工作流程。每個動作對外部模塊的調用可以使用相同的接口,但是具體實現不同。

但是,我不熟悉WF,我不知道如何實現這一點。有人能指出我使用這種模式的正確方法嗎?無論我選擇WF 3.5還是WF 4.0,它都會產生影響嗎?

謝謝。

回答

0

您可以創建編排主要工作的活動,並將實現細節推遲到外部對象。 WF3和WF4都有類似的機制,WF3中的WorkflowRuntimeService和WF4中的Extensions,您可以在其中爲活動添加附加到運行時環境的機制。在你的活動中,你傳遞了一個上下文,你可以使用它來檢索使用的實際擴展名,並調用它來完成所需的工作。

0

從你所描述的,很明顯你正在處理不同類型的文件(xml,raw等)。我肯定會在這種情況下編寫接口,因爲您有相同的過程,但每種情況下都有不同的代碼詳細信息。例如,您具有使用SFTP端口或FTP發送的TransportFile「事物」。您可以在構造函數中或通過任何其他方式指定端口。 「WaitForResponse」可以通過讓你的「GetResponseActvity」實現WF4.0提供的AsynchCodeActivity來實現。對於每一個特定的任務,你可能需要一個助手類爲你的「一般目的」行爲。 WF的好處在於,您可以通過拖放這些活動並使用這些幫助對象配置它們來爲設計者中的不同客戶完成所有定製。

0

我不知道這是否會通過使工作流程只是調用WCF服務和不同的通信路徑將被抽象成WCF通道類可以更好地實現......

0

你可以看看strategy pattern,其中一個特定的實現可以在運行時設置。

相關問題