Script Vs DLL

Post Reply
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Script Vs DLL

Post by Biel EA6DD »

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.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Carles
Posts: 937
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Contact:

Re: Script Vs DLL

Post by Carles »

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 :x . 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.

Code: Select all

if HB_Compile( "", "Modulo001.prg", "-n", "-gh" ) == 0
   HB_HRBRun( "Modulo001.hrb" )
endif
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.

Code: Select all

FUNCTION Lote()

   LOCAL dDate := Date()

RETURN dDate
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.
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
User avatar
Antonio Linares
Site Admin
Posts: 37485
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Script Vs DLL

Post by Antonio Linares »

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! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Re: Script Vs DLL

Post by Biel EA6DD »

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.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Ari
Posts: 128
Joined: Fri Feb 03, 2006 4:21 pm
Location: Brazil
Contact:

Re: Script Vs DLL

Post by Ari »

Carles,

Existe esta funcoes para Xharbour ?, não encontrei


if HB_Compile( "", "Modulo001.prg", "-n", "-gh" ) == 0
HB_HRBRun( "Modulo001.hrb" )
endif

Ari
Compuin
Posts: 1017
Joined: Tue Dec 28, 2010 1:29 pm

Re: Script Vs DLL

Post by Compuin »

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! :-)
Esto esta bueno, pero como se hace si la aplicacion es propietaria y no acceso al codigo fuente ?

Harbour permite esto ?
Post Reply