2016-11-14 156 views
1

技术堆栈:.NET数据库驱动业务规则引擎

问题陈述:应用有很多业务规则的,在现有规则或添加新规则中的任何改变,需要整个发行周期(修改代码,然后测试和部署)。

要求[很难]:业务用户应该能够动态指定业务规则使用GUI

选项探讨:

  1. MS BRE,与BizTalk
  2. 净但是捆绑堆栈开源商业规则引擎(喜欢SRE,Drools.NET,NxBRE) - 大多数不活跃。

  3. 在数据库中添加规则并为用户添加/编辑相同的GUI,尽管这看起来最有希望我不是动态sql的粉丝,因为sql注入的原因和可能的性能影响,更不用说缺乏单元测试覆盖率和可预见的维护问题。

  4. WF - 未探测,但AFAIK没有运行时构建器。

  5. 购买商业规则引擎是不是一种选择

的要求是系统上线,有什么建议者居多。

回答

0

我已经尝试为有特殊表的业务规则(从Postgres)

CREATE TABLE acces_to_tables 
(
    rule_name name, 
    table_name name, 
    field_name name, 
    field_acc_value integer, 
    is_write boolean 
) 

和通用功能:

create_access_temp_view(table_name name, in_write_access boolean) 

用于生成acces_to_tables当前用户的TEMP VIEW与限制条件数据库表在调用SELECT,INSERT,UPDATE或DELETE之前。

TEMP VIEW不是一个常用的解决方案,但工作速度非常快。