如何设计规则引擎?
我应该在C#中创建一个简单的规则引擎。 关于我如何进行的任何线索? 它是一个简约的规则引擎,并将使用SQL服务器作为后端。 我们是否有通常适用于规则引擎的一般蓝图或设计模式? 我可以使用哪种.Net技术来设计一种? 任何指示都会有所帮助。 谢谢。
如果您使用的是.NET 3.0或更高版本,则可以使用Windows Workflow Foundation的规则引擎,而无需实际使用Workflow。
我在一个项目上完成了这个,你可以使用SQL或XML作为后端,它工作得很好。 您可以使用Workflow示例附带的IDE并将其放入您自己的应用程序中。 这很棒。
-
考虑到有这么多可用的商业和开源,我无法相信你会实现自己的。
-
我建议您看看InRule是一个价格合理的商业选择,还是开源领域的NxBRE。
您也可以尝试https://rulesengine.codeplex.com/
你在寻找什么样的规则引擎? 对于造型实践? 如果是这样,请查看StyleCop 。 不是答案,但可能已经有了适合你的东西。
你有没有关于方法的任何指示? (即如果这是由课程材料补充你目前正在学习什么?)如果这是一个相当基本的系统,你可能会发现成功地研究确定性有限状态机和非确定性有限状态机
如果您有业务分析师来编写高级规则引擎,那么请选择一个前面提到的规则引擎或自己动手(包括工作流)。 如果没有,那么只需在代码中编写业务逻辑代码,如果您需要聘请业务分析师并重做系统,那么您就是个好地方。
如果你想编写你喜欢的实现……
[TestMethod] public void GreaterThanRule_WhenGreater_ResultsTrue() { // ARRANGE int threshold = 5; int actual = 10; // ACT var integerRule = new IntegerGreaterThanRule(); integerRule.Initialize(threshold, actual); var integerRuleEngine = new RuleEngine(); integerRuleEngine.Add(integerRule); var result = integerRuleEngine.MatchAll(); // ASSERT Assert.IsTrue(result); }
… 或这个…
[TestMethod] public void GreaterThanRule_WhenGreater_ResultsTrue() { // ARRANGE int threshold = 5; int actual = 10; // ACT var integerRule = new IntegerGreaterThanRule(threshold); var integerRuleEngine = new RuleEngine(); integerRuleEngine.ActualValue = actual; integerRuleEngine.Add(integerRule); // Get the result var result = integerRuleEngine.MatchAll(); // ASSERT Assert.IsTrue(result); }
…然后可以在这里查看我的简单规则引擎: http : //www.duanewingett.info/2015/01/21/SimpleCRuleEnginePart1TheRuleEngine.aspx
上述就是C#学习教程:如何设计规则引擎?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/943577.html