Actualidad de los lenguajes xbaseActualidad de los lenguajes xbase
1. Introducción
2. Evolución histórica
3. Herramientas actuales
4. Conclusiones
5. Preguntas
¿Por qué xbase?
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
¿Qué es xbase?Conjunto de lenguajes y herramientas herederas de dBase
orientadas al desarrollo de software de gestión
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
Comandos dBase
USE Cliente USE Clientes
APPEND BLANKREPLACE dni WITH “1608…”REPLACE nombre WITH “Pablo”COMMIT
CLOSE
Ficheros .DBF
Tablas navegables Manipulación manual
Apertura y Cierre Bloqueo y Desbloqueo Índices
Modelo SQLite
Sintaxis Clipper
for i := 0 to 99 do j := 0; while j < 50 do validar( i * j ) j++ end whilenext
+ +
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
(Wayne Ratliff & George Tate)
(Nantucket)
(Fivetech)
Herramientas actuales
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
Compilador (C) Harbour xHarbour
GUI (V)Windows
Xailer Visual xHarbour MiniGUI T-GTK FiveWin
Mac OS X
T-GTK FiveMac
GNU/Linux
T-GTK FiveLinux
PocketPC y SmartPhone
FivePPC
Datos (M) SQL (3rd parties) Ficheros .DBF
Compiladores: Harbour y xHarbour
Son un 99% compatibles con Clipper
No son verdaderos compiladores, generan PCODE
Dependen de un compilador de C: GCC, BCC, MVC++, PellesC
Mantienen distintas filosofías:
- Harbour: Ceñirse a la compatibilidad con Clipper
- xHarbour (eXtended Harbour): Modernizar el lenguaje
Software Libre: Licencia LGPL
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
Compiladores y GUIs: Quién con Quién
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
Windows xHarbour + Xailer xHarbour + Visual xHarbour Harbour + MiniGUI (x)Harbour + T-GTK (x)Harbour + FiveWin
Mac OS X (x)Harbour + T-GTK (x)Harbour + FiveMac
GNU/Linux (x)Harbour + T-GTK (x)Harbour + FiveLinux
PocketPC y SmartPhone (x)Harbour + FivePPC
GUIs: Xailer (1/2)
Ofrece un completísimo IDE
Incluye motor de informes
Es totalmente orientado a objetos
Simplifica el trabajo con DataControls
Soporta componentes OCX (ActiveX)
No oculta el código de generación de los formularios
Funciona sólo con xHarbour y BCC
Actualmente sólo para Windows
Software privativo (entrega el 90% del código)
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
GUIs: Xailer (2/2)Ejemplo: Hola Mundo
#include "Xailer.ch”
CLASS THolaMundo FROM Tform COMPONENT oLabel COMPONENT oButton
METHOD CreateForm() METHOD ButtonClick( oSender ) METHOD FormInitialize( oSender )ENDCLASS
#include "FormHolaMundo.xfm"
METHOD ButtonClick( oSender ) CLASS THolaMundo
::oLabel:SetText( “¡Hola mundo!” )
RETURN Nil
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
GUIs: Visual xHarbour (1/2)
Incluye un IDE
Es totalmente orientado a objetos
No oculta el código de generación de los formularios
Lo lleva xHarbour.com, principal impulsora de xHarbour.org
Funciona sólo con la versión comercial de xHarbour
Utiliza su propio compilador de C
Actualmente sólo para Windows
Software privativo
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
GUIs: Visual xHarbour (2/2)
Ejemplo: Hola Mundo.
GLOBAL EXTERNAL SystemGLOBAL EXTERNAL Application
#include “vxh.ch”#include “FormHolaMundo.ch”
METHOD ButtonClick( Sender ) CLASS FormHolaMundo
::Label:Caption := “Hola Mundo”
RETURN Self
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
GUIs: MiniGUI (1/2)
Incluye un IDE muy limitado
Combina la POO con los comandos tradicionales
Está orientado a pequeñas aplicaciones
Funciona sólo con Harbour
Actualmente sólo para Windows
Software Libre: Licencia LGPL
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
GUIs: MiniGUI (2/2)Ejemplo: Hola Mundo desde código.
#include “MiniGUI.ch"
function Main()
DEFINE WINDOW oHolaMundo;AT 0,0;WIDTH 400;HEIGHT 200;TITLE “¡Hola Mundo!”;MAIN
END WINDOW
ACTIVATE WINDOW oHolaMundo
return
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
GUIs: T-GTK (1/2)
Es una implementación de GTK para (x)Harbour
No tiene IDE, se puede recurrir a Glade
Implementa los comandos clásicos frente a la POO
Funciona con Harbour y con xHarbour
Es la única GUI multiplataforma
Software Libre: Licencia LGPL
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
GUIs: T-GTK (2/2)
Ejemplo: Hola Mundo utilizando un formulario de Glade.
#include “gclass.ch”
function Main()
local cResource, cWnd
SET RESOURCES cResource FROM FILE “recursos.glade”
DEFINE WINDOW oWnd ID “window1” RESOURCE cResource ACTIVATE WINDOW oWnd
return NIL
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
Datos: SQL
Librerías de terceros para Harbour y xHarbour:
- Eagle1: Acceso directo a MySQL (priv.)
- Condor: Acceso a cualquier motor mediante ODBC (priv.)
- En desarrollo: Acceso directo a SQLite (libre)
Xailer implementa, únicamente para xHarbour:
- Acceso a cualquier motor mediante ODBC y ADO
- Acceso directo a MySQL y SQLite
Tarea pendiente: Acceso nativo “de serie” en xHarbour
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
Los lenguajes xbase siguen vivos
Siguen siendo una gran opción para el software de gestión
- Grupo SP, Renfe, Osakidetza…
- Pequeños negocios
Necesitan reaccionar para no morir en un futuro medio
- Ofrecer cosas nuevas
- Ampliar la comunidad de desarrolladores
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
1Introducción
2Historia
3Herramientas
4Conclusiones
5Preguntas
?