TRecord o cuando menos es más

Hace unos meses tuve un problema de lentitud con una aplicación. Se había eliminado el servidor de una oficina y la aplicación, que funciona en red, se tenía que ejecutar en remoto desde otra. Comenzaron los problemas de lentitud, abrir una formulario TFSDI — https://cincomundos.wordpress.com/2006/06/13/fsdi2006/ — con una rejilla de datos sobre un fichero tardaba casi 10 segundos. Después de varias pruebas, vi que el problema era una clase browse muy vieja, y que simplemente actualizando la versión de Harbour + FWH usada en la aplicación la lentitud desaparecía hasta niveles aceptables.

Entonces caí en la cuenta de que en esta aplicación estaba utilizando una clase de manejo de dbf, y al intentar compilarla para la versión de Harbour a utilizar me daba un montón de errores. La alternativa era rehacer todo el código afectado por la clase o seguir utilizándola actualizándola, cosa que a su vez llevaba a rehacer código pues esa clase había sido actualizada de manera no compatible con la que yo tenía.

Lo que hice fue coger la calle de enmedio. Rehice todo el código afectado por la clase a Harbour puro, y comencé a utilizar una clase de manejo de buffer de registro que me proporcionó Marcelo Via Giglio en http://forums.fivetechsupport.com/viewtopic.php?f=6&t=34402 . Con esta clase podría manejar todos los campos de un dbf como datas de un objeto y cargarlos/salvarlos con una llamada a un método. Es una solución sencilla, pero me evitó tener que aprender el manejo de otra clase de gestión de dbf que suelen tener montones de opciones que nunca utilizo. En mi caso, menos es más.

La clase TRecord está publicada en https://github.com/JoseluisSanchez/TRecord y he actualizado Colossus para mostrar el uso de esta clase, los cambios están en la gestión de claves https://github.com/JoseluisSanchez/colossus/blob/master/prg/pclaves.prg

¿ Usas clases de terceros y has tenido situaciones como la mía ? ¿ Estás a favor o en contra de estas clases ? Espero tu respuesta en los comentarios.