开源项目地址:https://gitee.com/lowcodexaf/rules-engine-editor

前言

本项目是基于XAFBlazor的规则引擎编辑器,规则引擎采用的是微软开源的RulesEngine

RulesEngine项目地址:https://github.com/microsoft/RulesEngine

背景

在软件开发中,规则引擎扮演着至关重要的角色。它允许开发人员将业务规则从代码中分离出来,以便更灵活地管理和调整规则。然而,随着规则节点数量和复杂性的增加,手动编辑规则变得越来越繁琐。因此,我决定开发一款规则引擎编辑器。

演示

功能

规则节点

每一个规则是一个节点,使得规则的创建、编辑和管理变得更加简单明了。每个规则节点不仅可以表示一个独立的规则,还可以容纳子规则,形成复杂的规则结构,从而满足各种业务场景下的需求。

规则关系

规则之间的关系可以灵活地进行定义,支持或与并的逻辑关系,同时子规则的结果决定了父级规则的结果,也就是说如果一个规则包含了子规则,那它返回的结果是子规则的结果,同时忽略它自身的表达式。

规则验证

编辑器内置了规则验证,可以对规则进行实时的验证,并在验证失败时及时提供反馈。当规则验证失败时,编辑器会在节点的右上角显示一个红色图标,将鼠标悬停在图标上,即可查看详细的验证结果,单击图标将会弹出一个验证结果对话框。

规则设置

规则的设置可以通过多种方式进行,菜单的属性菜单项、双击规则节点,它都会弹出一个规则设置对话框。

规则操作

包括规则节点的上移、下移、置顶、置底等,还可以对规则节点进行复制,剪切,粘贴等操作

导航功能

可以通过平移、缩放、适应内容等操作,自由地调整画布的显示,以便更好地查看和编辑规则。此外,编辑器还提供了MiniMap功能,能够在画布上显示全局视图,并支持通过MiniMap对画布进行平移或缩放,进一步提高了编辑效率。