我需要在.Net中编写一个应用程序,允许业务客户定义自己的规则。我一直在研究微软在Biztalk服务器中提供的BRE(业务规则引擎)。到目前为止,我所了解的是,BRE为您提供了一个灵活的规则编辑器,可以从.Net实体中拖放属性,然后根据某些条件(谓词)断言它。然而,这是一个非常基本和直接的想法,在我看来,通过定义我自己的领域特定语言来编写易于理解的业务规则就可以简单地实现。我所要做的就是使用ANTLR或Coco/R创建一个语法,以及一个可以编写和编译规则的接口,我很乐意去。有人能解释一下BRE是如何提供更多服务的吗?为什么人们更喜欢它而不是定制的解决方案?
问题的答案实际上取决于以下因素:
- 企业需求:BizTalk是一个集成平台,如果您的企业已经在使用BizTalk,那么与BRE相比,编写自己的规则引擎应该没有任何问题,因为BRE提供了您所需的大部分功能,具有出色的性能,还可以在需要时在运行时缓存长期事实。Business Rule Composer提供了简单的规则构建,并且可以安装给业务用户来编写规则。在一些复杂的场景中,这也可以自定义。您可以使用编排或.NET类库在BizTalk中使用这些规则。因此,BizTalk是一个很好的规则引擎,具有很大的灵活性
- 如果BizTalk不是您的集成平台,并且您只考虑将其用于BRE,那么您需要三思而后行,因为使用BRE本身也需要BizTalk许可证,而且仅将BizTalk产品用于BRE可能不具有成本效益。一些你需要思考的事情