Actualmente estoy escribiendo una aplicación .net con C# y quiero comprobar una serie de reglas y, en función de pasar o no las reglas, realizar una acción. Por lo tanto, estoy buscando implementar una solución genérica que pueda volver a utilizar siguiendo los buenos principios establecidos. Esto me ha llevado a la conclusión de que necesito escribir un motor de reglas.diseño del motor de reglas y ejemplos en C#
Tengo un buen conocimiento de C# pero esta es la primera vez que he tenido que escribir un motor de reglas así que como parte de mi investigación en el diseño y desarrollo de tales, estoy buscando consejos sobre la creación de tales un motor. ¿Qué sería aún mejor sería algún ejemplo que pudiera mirar? ¿Alguna aplicación de motor de reglas C# /. Net? ¿En qué capa de una arquitectura típica de 3 niveles deberían residir? Eché un vistazo rápido al codeplex y al código de Google, ¡pero ninguno saltó sobre mí! Entonces, alguna dirección sería genial.
Sé que esto suena como una arrogancia terrible pero he descubierto que la biblioteca de reglas de WF es anémica y prácticamente inutilizable en comparación con un motor de dominio específico bien diseñado y personalizado. Realmente depende de la aplicación, por supuesto, pero no sé si lo recomendaría tan rápido. – Aaronaught
Lo uso todo el tiempo con mis flujos de trabajo para aplicaciones de control industrial de ritmo lento, lo que me dio la impresión de que es una de las implementaciones más pragmáticas. Pero tal vez es porque estoy tan familiarizado con eso. Pero sé que esto es más como un típico argumento xUnit vs MSUnit .. –
Quizás. Todo lo que sé es que cada vez que trato de usar WF (o las reglas de WF), siempre termino levantando las manos y diciendo "¿Por qué no solo * escribo el código * en lugar de calzarlo en este ¿cosa?" No estoy comparando WF con otros motores de flujo de trabajo, estoy seguro de que están bien, supongo que lo que digo es que la mayoría de los motores de reglas OTS, si no todos, son demasiado genéricos para ofrecer una gran ventaja sobre el código simple. + configuración. Tal vez es solo mi inexperiencia/mala experiencia hablando. – Aaronaught