Para la comunidad en general y Antonio en particular.
Tengo una aplicación la cual tiene varios modulos opcionales.
La idea es distribuir un fichero ejecutable principal, y en fichero separados los diferentes modulos.
Quiero tenerlo separado porque me interesa solo distribuir algunos modulos en concreto, que sean faciles de mantener y actualizar sin tener que recompilar la aplicación principal.
Mis primeras pruebas fueron con DLL, usando la VM del ejecutable principal, que aunque funciona es un poco roñoso a la hora de montarlo y definir las funciones.
Hace poco probe a usar ficheros HRB, que pesan poco en tamaño, y me han resultado más faciles de compilar y distribuir.
Y la pregunta es, cual pensais es mejor solución, pros y contras de unos y otros.
Gracias anticipadas.
Script Vs DLL
- Biel EA6DD
- Posts: 680
- Joined: Tue Feb 14, 2006 9:48 am
- Location: Mallorca
- Contact:
Re: Script Vs DLL
Byel,
Mi experiencia hasta ahora es que depende de que y como lo quieras hacer es mejor un metodo u otro, y me refiero al uso de Scripts o Hrb. Hace tiempo montabamos módulos dll, pero con el paso del tiempo y el cambio de versiones de Harbour resultaba que a veces funcionaban bien y otras no y resultaba un desastre, yo acabe harto
. Ahora el equipo de Harbour y en especial Prezmek aposto finalmente apostar por el uso de HRB y de hecho estan funcionando muy bien. Los tios han creado una libreria hbcplr.lib que es la que contiene el compilador y te permite incluso compilar desde tu propio exe.
Yo diria que es la mejor opcion. Otro tema seria si quisieras crear dll para usar desde otras aplicaciones, pero no es el caso.
Tambien, decirte que a veces tenemos modulos que pasan a ser dinamicos mediante el uso de scripts internos, y nos va muy bien. Con scripts me refiero a pequeño codigo que te permite realizar una accion determinada y que es modicable por el propio usuario.
Por ejemplo: Imaginate que tienes un tratamiento de un producto y le asignas un nombre de Lote. por defecto llama al script y este devuelve el nombre del lote la fecha.
Imaginate que quieres que el nombre sea la fecha + la hora, o si es un tipo de producto una codificacion diferente, o si ya existe otro, ...
Te vas a tu script lo cambias y te quedas tan ancho, sin tener de recompilar nada en especial, ni la aplicacion, ni el modulo.Y estos scripts te les puedes guardar en tu tabla tranquilamente si quieres, sin que nadie les meta mano...
Este concepto lo llaman USER-EXITS, y permite al "SUPER USUARIO" amoldar y adaptar mas facilmente la aplicacion.
Mi experiencia hasta ahora es que depende de que y como lo quieras hacer es mejor un metodo u otro, y me refiero al uso de Scripts o Hrb. Hace tiempo montabamos módulos dll, pero con el paso del tiempo y el cambio de versiones de Harbour resultaba que a veces funcionaban bien y otras no y resultaba un desastre, yo acabe harto

Code: Select all
if HB_Compile( "", "Modulo001.prg", "-n", "-gh" ) == 0
HB_HRBRun( "Modulo001.hrb" )
endif
Tambien, decirte que a veces tenemos modulos que pasan a ser dinamicos mediante el uso de scripts internos, y nos va muy bien. Con scripts me refiero a pequeño codigo que te permite realizar una accion determinada y que es modicable por el propio usuario.
Por ejemplo: Imaginate que tienes un tratamiento de un producto y le asignas un nombre de Lote. por defecto llama al script y este devuelve el nombre del lote la fecha.
Code: Select all
FUNCTION Lote()
LOCAL dDate := Date()
RETURN dDate
Te vas a tu script lo cambias y te quedas tan ancho, sin tener de recompilar nada en especial, ni la aplicacion, ni el modulo.Y estos scripts te les puedes guardar en tu tabla tranquilamente si quieres, sin que nadie les meta mano...
Este concepto lo llaman USER-EXITS, y permite al "SUPER USUARIO" amoldar y adaptar mas facilmente la aplicacion.
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
- Antonio Linares
- Site Admin
- Posts: 37485
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Script Vs DLL
Biel,
Como te comenta Carles, los HRB han mejorado mucho en Harbour y puedes incluso generarlos desde el propio EXE.
Es decir tu EXE, puede compilar como si se tratase de Harbour.exe y ademas puede ejecutar lo compilado!
Como te comenta Carles, los HRB han mejorado mucho en Harbour y puedes incluso generarlos desde el propio EXE.
Es decir tu EXE, puede compilar como si se tratase de Harbour.exe y ademas puede ejecutar lo compilado!

- Biel EA6DD
- Posts: 680
- Joined: Tue Feb 14, 2006 9:48 am
- Location: Mallorca
- Contact:
Re: Script Vs DLL
Gracias Carles y Antonio.
Bueno vuestros comentarios hacen que se reafirme mi opinion inicial, usare los HRB parece que nos das mas potencia que las DLL y ademas son mas sencillos de ensamblar y distribuir, gracias por vuestros comentarios.
Bueno vuestros comentarios hacen que se reafirme mi opinion inicial, usare los HRB parece que nos das mas potencia que las DLL y ademas son mas sencillos de ensamblar y distribuir, gracias por vuestros comentarios.
Re: Script Vs DLL
Carles,
Existe esta funcoes para Xharbour ?, não encontrei
if HB_Compile( "", "Modulo001.prg", "-n", "-gh" ) == 0
HB_HRBRun( "Modulo001.hrb" )
endif
Ari
Existe esta funcoes para Xharbour ?, não encontrei
if HB_Compile( "", "Modulo001.prg", "-n", "-gh" ) == 0
HB_HRBRun( "Modulo001.hrb" )
endif
Ari
Re: Script Vs DLL
Esto esta bueno, pero como se hace si la aplicacion es propietaria y no acceso al codigo fuente ?Antonio Linares wrote:Biel,
Como te comenta Carles, los HRB han mejorado mucho en Harbour y puedes incluso generarlos desde el propio EXE.
Es decir tu EXE, puede compilar como si se tratase de Harbour.exe y ademas puede ejecutar lo compilado!
Harbour permite esto ?