2010-09-01 164 views
2

我們目前正在開發一個.NET項目,它涉及根據一組用戶定義的規則分析XML文檔。這裏有一個例子:基本規則引擎體系結構

<Person> 
    <Name>Bob</Name> 
    <Cars> 
     <Car Type="SUV" Color="Black"/> 
     <Car Type="Sports" Color="Red"/> 
    <Cars/> 
</Person> 

EG規則:如果 人的名字=「鮑勃」,有2輛車,然後... 如果人有至少得有一個SUV和至少一個跑車,然後...

我們將構建一個「規則構建器」嚮導,引導用戶完成創建規則的過程。除此之外,其他複雜因素之一是XML文檔的模式將取決於客戶需求,所以我們需要一種快速適應新模式的方法。任何人都可以提供一些洞察什麼底層技術可以最好地完成這個?以下是我們認爲有兩件事情:

  1. 動態的LINQ to XML
  2. 碎紙XML到SQL表和生成動態SQL語句
  3. 創建某種類型的自定義DSL的(鐵的Python,噓,等)

最大的擔憂是能夠實時執行規則,速度和編寫規則的簡單/靈活性。

想法?

+0

爲什麼不在XSD模式中定義這些規則? – 2010-09-01 23:59:10

回答

2

不要建立這個。使用前向鏈式規則引擎,如BRE that comes with BizTalk

+0

我代表@Matt發表評論。 - 規則需要使用BRE進行部署,我認爲沒有辦法爲規則構建構建自定義UI。我們的最終用戶需要一個簡單而有限的用於構建規則的UI,然後需要一些更復雜的東西,開發人員可以在複雜情況下編寫規則。它看起來像其他開源規則發動,例如drools.net和nxbre或多或少被拋棄。像ilog和nrule這樣的商業產品太貴了。 – Timwi 2010-09-02 01:51:00