Drools.NET与Windows Workflow Foundation(WF)相比如何?

19

我目前正在寻找一个在.NET中可用的规则引擎。我们的逻辑相当简单,包括加、减、乘、除、与、或以及基本的运算优先级等内容。但我们需要将这些信息存储在数据库中,并在从数据库中获取新版本时生成规则文件。因此,通常的UI编辑器对我们来说将毫无用处,除非其中一个具有Web版UI编辑器。

因此,我的问题是,在我所说的情况下,哪种规则引擎在编程配置和与ASP.NET集成方面最好适合我们。

2个回答

21

我对WWF的经验非常不好。它非常适合开发已知的流程(例如“此文档发送给某人的经理,然后发送给HR,如果无效则退回给提交者”),但如果你需要动态配置,它会变得非常棘手。正如你所看到的,我们尝试将其用于完全可配置的系统,这是BizTalk真正擅长的,但微软似乎不愿意让开发人员以如此低廉的价格替换BizTalk。

我们还考虑使用Acumen规则引擎和工具,看起来非常适合我们所需的,但我们从未抽出时间删除WWF并将其替换。

我强烈建议,如果您的规则相对简单,那么要么使用您拥有源代码的规则引擎,要么自己编写。 Justin Etheredge撰写了一份关于使用Domain-Driven Designs(Evans)中确定的模式通过自定义规则进行域验证的两篇文章(第一部分)(第二部分)

我在当前项目中实现了类似的系统,遵循相同的指南,并将规则序列化/反序列化到数据库中。我将不得不看一下Drools.NET


1
我不得不笑你的评论,认为Microsoft不喜欢人们如此轻易地用WF替换BizTalk。 - Tundey

1

事实是,BizTalk不容易被WWF所取代。它们之间的目标非常不同,Drools与BizTalk进行比较,而不是与WWF进行比较。原因是两者都使用相同的算法(rete)!

现在,使用Drools是另一回事,BizTalk也可以作为ESB运行,但Drools能做到吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接