2011-03-27 83 views
2

我的團隊一直負責設計一個工作流驅動的Web應用程序。我需要一些關於設計的建議。ASP.Net Web應用程序的工作流設計建議?

工作流程需要是動態的。意思是,用戶可以通過某個界面定義工作流程,並將這些工作流程應用到給定的場景(這些定義將存在於SQL 2008數據庫中)。場景由業務定義,並且永遠不會改變。所以可能只有兩種類型的工作流可以定義。工作流程不一定是線性的。某種狀態會推動工作流程。國家也是動態的,但只存在於工作流程中。

我一直在尋找工作流和狀態機的例子,我的腦袋正在旋轉。我不確定我想要利用Workflow Foundation或我們開發的東西。我已經看到this,並認爲它可能工作,但我不確定該州的全面實施將爲我們工作。

回答

3

您可以使用WF4來做到這一點。我從來沒有使用Objectflow,所以我不能對此做出評論,但它似乎是內存解決方案,並且在IIS中託管ASP.NET網站,這意味着您有時會因爲IIS回收和AppDomain而失去狀態。通常不是一個大問題,因爲它不會經常發生,但是WF4 InstanceStore會處理這個問題。它還將允許您在Web場中運行而不需要粘性會話,並且可以將工作流從機器遷移到機器。

另一件好事是工作流設計器。它是一個WPF控件,您可以在自己的應用程序中重置。不在ASP.NET或Silverlight應用程序中,但您可以提供智能客戶端,讓用戶在VS2010中使用正常設計器時更新工作流定義。

WF4的最大問題是異步執行性質。在將生成的HTML返回給瀏覽器之前,您需要使用SynchronizationContext來執行活動並等待工作流在新狀態中處於空閒狀態。

+0

我知道這不是我原來的問題的一部分,但你有什麼建議使用WF4與實體框架4? – DDiVita 2011-03-28 16:04:24

+0

創建自定義活動並在Execute()方法中執行您需要執行的任何操作。只要確保數據上下文不會長於此長度,因爲您的工作流可以通過打開的連接持久化。 – Maurice 2011-03-28 18:58:19