如何设计规则引擎?

     2023-04-12     187

关键词:

【中文标题】如何设计规则引擎?【英文标题】:How to design a rule engine? 【发布时间】:2010-09-10 17:24:18 【问题描述】:

我应该在 C# 中创建一个简单的规则引擎。关于我如何继续进行的任何线索?它是一个简约的规则引擎,并将使用 SQL 服务器作为后端。我们是否有任何普遍适用于规则引擎的通用蓝图或设计模式?我可以使用哪种 .Net 技术来设计一种?任何方向都会有所帮助。 谢谢。

【问题讨论】:

【参考方案1】:

如果您使用的是 .NET 3.0 或更高版本,您 can use the Rules Engine of Windows Workflow Foundation 无需实际使用 Workflow。

我在一个项目上做过这个,你可以使用 SQL 或 XML 作为后端,效果很好。您可以使用 Workflow 示例附带的 IDE 并将其放入您自己的应用程序中。太棒了。

【讨论】:

【参考方案2】:

    考虑到有这么多可用的商业和开源代码,我不敢相信您会实施自己的代码。

    我建议将 InRule 视为价格合理的绝佳商业选择,或者将 NxBRE 视为开源空间。

【讨论】:

【参考方案3】:

你也可以试试 http://rulesengine.codeplex.com/

【讨论】:

【参考方案4】:

您在寻找什么样的规则引擎?对于造型实践?如果是这样,请查看StyleCop。不是答案,但可能已经有适合你的东西了。

【讨论】:

@Scott,我正在寻找使用 C# 开发业务规则引擎。像 inRule 什么的,但是一个非常简单的。我正在寻找模式或任何蓝图,据此我可以创建我的规则引擎。【参考方案5】:

您是否对方法有任何指示? (即,如果这是由课程材料补充的,您目前正在学习什么?)如果这是一个相当基本的系统,您可能会成功查看 Deterministic Finite State Machine 和 Nondeterministic Finite State Machine

【讨论】:

@jwarzech,它不适用于任何课程。这是一个业务规则引擎,应该是商业工作——但它相当简单。有几个通用类(10 个左右?)的规则。顺便说一句,我曾经在学校做过“计算理论”。谢谢你的回答。【参考方案6】:

如果您有业务分析师来编写高级规则引擎,那么可以 - 选择上述规则引擎之一或自行开发(包括工作流)。如果没有,那么只需在代码中编写您的业务逻辑,如果您需要聘请业务分析师并重做系统,那么您就是一个好地方。

【讨论】:

【参考方案7】:

如果您想编写类似这样的实现...

[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<int>();
    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<int>();
    integerRuleEngine.ActualValue = actual;
    integerRuleEngine.Add(integerRule);

    // Get the result
    var result = integerRuleEngine.MatchAll();

    // ASSERT
    Assert.IsTrue(result);

【讨论】:

我可以从哪里开始学习规则引擎? [关闭]

...个可以使用规则引擎的Java应用程序。我可以在哪里了解如何使用它们、它们如何工作、如何实现它们、查看示例等?【问题讨论】:【参考方案1】:Droolsdocumentation包含许多有用的通用信息。特 查看详情

c# 中的规则引擎设计和示例

】c#中的规则引擎设计和示例【英文标题】:rulesenginedesign&examplesinc#【发布时间】:2011-08-2508:10:43【问题描述】:我目前正在使用c#编写一个.net应用程序,并希望检查一些规则,并根据规则通过或失败执行操作。因此,我希望... 查看详情

大厂通用的mysql开发规范设计,包括“存储引擎字符集命名规则等公共约定”,“表设计约定”,“字段设计约定”,“索引设计约定”,“sql约定”,“开发人员行为约定”

...?“字段设计约定”怎样才更优秀?“索引设计约定”该如何设计?有没有规范的“SQL约定”?对于开发人员,有哪些“开发人员行为约定”,需要遵守?下文,既是综合BAT大厂的MySQL开发规范设计,包括“存储引擎、字符集、... 查看详情

如何实现规则引擎?

】如何实现规则引擎?【英文标题】:Howtoimplementaruleengine?【发布时间】:2011-09-2304:49:41【问题描述】:我有一个存储以下内容的数据库表:RuleIDobjectPropertyComparisonOperatorTargetValue1age\'greater_than\'152username\'equal\'\'some_name\'3tags\'hasAtL... 查看详情

bpm产品解读之规则设计器

在很多企业的IT业务系统中,经常会有大量的业务规则配置,而且随着企业管理者的决策变化,这些业务规则也会随之发生更改。为了适应这样的需求,我们的IT业务系统应该能快速且低成本地更新,一般的做法是将业务规则的... 查看详情

bpm产品解读之规则设计器

在很多企业的IT业务系统中,经常会有大量的业务规则配置,而且随着企业管理者的决策变化,这些业务规则也会随之发生更改。为了适应这样的需求,我们的IT业务系统应该能快速且低成本地更新,一般的做法是将业务规则的... 查看详情

如何快速学习 Drools 或其他规则引擎 [关闭]

】如何快速学习Drools或其他规则引擎[关闭]【英文标题】:howtolearnDroolsoranotherruleenginefast[closed]【发布时间】:2011-02-0602:08:03【问题描述】:我们正在着手开发一个模块,该模块将根据某些标准生成一些建议。标准将采用一组业... 查看详情

flink规则引擎实践分享(代码片段)

...支持4.1ClickHouse从Kafka摄取数据4.2ClickHouse查询服务中的sql设计**4.3ClickHouse查询时间跨度问题与解决**4.4查询路由模块**五、缓存模块 查看详情

规则引擎

...//www.yuque.com/yangdakang/kb/bstdgr规则引擎:大厂营销系统资格设计全解https://www.infoq.cn/article/kkxmqr5wp7ihfctewdma开源规则流引擎实践https://developer.ibm.com/zh/technologies/artificial-intelligence/artic 查看详情

snf快速开发平台--规则引擎在程序当中如何调用

规则定义完如何在程序当中进行使用呢?其时很简单,只需要如下代码就可以调用程序:规则定义:调用代码:#region演示2:生成左表数据(规则)POST:/api/DEMO/DemoSingleTable/CreateRuleLeftTable///<summary>///演示2:生成左表数据(规则)POST:/a... 查看详情

基于 Python 规则的引擎 [关闭]

...losed]【发布时间】:2019-04-2413:53:37【问题描述】:我希望设计一个基本上需要根据输入做出决策的系统。输入将是一个人。classPerson:def__init__(self,name,age,sex,weight,height,nationality):self.name=nameself.age=ageself.se 查看详情

如何在流口水规则引擎中处理列表项中对象的先前值?

】如何在流口水规则引擎中处理列表项中对象的先前值?【英文标题】:HowtoprocessPreviousvalueofobjectinlistitemindroolruleengine?【发布时间】:2017-08-1109:29:09【问题描述】:我希望Drool在列表的所有元素中触发规则这是我的订单类packageco... 查看详情

规则引擎如何优化生产调度系统

生产调度系统是制造企业MES系统的重要组成部分,对应于生产管理系统的短期计划安排,主要目标是通过良好的作业加工排序,最大限度减少生产过程中的准备时间,优化某一项或几项生产目标,为生产计划的执行和控制提... 查看详情

Azure 上流分析的规则引擎

...如果是的话,有没有一种方法可以将所有规则合二为一,如何?【问题讨论】:【参考方案1】:为A 查看详情

snf快速开发平台--规则引擎介绍和使用文档

设计目标:a)规则引擎语法能够满足分单,计费,WMS策略的配置要求。语法是一致和统一的b)能够在不修改规则引擎模块的情况下,加入任意一个新的规则;实现上述需求之外的规则配置需求c)运算速度快d)有良好的展现效... 查看详情

驰骋工作流引擎设计系列10时效考核规则设计

...引擎流程快速开发平台workflowccflowjflow第1节.时效考核规则设计考核是流程运行的副产品,业务搬到了计算机上,整个运行轨迹就会被有效的记录下来。CCBPM的考核分为时效考核、质量考核。时效考核是对工作及时程度的一种考核... 查看详情

Java规则引擎的优缺点[关闭]

...它们在易用性、性能、与您的代码的集成程度等其他方面如何比较?【问题讨论】:【参考方案1】:采用Java规则引擎JESS和Drools的 查看详情

springboot+drools规则引擎整合

...ava项目或Maven项目,而基于SpringBoot项目的很少。本文介绍如何在SpringBoot项目上加上Drools规则引擎。POM依赖POM文件如下:<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta 查看详情