Ver Mensaje Individual
  #1  
Antiguo 31-08-2005
adlfv adlfv is offline
Miembro
 
Registrado: may 2005
Posts: 39
Reputación: 0
adlfv Va por buen camino
Lightbulb Reutilizar código "generico"

Hola a todos.

En el post titulado "Registrar Formas en Delphi" de lpmlpm el autor plantea que trabaja con un conjunto de clases y código más o menos generico como explica a continuación: (Extraido del post)

Cita:
sucede que me he hecho una especie de
Framework GUI con varias clases y ventanas que me ahorran mucho
trabajo y que son de lo más genericas en el desarrollo de un programa
de Base de Datos, es sumamente practico pues se modulariza y
reutilizan cientos (o miles) de lineas de código y es una verdadera
maravilla para proyectos medianos/grandes.

Pero esta manera de trabajar tiene el inconveniente de que hay que
agregar muchas clases de formas en el DPR para poder hacer uso de los
beneficios... por poner un ejemplo, tengo algunas de tantas clases
para manejar los reportes mas o menos asi:

TReportePrototipo ---> TReporteSelector ----> TReporteNiveles
Más adelante nuestro compañero lpmlpm me explica un poco su enfoque de lo que es más o menos general y que se suele usar en muchas aplicaciones. Veamos:

Cita:
...en todos los sistemas queremos generalmente que se puedan identificar los usuarios, que se le puedan asignar permisos individuales y de grupo... En mi caso te puedo mencionar que me gusta que en la aplicación se pueda crear menus personalizados, implementar un escritorio virtual de accesos directos a opciones de la aplicación, poder ver a que y a donde estoy conectado, poder manejar permisos a nivel de catálogos o porque no a nivel de los mismos componentes de los catálogos, me gusta guardar el estado de la última configuración que se uso en cada reporte del programa..
En definitiva la idea es establecer un "nucleo comun" a las aplicaciones de forma que las aplicaciones usen este nucleo y cualquier cambio se vea reflejado en las aplicaciones (como se explica en el post).

Ahora bien, la idea de este post es profundizar un poco más en este tema, y si es posible aportar código, y para eso yo seré el primero en hacerlo. Por favor diganme su opinión, posibles fallos, mejorías, etc.

Ahora explicaré mi caso.
Estoy haciendo un programa más o menos grande, y todavía no tengo claro qué base de datos usar, por lo cual he hecho como un "envoltorio" para lo que es la base de datos, con funciones más o menos genéricas en UBD.pas. La idea de esto, es poder cambiar de forma más o menos facil el DataModule (funciona bien para ejecución, pero para diseño no del todo, pues las vinculaciones al DataModule son en tiempo de diseño...).

Para los mantenimientos de datos (SELECT, INSERT, DELETE, UPDATE): Cada tabla (o casi todas) tienen un formulario de mantenimiento asociado
(con métodos Agregar, Editar, Eliminar, Deshacer, Aplicar) y a este hay un editor asociado (donde se editan los campos). El formulario de mantenimiento hereda de un formulario genérico con un listado donde se presentan los datos y se encuentran los métodos anteriormente citados (BaseListado), y el formulario de edición hereda de un formulario genérico donde se pueden editar los datos (BaseEditor). Como dije anteriormente, cada formulario heredado de BaseListado se relaciona con su editor correspondiente heredado de BaseEditor.

Por ahora esto es el código más o menos genérico que tengo implementado. Todavía no he empleado reportes (porque no estoy seguro de qué herramienta utilizar).

Espero que por favor aportemos ideas entre todos y podamos despues implementarlas en nuestros programas.

Un cordial saludo a todos, y disculpen si el post es muy largo
Archivos Adjuntos
Tipo de Archivo: zip Generico.zip (8,4 KB, 88 visitas)
Responder Con Cita