繁体   English   中英

我们可以在Web应用程序中使用WF规则引擎吗?

[英]Can we use the WF rules engine in a web application?

试图了解如何在WWF应用程序之外使用WF规则引擎。 我只阅读了有关该主题的博客文章 但是我对可行性表示怀疑。

我的申请要求如下:

  1. 基于Web的UI,用于编写规则并将其存储在db中。
  2. Windows服务将下载规则。 规则执行引擎将收集所需的数据并执行规则,并将结果作为输出。

该规则只是一组必须在表的一行上起作用的指令。 该表的模式是动态的; 但是,有一些元数据告诉规则执行引擎如何从该行收集必要的输入。

我知道规则通常是使用规则编辑器输入的; 这是一个Windows窗体应用程序。 通常会生成一个*.rules文件。 据我所知,WF规则引擎会评估此文件并执行规则。

*.rules文件是规则的xml表示形式。

dotnet框架中是否有任何api可以生成此xml表示形式? 而且,我们可以构建一个基于Web的前端来输入规则吗?

想知道是否有api类的东西,我遇到了以下问题:

http://code.msdn.microsoft.com/windowsdesktop/Creating-Rules-Using-the-23c5d561

这是一个类似于API的界面。 但是,它使用System.CodeDom命名空间中的对象(通常是各种CodeExpression对象)。

要使用它,您必须通过某种机制(使用xml或json)在前端正确表示代码表达对象。 在服务器中,即,当您将规则发布到服务器时,您必须正确地创建必要的代码表达式(通过解析),并将这些内容提供给api。

您需要两种类型的代码表达式对象-一种用于评估规则条件,另一种用于在规则通过或失败时执行填充。 (我只需要规则通过时执行的东西)。

此处提供的示例使您了解如何使用api。 剩下的就是您必须建立的东西。

程序源代码通常使用AST表示在内存中。 您要做的只是设计自己的实现。

如果要使用Windows Workflow Foundation(WF),则必须生成WF XAML-而不是该文件的.rules或XML表示形式。 这是Workflow XAML文件的示例。 基本上有三种生成此方法的方法(从最简单的方法开始)

  1. 通过在Visual Studio中使用设计器
  2. 通过生成DynamicActivity -instance运行时并将其序列化
  3. 通过实现自己的生成器

要回答您的问题: 是的-这是选项2。 如果您的规则非常简单(如果-否则-则不然),并且您不期望它们将来会增加复杂性,那么选择#3也是可行的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM