Reglas de Negocio
Para realizar un motor sencillo de reglas de negocio necesitamos:
- Reflection: Leer un ensamblado e identificar los objetos que vamos a utilizar para la regla.
- Motor de ejecución: las reglas deben ser interpretadas o compiladas
- Si las reglas van a ser inyectadas, tenemos la opción de inyectarlas desde un ensamblado o desde un campo en la base de datos.
- Reglas pueden ser necesarias en la:
- capa de presentación: validaciones, verificaciones o listas de inclusion
- capa de negocio: control de requerimientos de la empresa con el manejo de datos
- capa de datos: acciones que deben realizarce en la base de datos.
- Para presentación: JScript
- Para negocio: C# o ironPython
- Para datios: Sql Server T-Sql
- Reglas pueden ser necesarias en la:
Existen dos libros bastante explicitos de como hacer un motor de reglas y como deben ser las reglas.
- http://www.amazon.com/Build-Business-Rules-Engine-Functionality/dp/1558609180/ref=sr_1_1?s=books&ie=UTF8&qid=1431304548&sr=1-1&keywords=business+rules+engine
- http://www.amazon.com/Business-Rules-Information-Systems-Aligning/dp/0201743914/ref=sr_1_1?s=books&ie=UTF8&qid=1431305482&sr=1-1&keywords=business+rules+and+information+systems
Si voy a generar código, el código de las reglas debe ser variable, solo voy a generar código de las pantallas, estoy escribiendo en windows forms la primera version, cuando esta funcione cambiare la generación de código de las pantallas a jscript.
Librería Visual.
He trabajado con Infragistics, DevExpress y ComponentOne. Por los ultimos años he utilizado DevExpress, pero para la empresa que trabajo se compró ComponentOne. Otra librería que me gusta es Spread, la he utilizado desde era una librería .com con VB5. Para reportes me gustaba Crystal Reports, pero desde que la compró SAP ya no es fácil de usar, me cambie a ActiveReports, ahora tengo la version 7, no he podido actualizar a la 8 o la 9, me gusto porque tiene la opción de crear reportes con control de posición de los datos en la página o con formato flotante como el resto de generadores de reportes.
Hace un par de meses descubrí SyncFusion que tiene una version gratuita https://www.syncfusion.com/downloads/communitylicense. Voy a trabajar con ésta librería, tiene componentes para windows forms, ASP MVC y JScript.
Para el acceso a datos, Telerik ORM, es gratuito. http://www.telerik.com/data-access.
Entonces, el primer modulo es la generación de un mantenimiento utilizando un modelo de datos, reglas de negocio para parte visual, reglas de negocio y base de datos.
Necesito los siguientes componentes:
- pedir información de entidades y sus propiedades, generar las tablas y generar el código de acceso.
- leer un ensamblado y poner en un treeview las clases, propiedades y métodos públicos.
- describir reglas de negocio y ponerlas en forma que sean utilizadas durante ejecución.
- leer la información del paso 1 (entidades y propiedades) y generar pantallas y código CRUD
- Programa para leer lo anterior, generar menu en runtime, pantallas y reportes.
Estan poniendo la información relative a un Sistema medico en Excel. Por cada documento: entidad, pantalla, reglas, métodos y reportes.
El Segundo paso será leer esos archivos Excel y generar los mantenimientos.