martes, febrero 20, 2007

Mas sobre el cambio a 32 bits. ¿ Hay vida todavía para el MS-DOS ?

Normalmente dejo pasar una semana o 10 días entre comentario y comentario que realizo en el blog, sin embargo, a raíz del último post, sobre porqué movernos de Clipper a xHarbour, he recibido muchas solicitudes de programadores de Clipper pidiéndome mas información sobre las bondades de los 32 bits, así que ante tanta insistencia y tan poca resistencia de mi parte, publico este comentario antes de la fecha en que lo suelo hacerlo, debido al interés que ha generado el tema.

Continuando con el post anterior, vamos a suponer que ya logramos movernos a 32 bits, pero estamos trabajando aun en modo consola, es decir en pantallas de MS-DOS, antes de plantearnos el salto a otra interfaz (windows o internet), caso que será materia de un comentario posterior en este mismo blog, tenemos que pensar que aún en modo consola, hay vida para nuestra vieja aplicación Clipper.

La semana pasada por dificultades de horario, me vi en la necesidad de comer varios días en restaurantes, comí los 5 días hábiles en un restaurante distinto, y cual sería mi sorpresa, a ver que de los 5 sitios donde comí, 2 utilizaban un programa EN CLIPPER MS-DOS, uno en modo consola basado en Unix (prestigiosa cadena de hamburguesas donde vive Ronald) uno en Windows y otro en PocketPC (donde van a comer los VIPs).

Pudieras pensar que el programa en MS-DOS era una aplicación "vieja", pero no, sucede que una de las aplicaciones Clipper que ví estaba instalada en un restaurante de apertura reciente, perteneciente a una cadena restaurantera con por o menos otros 5 restaurantes en la Ciudad de México (Casa Avila), naturalmente mi curiosidad morbosa me llevó a preguntarle a la cajera cuando fui a pagar la cuenta sobre el programa y me comentó que ese programa lo usaban en todos los restaurantes del grupo y que les daba toda la información necesaria, con lo cual, no veía la necesidad de cambiarlo. El otro programa estaba instalado en el prestigioso "Salón Luz" conocido por su estupendo codillo de cerdo al horno con ensalada de papas a la vinagreta (hummmmm yomi yomi), especialidad de la casa, pero que controla bar y restaurante con un programa Clipper.

En España, el software de mi buen amigo Jose Manuel Serrano de Proser Informática, es uno de los TPVs mas vendidos y está totalmente hecho en Clipper para MS-DOS, aunque la versión de Windows hecha en Xailer, pronto verá la luz.

Volviendo a lo nuestro, aun bajo pantallas de MS-DOS pero estando a 32 bits, podemos hacer uso de algunos juguetes interesantes.

xHarbour provee al lenguaje XBase de Clipper con un poderoso motor de Programación Orientada al Objeto, si haz trabajado con FiveWin o con Xailer, te habrás dado cuenta que el motor de objetos es sumamente poderoso, fácil de entender y muy flexible, si sabes como utilizar objetos tienes el control de casi todo los aspectos del lenguaje de programación. (en realidad el término POO: Programación Orientada al Objeto puede parecer impresionante a simple vista, pero en realidad la teoría, la sintáxis y la forma de implementarlo es bastante simple en xHarbour).

Aún si eres programador de Clipper 5.2, inconscientemente haz utilizado objetos, la función DBEdit() esta basada en el objeto TBrowse con sus objetos TColumn, el @reng, col Say ... Get es otro objeto disfrazado, el manejo de errores de Clipper, el famoso ErrorSys, también se maneja utilizando un objeto, en Clipper 5.3 vamos mas allá, existe un objeto Menú y el sistema "Get" extendido que puede desplegar comboboxes, radios, listboxes y otros controles para captura de datos, manipulando del objeto GET.

Si conoces como programar Orientado a Objetos con xHarbour, estás a un paso de poder utilizar un poderoso componente de Windows, aun sin que tu aplicación tenga "ventanitas" ni sea gráfica, en ventana de MS-DOS pura y dura, estoy hablando de OLE (Object Linking and Embedding), si no haz programado nunca para Windows quizá no estés familiarizado con el término, pero en resumen, el OLE es una tecnología que te permite conectar tu programa Clipper/xHarbour con otras aplicaciones que estén instaladas en tu computadora mismas que pueden proporcionar funcionalidad adicional con la que no cuenta tu programa, imagina que tu programa Clipper, ahora convertido a xHarbour pueda "hablarse de tu" con Office, que puedas exportar tus datos DBFs a hojas de cálculo de Excel, o bien leer directamente archivos XLS para agregarlos a tus bases de datos, ¿ que tal hacer documentos personalizados en Word tomando datos de un DBF y sin necesidad de tener que recurrir a alguno de los "Wizards" de Word y sin que el usuario tenga ni siquiera que abrir Word ? ¿ problemas para enviar correo electrónico ?, puedes conectarte con la bandeja de salida de OutLook y poner allí tus mensajes para que la próxima vez que el usuario inicie OutLook se envíen de manera automática.

Como experiencia personal puedo comentar que uno de mis clientes y buen amigo, que es ingeniero civil, realiza cálculos de ingeniería extremadamente complejos, utilizando los "solvers" de Excel, ya que xHarbour/Clipper carecen de funciones matemáticas y estadísticas, de algún lado hay que sacarlas, ¿ de donde ?, pues del mismo Excel, que tiene una rica biblioteca de funciones matemáticas que son fácilmente manipulables desde un programa Clipper xHarbour.

¿ Microsoft no es tu marca favorita ? ¿ eres mas de "Open Source" ?, no hay problema, si utilizas OpenOffice también puedes hacer uso de OLE para que tu programa genere documentos con el Writer y hojas de cálculo con el Calc.

Hay muchos, muchísmos componentes OLE que se pueden utilizar desde un programa xHarbour en modo consola a 32 bits, algunos gratis, otros de paga, mi favorito: FUNCKY, ¿ te acuerdas de la famosa librería Funcky para Clipper, con mas de 900 funciones para hacer prácticamente todo ?, pues nada, que ahora hay Funcky para Windows, es un componente COM al cual se accede por OLE, es totalmente compatible con programas hechos con xHarbour tanto para modo consola, como para entornos gráficos, tiene mas de 1000 métodos y hace prácticamente todo, pero muchos de los trabajos enfocados al control de Windows, desde mapear unidades de red, hasta verificar la existencia de una cuenta de correo en un servidor, pasando por hacer un "trace route" a una direccion de internet, devolverte la lista de impresoras del sistema y un largo etcétera de cosas últiles; lo mas interesante de Funcky es todos los parámetros que reciben los métodos, así como los valores devueltos por estos son ó valores numéricos o valores cadena de caracteres nativos de Clipper/xHarbour, lo cual facilita muchísmo no meterte en problemas con valores numéricos como long, int, double, ó char, string etc.

Uno de los componentes OLE mas interesantes es el ADO (ActiveX Data Objects), que comentaré a fondo en un próximo post, pero baste de momento con saber que es una tecnología que nos permite acceder a otros formatos de base de datos, por ejemplo Access y en general a cualquier base de datos SQL, utilizando una metodología muy similar a como estamos acostumbrados a utilizar DBFs, ADO te permite conectarte con prácticamente cualquier sistema gestor de base de datos relacional, por ejemplo MySQL, PostgreSQL, FireBird, SQL Server, Oracle, Sybase, Informix etc. ¡ imagina las posibilidades !, el acceso a los datos se puede realizar dentro de tu red de área local, por internet a una ubicación remota (ideal para sucursales), o bien vía VPN, a una velocidad muy superior a como se manejan los archivos DBF, puedes por ejemplo, acceder a bases de datos de MySQL sobre internet con un programa en xHarbour, que por fuera se ve y se siente como el programa Clipper para MS-DOS de toda la vida, pero que tiene detrás a un poderoso motor SQL, con todos los beneficios que esto con lleva, no hay corrupción de indices, tienes acceso a tecnología cliente / servidor y a soportar volúmenes gigantescos de información, aún mas, la base de datos SQL no necesariamente necesita estar instalada en un equipo basado en Windows, esta tecnología es aplicable aun si el servidor de base de datos está montado sobre Linux o sobre Unix, basta con tener acceso a él via TCP/IP.

Si eres usuario de Advantage Database Server para Clipper, te alegrará saber que xHarbour te provee de todas las poderosas características de ADS a las que estás acostumbrado, ¡ pero a 32 bits tienes aun mas posibilidades !, por ejemplo puedes dejar de utilizar DBFs con CDX o NTX y utilizar el formato nativo de tablas ADS, el famoso formato ADT con índices ADI, puedes utilizar "diccionarios de datos" y darle a tus archivos integridad referencial, control de acceso a usuarios
por medio de passwords que quedarán almacenados en la base de datos, justo como cualquier otro producto basado en SQL, a 32 bits Advantage provee del Advantage Local Server, un DLL que tiene todas las características de ADS (excepto tecnología cliente / servidor y soporte de transacciones), que es de libre distribución (puedes distribuirlo gratis con los programas que hagas con xHarbour) y que puede soportar hasta 5 usuarios en entornos de red, algo así como el MSDE2000 de Microsoft, solo que para archivos DBF ó ADT, al gusto del programador.

Podría seguir y seguir enumerando enormes ventajas del uso de la tecnología de 32 bits para Clipper, pero voy a parar mi tren un rato, para que digieras tranquilamente estos comentarios.

En el próximo artículo hablaré sobre el cambio de interfaz, ¿ hacia donde hacernos ?, si seguimos por el camino Windows ¿ cuales son nuestras alternativas ? y nos vamos a Internet directamente ¿ qué ventajas obtendríamos ? y ¿ que hay de los dispositivos móviles ?, teléfonos, PDAs, Palms, etc. Es posible acceder a todo esto con Clipper / xHarbour, pero, por favor, un poco de paciencia.

5 comentarios:

Anónimo dijo...

René,

Muy interensante los artículos. Gracias por compartir tus conocimientos.

Luis Antonio

Anónimo dijo...

Quise escribir..interesante..
Luis

Coco José Vilca Ch. dijo...

Hola René

Soy fiel lector de los artículos que publica aqui, despues de leer me anime a pasar un aplicativo hecho en clipper(modo consola) a xharbour, ooh sorpresa..!!! se comió todo el código sin muchos cambios, muchas gracias por publicar y compartir vuestras experiencias.

Saludos desde Lima-Perú

Coco José
sistemas@flechelle.com

Anónimo dijo...

Que tal, suu comentarios son alentadores, tengo el dilema si cambio mi programa hecho en clipper a xharbour, me gustaria saber si conoce a algun programador que pudiara hacerme la conversion, claro con su respectivo costo o bien quien pudiera asesorarme en la migracion.

muchas gracias y felicidades por sus artículos.

atte Genaro Zavala
gezaji70@prodigy.com.mx

Anónimo dijo...

Interesante tu articulo...como puedo acceder a este curso,,,,vivo en Chile, y programo en Clipper y deseo transformarlos a xharbour