1

試圖瞭解如何在WWF應用程序之外使用WF規則引擎。我只閱讀關於該主題的博客post。但我對這個可行性有一定的懷疑。我們可以在Web應用程序中使用WF規則引擎嗎?

我的應用程序的要求如下:

  1. 基於Web的用戶界面編寫的規則,並將它們存儲在數據庫中。
  2. Windows服務將下載規則。規則執行引擎將收集它需要的數據並執行規則,並將結果作爲輸出。

規則只是一組指令,它必須作用於表的一行。表的模式是動態的;但是有一些元數據告訴規則執行引擎如何從該行收集必要的輸入。

我知道規則通常是使用規則編輯器輸入的;這是一個Windows窗體應用程序。這通常會生成一個*.rules文件。據我所知,WF規則引擎評估該文件並執行規則。

*.rules文件是規則的XML表示。

有沒有在DOTNET框架,生成該XML表示任何API?而且,我們可以建立一個基於網絡的前端來輸入規則嗎?

+1

.rules是什麼格式? WF規則引擎不*評估* .rules,它評估.xaml。 – Nilzor

回答

2

在想,如果有一個API類型啄和我碰到下面傳來:

http://code.msdn.microsoft.com/windowsdesktop/Creating-Rules-Using-the-23c5d561

它就像接口的API。但是它消耗來自System.CodeDom命名空間的對象(通常是各種CodeExpression對象)。

要開始使用它,必須通過某種機制(使用xml或json)正確地表示前端中的代碼表達式對象。在服務器中,即將規則發佈到服務器時,必須正確創建必要的代碼表達式(通過解析)並將這些內容提供給api。

您需要兩種類型的代碼表達式對象 - 一種用於評估規則條件,另一種用於規則通過或失敗時執行的內容。 (當規則通過時,我只需要執行一些東西)。

提供的示例提供了一個如何使用api的概念。其餘的東西你必須建立。

程序源代碼通常在內存中使用AST表示。所有你需要設計的是自己實現。

1

如果您想使用Windows Workflow Foundation(WF),則必須生成WF XAML - 而不是.rules或XML表示(不管是什麼)。以下是a Workflow XAML file的示例。基本上有三種方法來生成這個(與最不復雜的方法開始)

  1. 通過使用設計器在Visual Studio
  2. 通過生成DynamicActivity -instance運行時和serializing it
  3. 通過實現自己的發電機

要回答你的問題:是 - 它的選項#2。如果你的規則非常簡單(if-then-else),並且你預計未來他們的複雜性會增加,那麼選項#3也可能是一個可行的選擇。

相關問題