Hola.
Siempre utilizo controles data-aware, y realmente són perfectos para desarrollar rapidamente una aplicación.
Aunque un buen amigo, en su empresa ha empezada a cambiar toda su programación, atacando objetos de datos en lugar de atacar directamente a la base de datos. Y me ha empezado a crear dudas.
Hay que admitir que el desarrollo RAD (con controles data-aware) puede llegar a ser una pesadilla en el mantenimiento de la aplicación. Por ejemplo, en la aplicación principal de mi empresa habrá unos 30 formularios atacando a la tabla de productos. Cada vez que tengo que cambiar algún campo de la tabla (pasar un campo de entero a decimal, por ejplo.), hecho a temblar, puesto que paso meses encontrando errores en los sitios más insospechados, provocados por ese simple cambio.
Es el problema de que los formularios no són cajas negras completamente independientes, como deberian, sino que tienen el talón de Aquiles de que todas comparten directamente las tablas de datos. Esto hace que un cambio en la estructura de los datos necesario para un formulario, pueda hacer fallar cualquier otro formulario que los use (aunque no lo hayas tocado para nada).
Mi amigo sostiene que el uso de un OPF (Object Persistance Framework, o algo así) hace mucho más robusto el sistema, al atacar los formularios a objetos, en lugar de acceder directamente a la base de datos.
El desarrollo de la aplicación será más costoso usando OPF que RAD, pero si realmente simplifica drásticamente el mantenimiento de la aplicación, como promete, seguramente el beneficio a largo plazo será mucho mayor.
Creo que hay que tener en cuenta esta alternativa. Lástima que nunca se tiene suficiente tiempo para probar nueva tecnología.
NOTA : Quiero recordar la dirección que proporcionó Kinobi en uno de los hilos anteriormente citados, puesto que estos componentes Open Source pueden simplificar el uso de una capa de datos orientada a objetos.
http://www.techinsite.com.au/ (Vienen a ser el equivalente a los controles data-aware, pero en lugar de enlazarse a un dataset se enlazan a un objeto de datos).
Saludos.