微软的规则引擎

 
很多朋友会问,.Net平台有没有规则引擎?像Java就有很多的规则引擎,Drools,ILog都做得非常好,但.Net好像还没有哦。很多知道规则引擎,但不知道.Net的朋友都烦这个事。
微软公司事实上本身就提供两个规则引擎,即BizTalk Server和Windows Workflow Foundation。下们我们将讨论一下BizTalk,Workflow和CKRule之前的特点。
 
微软业务规则引擎(MS BRE)
第一个规则引擎被称为微软业务规则引擎(有时候叫“MS BRE”(Business Rule Engine) 或 "BRE"),它是BizTalk Server的一部分,早在BizTalk2004就已经出现了。BRE已经在BizTalk Server2004,2006,2009等版本中搭配,后面的版本也只会不断增强。
 
Workflow规则(WF Rules)
这是第二个规则引擎,它是.Net的Windows Workflow Foundation中的一部分,这个大家都应该非常熟悉了。该引擎搭载中.Net3.0和之后的版本中。功能变得越来越强大。如果你的操作系统是Windows7,Windows Server2008或Windows Vista,你的电脑已经安装有.Net3.0或以后的.Net版本,那么Workflow规则引擎已经在你的电脑上安装了。
 
CKRule规则
一个轻量级的规则引擎,接口也务求简单实用,但很够完美实现规则引擎,规则编写,表达式求值,决策表,决策树,用户规则池等等功能。其规则编辑器、规则引擎逻辑、规则测试都放在同一个dll中,同时属于轻量级的BRMS。
 
MS BRE,Workflow,CKRule的比较
*MS BRE是BizTalk Server的一部分,是一个商业服务器中的部分功能,面向的是业务决策者(MS BRE也可以单独地应用,但必须与BizTalk一起授权);Workflow规则引擎是.Net Framework的一部分,它是面向软件开发员的;CKRule将面向软件开发员和业务规则业务专家的功能做到一定的分隔,开发员使用CKRule规则编辑器,业务系统自定义界面调用CKRule,这个友好界面供业务专家使用。两个规则引擎都提供链接式执行。Workflow还提供顺序执行。CKRule提供规则顺序执行。
 
*MS BRE的业务规则是使用Rules Composer编写,WF Rules的业务规则在Visual Studio中编写,而CKRule的业务规则在CKRule编辑器编写,同时提供API以支持业务系统编写规则。三者都提供了业务规则系统(BRMS)编写环境,MS BRE和CKRule都有变量,库之类的概念,这就比Workflow更加像BRMS了。CKRule有对象库,调用库,规则库可以理解为小型的BRMS了。
 
*MS BRE实现了Rete算法,这是一个被认为规则引擎最值得标榜的算法;WF Rules不是Rete算法实现的;CKRule与WF Rules相似,使用C#编译器实现的。MS BRE的条件配置模式是内存匹配,而WF Rules和CKRule都是预编译机制,匹配逻辑写进机器码时。
 
*WF Rules和CKRule都没有工作内存一说,但MS BRE有。WF Rules和CKRule都需要在运行时知晓所有对象,他们都提供Else的处理逻辑,但MS BRE不是这样。同时MS BRE有一些需要大家知晓的约束。MS BRE对XML和数据库对象有特殊的处理逻辑。

.Net规则引擎Biztalk,Workflow和CKRule的比较的更多相关文章

  1. BizTalk动手实验(九)业务规则引擎使用

    1 课程简介 通过本课程熟悉业务规则引擎(BRE)的使用(本环境为Windows 2008 32位操作系统环境 + Visual Studio 2010 + BizTalk 210) 2 准备工作 1 ...

  2. 规则引擎ILog和CKRule的对比

    IBM™ WebSphere™ ILOG是业界最有影响力的业务规则商业软件,它提供了最好的业务规则管理系统,在Java领域更是有广泛的成功案例.网上关于ILOG的技术资料非常多,大家都比较了解ILOG ...

  3. 使用CKRule规则引擎处理多变业务

    1, 多变业务 开发系统时,有没有试过下面的情况,如果你试过,那可以考虑一下使用规则引擎了. 序号 问题 举例 1 业务规则来自于一个或多个表格 商店的会员积分表,停车场的计费标准,快递费的计算表,客 ...

  4. SNF快速开发平台--规则引擎整体介绍及使用说明书

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

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

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

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

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

  7. Drools规则引擎

    一.简介 Drools is a Business Rules Management System (BRMS) solution. It provides a core Business Rules ...

  8. 【java规则引擎】java规则引擎搭建开发环境

    Drools官网:http://www.jboss.org/drools Drools and jBPM consist out of several projects:(Drools软件包提供的几个 ...

  9. C# RulesEngine 规则引擎:从入门到看懵

    说明 RulesEngine 是 C# 写的一个规则引擎类库,读者可以从这些地方了解它: 仓库地址: https://github.com/microsoft/RulesEngine 使用方法: ht ...

随机推荐

  1. RC522天线匹配参数【worldsing笔记】

    图为Device读卡器的参数值 EMC电路对读写距离影响不大:                   L3 和L4 固定为2.2uH:                  C11和C12也是固定值,如果P ...

  2. .net MVC全局定时器执行作业

    首先的一个需求是在OA系统中定时跑一些定时作业,例如发放年假等事务,之前的做法是在服务器上加入一个服务,用系统定时作业去跑服务,这样有个问题就是当系统在发布的过程中,有可能忘记启动服务而导致无法定时执 ...

  3. Oracle函数汇总

    日期函数 1. select sysdate from dual 查询当前日期 2. select months_between() from dual 查询两个日期的月份差 3. select ad ...

  4. SQLite使用教程10 运算符

    SQLite 运算符 SQLite 运算符是什么? 运算符是一个保留字或字符,主要用于 SQLite 语句的 WHERE 子句中执行操作,如比较和算术运算. 运算符用于指定 SQLite 语句中的条件 ...

  5. getJSON的用法

    一.方法定义:jQuery.getJSON( url, data, callback ) 通过get请求得到json数据 ·url用于提供json数据的地址页 ·data(Optional)用于传送到 ...

  6. 使用 Windows 窗体 TextBox 控件创建密码文本框

    密码框是一种 Windows 窗体文本框,它在用户键入字符串时显示占位符. 创建密码文本框 将 TextBox 控件的 PasswordChar 属性设置为某个特定字符. PasswordChar 属 ...

  7. 新浪旗下的SAE云服务入门

    前言: 云服务已经火热很多年了,到了现在已经基本进入稳定期,稍微有实力的公司都会推出免费的云存储,像百度的还几个T,速度也不错.如果不担心数据安全问题,代替平时的U盘还是没有问题.而SAE是新浪在20 ...

  8. Starling性能优化技巧十五则

    Starling的性能优化要点 一.尽可能减少状态变更 如您所知,Starling使用Stage3D来渲染所有的可见对象.这就意味着所有的绘制都是GPU完成的. 现在,Starling可以一个接一个的 ...

  9. mysql语句在客户端与服务端的基本使用

    //把数据库导出到脚本文件mysqldump -uroot -p1234 --databases abc > d:/a/abc.sql------------------------------ ...

  10. 按字母顺序排序的 arcpy.mapping 类列表

    arcpy.mapping 类可使用地图文档 (.mxd) 或图层文件 (.lyr) 中的不同对象类型的各种方法和属性.此文档可专门用作快速参考.有关详细信息,请使用链接跳转至各帮助页面. arcpy ...