微软的规则引擎

 
很多朋友会问,.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和数据库对象有特殊的处理逻辑。

最新文章

  1. lisp等
  2. iphone 浏览器自动解析数字为号码解决方法
  3. iOS.AppThinning-iOS9-new-feature-for-app-thinning-bitcode-odr-slicing
  4. HDU 1069 基础动态规划+排序
  5. Codeforces Round #308 (Div. 2)B. Vanya and Books 数学
  6. 理解maven
  7. Java学习笔记:语言基础
  8. 初学java,遇到的陌生词语(1)
  9. Styles and Themens(5)样式文件Style.xml中各元素的含义
  10. linux 系统磁盘分区之fdisk
  11. ant+svn+tomcat实现项目自动部署
  12. C++模板:文件操作
  13. 利刃 MVVMLight 4:绑定和绑定的各种使用场景
  14. 【转】DHCP的请求过程
  15. sql select case when 语句
  16. redis主从配置+哨兵模式
  17. Fedora Linux安装deb包
  18. 打个响指Selenium自动化开启
  19. 开启BBR
  20. JMeter学习笔记2-图形界面简单介绍

热门文章

  1. css控制内容显示,自动加"..."
  2. .net 开发人员的瓶颈和职业发展
  3. JS幻灯片,循环播放,滚动导航,jQuery平滑旋转幻灯片
  4. WinForm程序启动控制台窗口Console
  5. linux下hexdump和od命令:显示文件十六进制格式
  6. C++ “读取位置 0x****** 时发生访问冲突”的可能原因
  7. 手机端overflow scroll卡顿的情况
  8. 一个仿 github for windows 及 windows 8 的进度条
  9. [React Native] Reusable components with required propType
  10. android131 360 01 闪屏页和主页面