1

试图了解如何在WWF应用程序之外使用WF规则引擎。我只阅读关于该主题的博客post。但我对这个可行性有一定的怀疑。我们可以在Web应用程序中使用WF规则引擎吗?

我的应用程序的要求如下:

  1. 基于Web的用户界面编写的规则,并将它们存储在数据库中。
  2. Windows服务将下载规则。规则执行引擎将收集它需要的数据并执行规则,并将结果作为输出。

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

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

*.rules文件是规则的XML表示。

有没有在DOTNET框架,生成该XML表示任何API?而且,我们可以建立一个基于网络的前端来输入规则吗?

+1

.rules是什么格式? WF规则引擎不*评估* .rules,它评估.xaml。 – Nilzor

回答

2

在想,如果有一个API类型啄和我碰到下面传来:

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

它就像接口的API。但是它消耗来自System.CodeDom命名空间的对象(通常是各种CodeExpression对象)。

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

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

提供的示例提供了一个如何使用api的概念。其余的东西你必须建立。

程序源代码通常在内存中使用AST表示。所有你需要设计的是自己实现。

1

如果您想使用Windows Workflow Foundation(WF),则必须生成WF XAML - 而不是.rules或XML表示(不管是什么)。以下是a Workflow XAML file的示例。基本上有三种方法来生成这个(与最不复杂的方法开始)

  1. 通过使用设计器在Visual Studio
  2. 通过生成DynamicActivity -instance运行时和serializing it
  3. 通过实现自己的发电机

要回答你的问题:是 - 它的选项#2。如果你的规则非常简单(if-then-else),并且你预计未来他们的复杂性会增加,那么选项#3也可能是一个可行的选择。

相关问题