2008-11-24 87 views
6

我正在研究一個將大量工作流驅動的新應用程序的設計規範。基於ASP.NET的工作流引擎

我在重新發明輪子,有沒有插入到ASP.NET已經圍繞一個像樣的輕量級工作流引擎?

基本上,我尋找的東西,處理通過一組定義的工作流頁面的移動而自動處理狀態管理。

如果不在身邊了,我肯定會嘗試從抽象我的應用程序引擎,並把它在CodePlex上,因爲這將是非常方便。

有什麼建議嗎?

注:.NET 2.0,所以沒有WWF,但我認爲WWF是矯枉過正我的需求。

編輯:似乎有這樣的合法需要,並沒有一個產品在那裏......所以我可能會建立這個。

這裏就是我想象:

  • 稱爲WebFlowPage
  • 所有WebFlowPage的登記在工作流映射器自定義頁面類。
  • 每個WebFlowPage都有某種形式的狀態對象。
  • HttpHandler處理根據工作流程選擇合適的WebFlowPage,並從狀態對象填充它。
+1

嗯......如果我們從現在開始,我們會拋出我們的引擎,並會去世界自然基金會......如果你會設置複製本地複選框,你可以只得到需要3.5個dll並運行在2.0上。抱歉托馬斯 – badbadboy 2008-11-24 22:50:39

回答

0

我不認爲有一個工作流引擎會自動爲您處理狀態,但是如果您正在瀏覽一組頁面,如電子商務網站上的結帳等流程,則可能是ASP.NET嚮導控制可以幫助你?

2

是工作流動態或靜態?

如果工作流程很簡單,你可以滾你自己的工作流引擎。 在某些情況下,它可以非常簡單,只需要幾個數據表來處理規則,處理和狀態。

大部分工作流引擎都是爲大規模處理而構建的(例如信用卡應用程序)。對於小規模,你至少應該考慮自己的,這將消除引擎上的開銷和依賴。

2

不知道你想在這裏做什麼,但Ra-Ajax可以很容易地保持狀態,至少,如果你想你的解決方案支持Ajax ...

爲了參考的目的,你可能要檢查出Ajax Calendar sample甚至(平行執行)Ajax Wizard sample。它肯定會打敗你的JavaScript ...

而你每次「做某事」你都在「服務器地」,這意味着你可以隨時存儲臨時對象......

該項目是LGPL

(PS! 是的,我用它做的工作)

+0

謝謝,但那不是我想到的。雖然你的產品出現法律訴訟問題,但祝你好運。它看起來棒極了,它對蓋亞很遺憾。 – FlySwat 2008-11-25 00:27:58

2

建立一個自定義的工作流引擎是不平凡的,儘管它可能在最初看起來簡單。我們已經嘗試過了。這很大程度上取決於您需要覆蓋的邏輯的複雜程度。

鑑於Windows工作流基礎的當前狀態和缺乏另一個框架抽象的工作流概念的,如果你需要複雜的邏輯,異步處理或分支機構工作流程,我會選擇WF。

通過工作流跟蹤你的狀態可通過實施某種形式的XML負載的或存儲在數據庫中的狀態來完成,

如果您的工作流程實際上是一個連續的集合,需要通過填寫表格用戶,跟蹤步驟和引導用戶進入下一步可以用一些簡單的定製解決方案來完成。

1

雖然瀏覽網頁的一些工作流程& BPM資源,我發現了以下項目:NetBPM。不幸的是,這個項目似乎停止了。

2

你可以看看在InRule引擎了。 另外,還有nxBRE

這些也主要用於業務規則。 InRule是專有的,而nxBRE支持RuleML(實際標準)。

您可能需要使自己的實施的網頁,並使用規則引擎的「結構」。

在這一刻,我知道,SharePoint 2007中支持頁面的工作流(WF使用),但是這將意味着使用.NET Framework 3和deployng的SharePoint。

我的建議是使用任何你會發現更多的光線和更容易使用。

2

我認爲術語「工作流程」是非常開放的解釋。最近我一直在努力研究一種與你所描述的工作流程截然不同的工作流程。 Mine是一個基於狀態機的工作流程,其中特定記錄的狀態決定了用戶可以採取什麼行動將記錄移至業務流程的下一個步驟。因此,在這種情況下,「工作流程」意味着記錄如何從一個狀態流向另一個狀態直至最終完成。

您的工作流的使用似乎有更多的事情要做線性多步驟的過程,這是一個完全不同的使用情況下(糾正我,如果我錯了)從一個頁面的用戶移動到另一個。因此,在提出任何人都可以使用的通用「工作流程」引擎之前,我會建議定義一個更好的確切的系統將處理的情況。

0

有幾個工作流程選項。 「Aspose」和「Skelta」是我評估的優惠。

法比奧