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

     2023-05-08     143

关键词:

【中文标题】c# 中的规则引擎设计和示例【英文标题】:rules engine design & examples in c# 【发布时间】:2011-08-25 08:10:43 【问题描述】:

我目前正在使用 c# 编写一个 .net 应用程序,并希望检查一些规则,并根据规则通过或失败执行操作。因此,我希望实现一个通用的解决方案,我可以按照良好的 oop 原则重复使用。这使我得出结论,我需要编写一个规则引擎。

我对 c# 有很好的了解,但这是我第一次需要编写规则引擎,因此作为我对此类引擎的设计和开发研究的一部分,我正在寻找有关创建此类规则引擎的任何提示引擎。如果有我可以查看的任何示例,那么还有什么更好的呢?任何 c#/.net 规则引擎应用程序?典型的 3 层架构中的哪一层应该这样驻留?我快速浏览了 codeplex 和 google 代码,但没有人向我跳出!所以一些方向会很棒。

【问题讨论】:

【参考方案1】:

实际上 .NET 有一个一流的规则引擎,旨在与工作流一起使用(正如它设计的那样),但可以轻松地在工作流之外使用:您应该看到“Windows Workflow Foundation Rules Engine”并检查System.Workflow.Activities.Rules命名空间。

学习如何在工作流之外使用规则只需要一点谷歌搜索。

编辑:如果你想检查架构,这里有两个开源预建引擎:

NxBRE .NET Application Block for Validation and Business Rules

【讨论】:

我知道这听起来像是可怕的狂妄自大,但我发现 WF 规则库与精心设计、定制的特定领域引擎相比显得乏力且几乎无法使用。当然,这真的取决于应用程序,但我不知道我是否会这么快推荐它。 我一直在我的工作流程中使用它来开发慢节奏的工业控制应用程序,这给我的印象是它是最实用的实现之一。但也许那是因为我太熟悉它了。但我知道,这更像是一个典型的 xUnit 与 MSUnit 的争论.. 也许吧。我所知道的是,每次我尝试使用 WF(或 WF 规则)时,我总是举起双手说“我为什么不直接编写代码把它硬塞进这东西里?”我没有将 WF 与其他工作流引擎进行比较,我确信它们都很好,我想我想说的是,如果不是所有的话,大多数 OTS 规则引擎都完全过于通用,无法提供比简单代码更多的优势+配置。也许这只是我缺乏经验/糟糕的谈话经验。【参考方案2】:

构建和实施您自己的规则引擎可能是一项非常艰巨的任务,需要考虑很多事情。您将面临的最大问题是试图决定触发哪些规则以及何时触发。不给予适当的关注可能会导致实现中的性能问题。我强烈建议您专注于业务问题,并为您的主题专家 (SME) 提供定义和维护自己的规则的能力。有很多很好的商业产品可以做到这一点。我多次成功实施的是www.inrule.com。他们有一套很好的产品,可以帮助解决简单和复杂的问题。希望这会有所帮助。

【讨论】:

规则引擎easyrules介绍,应用及示例(代码片段)

浅析EasyRules规则引擎轻量级规则引擎EasyRulesJava规则引擎EasyRules一、EasyRules介绍1.1概述EasyRules是一个简单而强大的Java规则引擎,提供以下功能:轻量级框架和易于学习的API基于POJO的开发与注解的编程模型定义抽象的业务... 查看详情

基于 c# 的规则语言的示例?

...et/buisness-rules-asp-net.aspx【参考方案1】:本页展示了一些C#中的开源规则 查看详情

规则引擎用户界面设计

】规则引擎用户界面设计【英文标题】:RulesEnginesUserInterfaceDesign【发布时间】:2010-12-2604:02:09【问题描述】:在工作中,我们有优化引擎,这些引擎使用的输入之一是业务规则,我们使用专有的规则编辑器创建和编辑。这些规... 查看详情

C#:英语语法规则引擎? [关闭]

】C#:英语语法规则引擎?[关闭]【英文标题】:C#:GrammarrulesengineforEnglish?[closed]【发布时间】:2010-10-1109:48:34【问题描述】:我正在寻找可能存在或不存在的东西。Windows平台上是否有“英语语法规则引擎”之类的东西(特别适用... 查看详情

.netrulesengine规则引擎使用(代码片段)

...则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业... 查看详情

规则引擎在数据分析中的应用

...询、自定义规则等一系列场景来说明规则引擎在数据分析中的应用。在现代的企业级项目开发中, 商业决策逻辑或业务规则往往是硬编码嵌入在系统各处代码中的。但是外部市场业务规则是随时可能发生变化的, 这样开发... 查看详情

规则引擎与专家系统

】规则引擎与专家系统【英文标题】:RulesEnginevsExpertSystem【发布时间】:2010-12-1320:24:11【问题描述】:规则引擎和专家系统有什么区别?示例1:假设我有一个程序可以确定新驾照的到期日期。它接受签证到期日期、护照号码、... 查看详情

托管 C# 代码中的致命执行引擎错误

】托管C#代码中的致命执行引擎错误【英文标题】:FatalExecutionEngineErrorinManagedC#code【发布时间】:2018-10-3008:15:57【问题描述】:我在C#的托管代码中遇到了访问冲突异常和致命的执行引擎错误(似乎是相同的错误)。我已将其范... 查看详情

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

】我可以从哪里开始学习规则引擎?[关闭]【英文标题】:WherecanIgetstartedlearningaboutRuleEngines?[closed]【发布时间】:2010-10-0202:17:16【问题描述】:我目前正在设计一个可以使用规则引擎的Java应用程序。我可以在哪里了解如何使用... 查看详情

JavaScript中的规则引擎[关闭]

】JavaScript中的规则引擎[关闭]【英文标题】:RuleEngineinJavaScript[closed]【发布时间】:2011-12-0110:59:10【问题描述】:JavaScript中有规则引擎吗?问题是在这种情况下:考虑一个具有用户填写表单的Web应用程序。当用户填写每个字段... 查看详情

Azure CDN 规则引擎

】AzureCDN规则引擎【英文标题】:AzureCDNRuleEngine【发布时间】:2017-11-1001:41:13【问题描述】:我在AzureCDN中托管和html网站(在Premier付费计划下),因此它为我提供了一个规则引擎,它提供了许多控制流程的功能。我想要URL重定向... 查看详情

基于组件的设计(C# 游戏引擎)

】基于组件的设计(C#游戏引擎)【英文标题】:ComponentBasedDesign(C#GameEngine)【发布时间】:2017-07-2700:55:07【问题描述】:我目前正在使用GDI+在c#中设计一个2D游戏引擎,但我的代码中遇到了一个可怕的设计缺陷。这个想法是我的... 查看详情

规则引擎drools在贷后催收业务中的应用

作者:vivo互联网服务器团队-FengXiang在日常业务开发工作中我们经常会遇到一些根据业务规则做决策的场景。为了让开发人员从大量的规则代码的开发维护中释放出来,把规则的维护和生成交由业务人员,为了达到这种目的通常... 查看详情

bpm产品解读之规则设计器

...擎。为什么选择规则引擎规则引擎是一种嵌套在应用程序中的组件,它实现了将业务规则从应用程序代码中分离出来,使复 查看详情

bpm产品解读之规则设计器

...擎。为什么选择规则引擎规则引擎是一种嵌套在应用程序中的组件,它实现了将业务规则从应用程序代码中分离出来,使复 查看详情

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

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

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

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

Azure 上流分析的规则引擎

】Azure上流分析的规则引擎【英文标题】:RulesengineforStreamAnalyticsonAzure【发布时间】:2018-10-2912:23:46【问题描述】:我是Azure和分析的新手。我正在尝试了解流式警报规则引擎。我使用了一些示例数据作为输入,并有查询来过滤... 查看详情