開源專案地址:https://gitee.com/lowcodexaf/rules-engine-editor
前言
本專案是基於XAFBlazor的規則引擎編輯器,規則引擎採用的是微軟開源的RulesEngine
RulesEngine專案地址:https://github.com/microsoft/RulesEngine
背景
在軟體開發中,規則引擎扮演著至關重要的角色。它允許開發人員將業務規則從程式碼中分離出來,以便更靈活地管理和調整規則。然而,隨著規則節點數量和複雜性的增加,手動編輯規則變得越來越繁瑣。因此,我決定開發一款規則引擎編輯器。
演示
功能
規則節點
每一個規則是一個節點,使得規則的建立、編輯和管理變得更加簡單明瞭。每個規則節點不僅可以表示一個獨立的規則,還可以容納子規則,形成複雜的規則結構,從而滿足各種業務場景下的需求。
規則關係
規則之間的關係可以靈活地進行定義,支援或與並的邏輯關係,同時子規則的結果決定了父級規則的結果,也就是說如果一個規則包含了子規則,那它返回的結果是子規則的結果,同時忽略它自身的表示式。
規則驗證
編輯器內建了規則驗證,可以對規則進行實時的驗證,並在驗證失敗時及時提供反饋。當規則驗證失敗時,編輯器會在節點的右上角顯示一個紅色圖示,將滑鼠懸停在圖示上,即可檢視詳細的驗證結果,單擊圖示將會彈出一個驗證結果對話方塊。
規則設定
規則的設定可以透過多種方式進行,選單的屬性選單項、雙擊規則節點,它都會彈出一個規則設定對話方塊。
規則操作
包括規則節點的上移、下移、置頂、置底等,還可以對規則節點進行復制,剪下,貼上等操作
導航功能
可以透過平移、縮放、適應內容等操作,自由地調整畫布的顯示,以便更好地檢視和編輯規則。此外,編輯器還提供了MiniMap功能,能夠在畫布上顯示全域性檢視,並支援透過MiniMap對畫布進行平移或縮放,進一步提高了編輯效率。