Estoy creando una interfaz donde los usuarios pueden construir sus propias reglas de negocios de objetos específicos de dominio en tiempo de ejecución, tienen esas reglas persistentes en la base de datos y luego las usa la aplicación. Algunos de estos son predicados complejos y otros requieren combinaciones de objetos de dominio en lo que parecen relaciones bastante complicadas. Hasta ahora he estudiado GoF, dynamics con eval y CodeDom. ¿Alguien tiene alguna sugerencia sobre lo que debería usarse?Reglas de negocio dinámicas
Respuesta
En realidad, sólo puede desarrollar su aplicación con WF gobierna API del motor sin usar WF. http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/08/09/WF-Rules-Engine-without-Workflow.aspx Esto le ahorrará mucho trabajo.
Kaizen, dependiendo del alcance y el tipo de sus reglas dinámicas, podría utilizar un motor de flujo de trabajo, como MS WF para definir las reglas como actividades de flujo de trabajo, por ejemplo ... de esta manera aislar la lógica y no necesita una reconstrucción completa de la aplicación cuando necesita cambiar algo en el flujo de trabajo.
Esto podría no ser la mejor solución, pero podría ser una alternativa ...
Después de haber pasado un año construyendo un motor de reglas y luchando en enfoques, puedo decir que no es fácil. Especialmente cuando te enfocas en cuál es tu objetivo. Si se trata de hacer que los usuarios escriban las reglas para el sistema, realmente debe concentrarse mucho en esa área. Lo que es fácil para un desarrollador es quizás mucho más difícil para la mayoría de los usuarios de negocios. Construimos una plataforma de autoría de reglas en Excel que se compiló en C# y se ejecutó dinámicamente ... el problema fue que los usuarios encontraron las hojas de cálculo y el flujo de la lógica demasiado complicado y contrataron a los contratistas de ASp.NET para construir las reglas.
BizTalk tiene un motor que creo que puede ser utilizado para aplicaciones .NET http://www.microsoft.com/biztalk/en/us/business-rule-framework.aspx
Que se diviertan!
¿Con qué frecuencia cambian las reglas? Crear un sistema que le permita al negocio construir (y versionar) sus propias reglas es mucho más desafiante que construir un sistema que permita a un programador actualizar las reglas de manera dinámica.
Cuando surgió un requisito similar en un proyecto anterior, la empresa admitió que, aunque sí, las reglas cambiarán; no cambiarán tan a menudo que tiene para que ellos estén haciendo las actualizaciones. Terminamos usando IronPython para las partes dinámicas y almacenando el código en la base de datos y el sistema obtendría las reglas apropiadas en la carga. El resto de la aplicación fue escrita en C#. Una victoria para nosotros y para el negocio.
- 1. Reglas de negocio dinámicas en una aplicación web
- 2. Reglas dinámicas de .htaccess
- 3. Formas dinámicas en rieles
- 4. Unir Múltiples Tablas Dinámicas Dinámicas
- 5. objetos de negocio 'estático/Constante'
- 6. sustitutos naturales claves vs/negocio
- 7. Uso de drools expert con tablas dinámicas de decisión
- 8. Motor de reglas de fuente abierta con una interfaz decente para escribir reglas
- 9. Columnas dinámicas
- 10. Tablas dinámicas y SQL dinámicas de T-SQL
- 11. Lo que define un objeto de negocio
- 12. Presentación, Negocio y Capa de Datos
- 13. métodos de negocio en playframework contolles
- 14. Optimización de consultas dinámicas
- 15. Variables de clase dinámicas
- 16. cssLas reglas/reglas son nulas en Chrome
- 17. Cuándo se usa un motor de reglas de negocios
- 18. Traducción de cadenas Qt dinámicas
- 19. SSIS - asignaciones dinámicas de columnas
- 20. Guardar clases dinámicas de rubí
- 21. Poblar matrices dinámicas de VBA
- 22. Funciones dinámicas de llamada - Python
- 23. Constantes dinámicas en PHP?
- 24. DataTable con columnas dinámicas
- 25. Variables dinámicas en XSLT
- 26. Variables dinámicas Jekyll Liquid
- 27. Python definir funciones dinámicas
- 28. directivas dinámicas en angularjs
- 29. DDD en un sistema de reglas configurables
- 30. Reglas semánticas/Reglas del árbol de sintaxis abstracta
¿Cuál es exactamente su pregunta, cómo almacenarlas y recuperarlas, o cómo ejecutarlas de manera rápida? Algunas muestras ayudarían, también en qué deberían operar las reglas, etc. – gjvdkamp
Eche un vistazo al motor de reglas de Code Effects. Hace lo que estás buscando. – Lacash