4 de mayo de 2011

Programa en dBFast modificado para Harbour + Minigui

Hace unos días, Ramón Denuc me reenvió un email de Jorge López (más conocido como Mustafa), antiguo desarrollador en dBFast que cansado de las limitaciones impuestas por la falta de soporte a raíz del abandono del proyecto por parte de sus creadores, sumadas a la consiguiente falta de actualizaciones que lo hicieran compatible con las tecnologías de 32 bits, y por la amenaza en ciernes que suponen los sistemas operativos de 64 bits para este viejo y fiel lenguaje, en marzo de 2010 anunció a la comunidad dBFast a través de su foro en "La web del Programador" que abandonaba el desarrollo de aplicaciones en dBFast.

Actualmente Jorge utiliza el compilador Harbour, totalmente compatible con Clipper, más la librería gráfica Minigui.

Jorge revisó un artículo que publiqué en este blog el día 13 de octubre de 2010, titulado: "Uso de solapas para administrar archivos de datos en una interfaz basada en CONTROL BROWSE y PICTURE BUTTONS", y modíficó el código dBFast del ejemplo para adaptarlo a Harbour + Minigui.   Para clarificar un poco más la idea, comparto con ustedes texto que Jorge le envió a Ramón: 

"Hola Ramon
Como estas ? como sigue dBfast ? 
He visto la Web que tiene el compañero RODRIGO DINAMARCA
y tiene un Sample que me gusto mucho de un Tab_Browse con
dos Bases de datos y un Buscador comun y los Botones conjuntos
Me gustaria que le hicieras llegar la version que yo he modificado 
para HMG que al estar compilada en C pero siendo Clipper si es 
de 32 Bits. que veo que es el tema que esta preocupando a los 
usuarios de dBfast.
Tienes que renombrar los ficheros con extension b_  a--> bat si 
tiens que compilar y  e_  a --> exe que es el ejecutable.

Sin otro particular un abrazo
Jorge"

La verdad es que me impresionó bastante el resultado obtenido por Jorge al compilar su aplicación con Harbour+Minigui.

Este es el ejemplo original desarrollado en dBFast:



Pueden ver el artículo y el ejemplo completo haciendo clic aquí


Este es el ejemplo modificado por Jorge López y compilado con Harbour Minigui:





Como siempre, pueden descargar el ejemplo modificado por Jorge desde MEGAUPLOAD


MEDIAFIRE


FILESERVE




Algunos datos interesantes sobre Harbour y Minigui:

Harbour Minigui es un proyecto Open Source (gratuito) iniciado originalmente por Roberto López (Argentina).  Minigui es una librería escrita en lenguaje xHarbour y C nativo que proporciona una interfaz gráfica a los programas escritos en xHarbour, actualmente se incorpora el compilador de C, MinGW que también es Open Source.  Para más información acerca de Minigui, pueden revisar su página web oficial en:  http://www.harbourminigui.com y pueden encontrar una definicion simple pero bastante completa en los  siguientes enlaces:

http://www.embalajesterra.com/misdoc/programas/minigui_doc1.html
http://www.carozodequilmes.com.ar/Projects/QAC/QAC_9.htm

Un aspecto interesante a considerar es que a diferencia de Clipper, en el cual compilábamos nuestros PRG para generar un módulo OBJ, que luego enlazábamos para crear un EXE, Harbour genera un código C que es compilado y posteriormente enlazado a las librerías para generar el EXE.  También es posible, dependiendo del compilador que utilicemos, generar aplicaciones para Pocket PC o para Linux, e incluso aplicaciones para 64 bits.

En lo personal, y a raíz del trabajo de Jorge López, descargué Harbour Minigui, y en los tiempos libres (que no son muchos porque cuando se tiene familia la cosa cambia), me he entretenido bastante probando a hacer pequeños programillas, y la verdad es me ha gustado mucho, el lenguaje es bastante sencillo y semi orientado a objetos, por su parte, el IDE es una gran ayuda a la hora de crear las interfaces, aunque si lo desean, pueden programar directamente el código sin utilizar el IDE.

Creo que Harbour Minigui es una excelente opción para aquellos que buscan una alternativa de migración con una curva de aprendizaje mínimo, para cuando dBFast haya cumplido su vida útil, de hecho, me han solicitado actualizar un sistema de gestión comercial y estoy pensando seriamente hacerlo con Harbour Minigui, pero tranquilos, eso no quiere decir que abandonaré dBFast o este Blog.

Saludos,


RODRIGO DINAMARCA M  

9 comentarios:

  1. Hola,

    Después de no poder visitar durante mucho tiempo este fantástico Blog, por fin hoy he podido leer tus comentarios sobre este articulo sobre Harbour + Minigui.

    He descargado el Harbour y el Minigui y he comprimido el ejemplo de Jorge, me parece sensacional, que cambio en general, pero por dentro es totalmente distinto a dbfast.

    Voy a necesitar muchas horas para entender todo de nuevo.

    ResponderEliminar
  2. Hola Ramón, la verdad es que ni yo le he dedicado mucho tiempo al blog por falta de tiempo pues me han solicitado el desarrollo de varias aplicaciones. La primera de ellas es un sistema de inventario para tienda de calzado, el cual decidí programar con Harbour Minigui 3.0.25 (que es el que me ha parecido más estable) sin saber con lo que me iba a encontrar, la idea es "aprendo o aprendo" y trabajar bajo el método de ensayo y error.

    Al principio me costó un poco pero principalmente porque con Minigui ya no tienes que crear el ciclo DO WHILE .T. - ENDDO y chequear los eventos con READ SAVE o CHKEVENT(), solo creas las ventanas y a cada objeto le asignas código en el evento que te interesa manipular. Creo que en eso me ayudó el haber trabajado con lenguajes visuales.

    Revisé también detenidamente el ejemplo de Jorge pero aunque el resultado es espectacular, tiene varios aspectos que se pueden optimizar, así que lo rehice utilizando el IDE de Minigui, índices compuestos .CDX y ALIAS en lugar de los tradicionales SELECT. En el sistema de inventario implementé el ejemplo manipulando 4 plantillas de datos con codificación automática que espero publicar pronto (en cuanto pueda hacerme un tiempo para documentar el código).

    En lo personal creo que los ejemplos que vienen en la carpeta "Samples" sirven bastante, también el tutorial básico, que afortunadamente también está en español, es una gran ayuda.

    Yo creo que la mayor dificultad para empezar con Harbour Minigui está en que algunas funciones y controles no están tan bien documentadas como uno quisiera, por ejemplo, el uso de datos de una tabla como elementos de un control (en mi caso tuve un COMBOBOX que me dio bastantes dolores de cabeza). Además, se ve que en los foros de ayuda la mayoría de los desarrolladores viene de Clipper + Fivewin y están familiarizados con el uso de "clases" y "objetos", lo cual no es mucha ayuda para quienes venimos de dBFast.

    Descargué también MINIGUI Extended y OOGH, pero para el proceso de aprendizaje no te los recomiendo hasta que estés bien adaptado e interiorizado de como funciona el tema. Si vas a empezar usa alguna de las versiones disponibles en http://www.harbourminigui.com/index.php?option=com_frontpage&Itemid=1, pues desde el ide puedes hacer todo (Diseñar formularios, tablas, compilar, etc.). insisto, la versión que me ha parecido más estable es la 3.0.25, aunque aún no he probado la 3.0.28.

    Bueno Ramón, demás está decir que acá estamos para apoyar en lo que necesites y te recomiendo 100% MINIGUI para la siguiente etapa de la vida profesional.

    Un abrazo,

    ResponderEliminar
  3. hola amigos, muy interesante su uso de harbour y minigui, me interesa mucho saber mas sobre este compilador y su hide,soy nuevo es este lenguaje ya que mi fuerte antes era FOXPRO DOS y FOXPRO WIN,actualmente estoy programando es visual base 6 y MySQL ,.NET me complica la vida.. ,he revisado la internet y he visto que harbour y minigui son la combinacion perfecta para desarrollar aplicaciones muy profesionales usando ODBC o librerias de coneccion nativa a MYSQL,que ya los provee , quisiera yo saber como hacer un entorno MDI que soporte multiventanas y comparta variables de memoria la cual tiene la coneccion de base de datos para poder activar consultas multiples en cada ventana habierta. he tratado de ejecutar o llamar ventanas independiente desde el menu del MDI y da error, por no estar dentro del MDI, mi pregunta es ,, se puede ejecutar simultaneamente un MDI y que ejecute ventanas independientes y pasarse valores de variables de unos a otros.. lo que busco es darle mas omenos una similitud lo que tenia foxpro que podias definir ventanas tipo mdi ventanas hijas y ventanas independientes y ejecutar en forma simultanea una de otra, visual basic hace algo parecido con tipos de ventanas.

    SALUDOS desde ya. a todos uds. y muchas felicitaciones por este trabajo y esfuerzo por mejorar y darnos una herramienta facil y util o todos los usuarios. desde peru. lucio ramirez.

    dejo mi correo para algunas sugerencias.. gracias.
    Mail: lucio_2000@hotmail.com

    ResponderEliminar
  4. Hola Rodrigo: muchas felicidades por el Blog y por darnos la oportunidad de seguir con clipper, que necesito para subir a internet el programa ya compilado ?

    Actualmente uso Fivewin, pero no en internet. en 64 Bits no funciona mi programa de facturas.


    Saludos.

    Atte.
    Wilberth Poot
    pocw@hotmail.com

    ResponderEliminar
  5. buenas, gracias por su ayuda pero no funcionan los link de descarga de los ejemplos si los pudiera volver a subir, estoy empezando con Harbour Minigui y todo lo que sea ayuda se agradece. o pasarmelo a mi correo tguerrero66@hotmail.com
    gracias

    ResponderEliminar
  6. Hola alguien conecto con mysql en un hosting externo ??? Gracias

    ResponderEliminar
  7. Hola a todos, estoy empezando con harbour minigui y no funcionan los link de descarga de los ejemplos, por favor habria alguien que me los puediera pasar para poder estudiarlos y ver como funciona, si es posible os dejo mi correo femtino@gmail.com. Muchas gracias.

    ResponderEliminar
  8. quisisera poder obtener los fuentes de los ejemplos modificados de jorge
    soy favio martoglio de Argentina y estoy intentando retomar la programacion en Harbour pues he programado en clipper. desde ya muchas gracias
    mi cuenta de correo es faviomartoglio@hotmail.com o faviomartoglio@gmail.com

    ResponderEliminar
  9. Si es posible algun link donde ver ejemplos y fuentes seria de mucho agradecimiento. Gracias y un abrazo a la comunidad de programadores

    ResponderEliminar