¿Alguien sabe de una buena biblioteca de reglas de biblioteca .NET (idealmente de código abierto)? Necesito algo que pueda hacer expresiones lógicas anidadas, por ejemplo, (A y B) Y (B o C o D). Necesito hacer comparaciones de las propiedades del objeto, por ejemplo, A.P1 y B.P1. (Idealmente, podría comparar cualquier propiedad - A.P1 Y B.P2).Buscando reglas simples: biblioteca de motores en .NET
Debe almacenar las reglas en una base de datos (tengo mucha lógica configurable simple). Y debe tener una API de creación/administración de reglas. La herramienta de gestión debería inspeccionar las instancias para determinar qué propiedades están disponibles y qué restricciones existen.
Gracias!
Oh, una cosa más. Como motor de reglas, necesito incluir el concepto de Acciones (Comandos). Estos son los que se ejecuta cuando la expresión devuelve:
If (expression.Evaluation) { actions.Execute(); }
así que no veo una regla como algo parecido a:
class Rule
{
Expression Exp;
Actions[] Actions;
Run()
{
if(Exp.Evaluate())
{
foreach(action in Actions)
{
action.Execute();
}
}
}
}
Existe un inconveniente para el actual motor de reglas WF ... usa un subconjunto muy pequeño de expresiones codificadas, pero en realidad realiza un análisis de cadenas para generar el código subyacente, no las clases CodeDom. –
Inicialmente estaba usando Drools 3.0. Pero no es compatible con .Net Framework 4.5. Entonces, ¿puedo usar esto como un sustituto de Drools? –
@ShyamDixit: Lo siento, no tengo idea, pero elegiría cualquier cosa en desarrollo actual a través de WF3. Esta respuesta tiene casi seis años. No tome decisiones leyendo artículos/preguntas/respuestas antiguas. – Will