问题标签 [nxbre]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
4996 浏览

c# - 你会用什么来做业务验证层?

在我的项目中,我需要创建一个业务对象验证层,它将获取我的对象并根据一组规则运行它并返回通过或失败以及失败原因列表。我知道有很多选择可以实现这一点。

来自微软:

开源:

是否有人在使用这些技术(或我未列出的任何技术)方面取得了特别大的成功或失败,或者对他们认为最适合业务规则验证的技术有任何意见。

编辑:我不只是询问通用验证字符串长度 < 200,邮政编码是 5 位数字或 5+4,而是假设实际上会利用规则引擎。

0 投票
5 回答
6306 浏览

c# - 规则引擎的性能如何?

我一直在看WF 规则引擎NxBRE,它看起来很有趣,但我不确定它在现实生活场景中的表现如何。

我想到的是一个事实库,包含 10 到 1 亿个事实和规则,例如:

Object.Field < 5000 AND Object.Field > 1000 AND IsProperty(Object.Field2)

我正在使用 C# 和 .NET。

编辑:我没有说清楚(完全是我的错):) 我有自己的规则评估系统,它使用 RETE 算法本身......它非常快,它可以在大约 10 秒内评估 1000 万个事实场景。 ..comaparison的商业解决方案有多快?

0 投票
1 回答
3152 浏览

workflow - .NET Workflow RuleEngine 和其他如 NxBRE 之间是否有任何比较?

在我们的项目中,我们需要一个规则引擎组件,经过一段时间的研究,我发现.NET Workflow 也有它的规则引擎。.NET Workflow Rule Engine 和其他引擎之间是否有完整的比较列表,例如 NxBRE、Drool.NET... 非常感谢。

0 投票
1 回答
286 浏览

nxbre - 在 NxBRE 中声明和使用静态列表的正确方法

我正在使用 NxBRE 规则引擎,并且需要能够检查列表中是否有某个值。这是我尝试的:

定义列表元素:

检查条件:

ObjectLookup工作正常,但条件永远不会评估为真,正如我从整个集合执行的结果中看到的那样。

即,如果我将 ... ... 更改InvalueId... ... ,idList只留下一个 id 来检查(例如,)并进行测试,以便我确定我的值等于,我会看到预期的结果,这证明这里可以正常工作。EqualsleftIdrightIdElement4Value4ObjectLookup

所以问题是:

  1. 我做错了什么,即为什么在同一个测试中,我知道 value equalsValue4In评估为真?

  2. 我可以用更简单的方式来做吗?即,指定一个常量列表并使用它,而不是一个一个地指定元素然后从中构造列表?

  3. NxBRE 有什么好的文档,所以我不必问这样的基本问题吗?

0 投票
1 回答
291 浏览

c# - 运行 NxBRE 时无法找到 NUnit 目录

我首先要承认我是一个非常新手的开发人员,所以我正在尽我所能提供所有相关信息以使这个问题可以回答:

因此,在开始尝试进一步使用引擎之前,我正在尝试对 NxBRE 进行一些单元测试。我已经下载了 NxBRE 和 NUnit(分别是 3.2 和 2.6 版),并且我已经使用我可以在此处发布的一个简单示例测试了 NUnit 以确保它正常工作,但这样做似乎无关紧要。重要的是我可以轻松地引用示例中的 nunit.framework.dll,并且编译测试的属性和 GUI 完美地运行测试。顺便说一句,我正在使用 SharpDevelop。

然后我打开了提供的 NxBRE 解决方案,它有两个项目(NxBRE 和 NxBRE-UnitTest),在 Unit-Test 项目中将相同的引用添加到 nunit.framework.dll,并尝试构建解决方案。我收到一个编译器错误(以及许多相关错误),说明:

CS0246:找不到类型或命名空间名称“nunit”(您是否缺少 using 指令或程序集引用?)

好吧,我很确定我也没有错过,所以我仔细检查了参考,它看起来不错(因为我按照我的测试示例的方式重新添加了它)。我什至手动将 .dll 复制到正在访问的目录中。我不认为这是 NUnit 本身的问题,因为我回到我精心制作的示例,它仍然运行良好。

您对我应该尝试的故障排除想法或技术有什么建议吗?

0 投票
1 回答
237 浏览

c# - 为 NxBRE 的单元测试设置配置路径

在我开始在我正在处理的规则引擎项目中引用它的实现之前,我正在尝试为 NxBRE 运行一些单元测试。我正在使用 NUnit 2.6 版本来测试 NxBRE 3.2。由于 NxBRE 在它自己的使用 NUnit.Framework 的友好项目文件夹中附带了它自己的单元测试,所以我认为它会是一个快速的一二。在确保所有内容都编译后,我继续运行测试......并得到了一百万个错误。主要是这样的:

NxBRE.Test.FlowEngine.TestBackwardChainer.CircularityDetection:SetUp:System.IO.FileNotFoundException:找不到文件“C:\car-loan-rules.xbre”。

或者:

NxBRE.Test.InferenceEngine.TestEngineCoreFeaturesRuleML091.TestEngineCoreFeaturesRuleML09.NxBREOperators:System.IO.FileNotFoundException:找不到文件“C:\test-0_91.ruleml”。

不知所措,我去了 NxBRE 网站并查找有关他们的单元测试的信息。这就是我能找到的全部:http: //sourceforge.net/apps/trac/nxbre/wiki/UnitTesting

这并没有非常具体地描述该过程。如何配置引擎以使路径指向测试规则库的正确位置?这是我必须在 NUnit 中做的事情吗?还是在我的 IDE (SharpDevelop) 中?另外,我知道输出文件夹在哪里,但我如何计算我需要在那里复制哪些 Dtd 或 Xml 文件?这可能暴露了我的经验不足,这就是你们的专业知识将不胜感激的地方。

0 投票
1 回答
285 浏览

data-binding - 将 xml 模式的实例加载到 BRE 中以作为事实引用

所以我一直在研究很多规则引擎软件,我想做的一件事要么真的很不方便,要么我只是不理解文档(很可能)。

基本上,我希望规则引擎可以访问 xml 模式的实例,或者作为事实库、规则库(不太可能),或者至少作为某种对象,可以将其值替换为规则中的变量合理比较的基础。我专门研究 NxBRE,但我没有嫁给任何一个 BRE,所以如果你用不同的软件实现了这一点,我也愿意接受。

我的问题是,你认为这可能吗?我看过的大部分内容都表明我必须以引擎使用的任何规则/事实格式加载信息(经常吹嘘如何从任何 uri 加载这些信息,这与我无关),但是是否有软件可以将始终基于唯一模式的 xml 文件转换为引擎读取格式的一系列相应事实?如果我不清楚我在问什么,我可以试着澄清一下。

0 投票
1 回答
223 浏览

nxbre - NxBRE - 使用流引擎进行日期验证

如何比较.xbre规则文件中的日期。

例如,我有以下规则:

根据传递的 JoinDate,我需要根据日期范围获取一个字符串。当我运行上述规则时,它采用中提到的日期leftIdrightId但不采用日期范围。

如何检查日期范围/日期之间?

0 投票
1 回答
279 浏览

nxbre - NxBRE- 在一个规则中访问多个

我有两个 .NET 对象,Employee 和 Department。在 .xbre 文件中,我需要设置如下条件,

如果 Employee.EmpID 是 X 并且 Department.DeptID 是 Y 然后做一些事情。所以在给定的规则中,我需要访问两个对象(员工和部门)并验证条件。

如果我使用<ObjectLookup>,那么我知道我可以传递一个对象和字段(Employee.EmployeeIDDepartment.DeptID),我们可以同时访问它们吗?

0 投票
1 回答
421 浏览

nxbre - 将集合传递给 xbre 规则

我有一个 .NET 对象,它是一个集合,例如一个Employee包含员工列表的对象。

我需要将其传递给规则引擎以在规则文件中进行循环。

你能帮我处理来自.NET的代码以及在xbre文件中循环吗?我已经成功传递了一个带有单条记录的对象。但是需要通过收集。