Kylix es el entorno de desarrollo de Borland(1) (o Inprise) para Linux.
Es un producto comercial aunque hay una versión Open Edition gratuita (sólo binarios)
que puede usarse para desarrollar proyectos GPL. La principal desventaja de esta versión es
que se echan en falta algunos componentes esenciales para el desarrollo de aplicaciones
comunes, acceso a base de datos, servicios Internet, etc.
En este artículo se prentende dar a conocer esta herramienta,
explicar como contrarestar sus limitaciones iniciales y sacarle el máximo partido.
Instalación Kylix 2 Open Edition
Para empezar debemos registrarnos en Borland(2) para
decargar la versión Open Edition y contestar un pequeño cuestionario de cortesía.
Posteriormente recibiremos un e-mail de Borland con los datos para activar la
Open Edition. El fichero de instalación que son unos 30 Mbytes aproximadamente.
La instalación es bastante sencilla, y no tiene mayores complicaciones en una Debian.
Sólo he podido testearlo con la Debian sid, pero no he tenido ningún problema, aunque
teóricamente no está en la lista oficial de distribuciones soportadas (que incluye Red Hat,
SUSE y Mandrake). Para instalar
basta ejecutar el setup contenido en el fichero kylix2_open.tar.gz que
nos hemos descargado. Al ejecutar por primera vez Kylix 2 nos pedirá los datos de registro que
Borland nos envió por e-mail, y registrará la aplicación por Internet, aunque creo que se puede
retrasar el paso de registro y empezar a usar Kylix inmediatamente, aunque no lo he probado.
La instalación se puede realizar como usuario normal sin permisos de root, en este caso
Kylix se instala en el directorio home del usuario. También existe la posibilidad de instalar Kylix
como root en un lugar accesible por todos los usuarios.
Una vez instalado, podemos ejecutar Kylix 2 directamente desde el menú principal
del KDE. Ante nuestros ojos aparece el IDE con el editor de formularios, el Object Inspector,
la paleta de componentes, etc. Todo es bastante parecido por no decir igual que
un Delphi para Windows. Después de la euforia inicial, nos damos cuenta que la Open Edition nos
proporciona una paleta de componentes bastante light ya que sólo tiene las
páginas Standard, Additional, Common Control y Dialogs.
Aunque ya se pueden hacer aplicaciones con esto, echamos en falta
algunos componentes esenciales para desarrollar aplicaciones, como son el acceso a base de datos
y servicios Internet. Kylix 2 en versión Profesional (249 $) y Enterprise (1999 $) dispone de
componentes de base de datos y muchos otros más, además de mejoras en el IDE.
Instalar FreeCLX
Las FreeCLX(3) son una implementación open source de la libreria CLX de Borland.
CLX es la nueva librería de componentes cross-platform de Borland incorporada en Delphi 6 y Kylix.
La librería usada anteriormente era la VCL, pero estaba más ligada a Windows.
El problema es que en la versión Open Edition sólo viene una versión reducida de la CLX, por lo
que deberemos usar FreeCLX para disponer de algunas características adicionales.
Para instalar las FreeCLX deberemos descargar la última versión del servidor CVS en
Sourceforge(4). Son unos 11 Megas de código fuente.
Para bajar la última versión del servidor CVS usaremos los siguientes comandos (pulsar ENTER cuando pida la password).
cvs -d:pserver:[email protected]:/cvsroot/freeclx login
cvs -z3 -d:pserver:[email protected]:/cvsroot/freeclx co freeclx
A continuación debemos compilar FreeCLX. Para ello podemos seguir los siguientes pasos:
En mi caso he hecho un export FREECLX=~/src/kylix/freeclx.
libqt.so.2.2.4. Como mi sistema tenía una versión posterior, en concreto la versión 2.3.1, lo probé
con esta y parece que compila bien. El nombre del fichero que espera encontrar el makefile es
libqt.so.2.2.4, por lo que o cambiamos el makefile o le damos un nombre simbólico falseado.
se debería llamar libqtinf.so.2.3.1 en mi sistema, pero es culpa del makefile.
enlace simbólico libqtinf-6.5-qt2.3.so para que apunte a esta nueva libreria.
al principio de la lista de paths a librerias los siguientes directorios:
- ~/src/kylix/freeclx/rtl/sys
- ~/src/kylix/freeclx/rtl/linux
- ~/src/kylix/freeclx/qt
- ~/src/kylix/freeclx/clx
| Options | Packages y nos aseguramos que la opción “Build with runtime packages” esté
desactivada.
Instalando ZeosDB
ZeosDB(5) es una libreria open source para acceso a bases de datos desde Kylix.
Permite acceso a diferentes sistemas de bases de datos, entre ellos Interbase, PostgreSQL,
MySQL, Oracle, Microsoft SQL Server y IBM DB2.
Para instalarlo es necesario instalar antes las FreeCLX (o la versión Profesional o
Enterprise de Kylix). La instalación es bastante sencilla.
en el momento de escribir el artículo). Se descomprime y desde Kylix se abre el
fichero ZCommonK.dpk. Se borra el requerimiento dbdesign.dcp, compilamos e instalamos.
Otra posibilidad es coger el código directamente de CVS.
cvs -d :pserver:[email protected]:/cvsroot/zeoslib login
cvs -z3 -d :pserver:[email protected]:/cvsroot/zeoslib checkout .
y dataclx, compilamos e instalamos. Esto nos dará como resultado una nueva página con 3
nuevos componentes: ZBatchSQL, ZMonitor y ZUpdateSQL.
Compilamos e instalamos. Obtenemos otros 4 componentes nuevos: ZMySQLDatabase, ZMySQLTransact,
ZMySLTable y ZMySQLQuery. En la linea 29 de ZLibMySql.pas se define DEFAULT_DLL_LOCATION que
es el path a libmysqlclient.so, debemos modificarlo si no es el correcto.
Para Interbase instalamos el paquete ZIbSQLK.dpk (da un error Invalid field registration) a no
ser que comenteis la linea que contiene “RegisterFields([TZBCDField]);” en ZIbSQlReg.pas, por
lo que seguramente no podremos usar campos BCD. Si todo va bien tendremos 6 componentes
nuevos: ZIbSqlDatabase, ZIbSqlTransact, ZIbSqlTable, ZIbSqlQuery, ZIbSqlStoredProc y
ZIbSqlNotify.
en el path de librerias de Kylix.
Controles db-aware
Con lo que tenemos ahora se pueden acceder fácilmente a las bases de datos
existentes. Pero dónde están los controles típicos db-aware: DBEdit, DBText,
DBComboBox, … ? Estan implementados en las FreeCLX, pero no han sido
registrados en la paleta de componentes. Para ello podemos usar el paquete
dbControls(6).
Abrimos el paquete Kylix dbControls.dpk, compilamos e instalamos como
hemos hecho anteriormente sin ningún problema. Como resultado obtenemos
3 páginas más de componentes:
- Data Access: DataSource, ClientDataSet y DataSetProvider.
- dbExpress: SQLConnection, SQLDataSet, SQLQuery, SQLTable, SQLMonitor y SQLClientDataSet.
-
Data Controls: DBGrid, DBNavigator, DBText, DBEdit, DBMemo, DBImage, DBListBox, DBComboBox,
DBCheckBox, DBRadioGroup, DBLookupListBox y DBLookupComboBox.
Instalar componentes Internet
Uno de los paquetes de componentes de servicios Internet más conocido es Indy (Internet Direct o Winshoes)(7)
de Nevrona(8). Se distribuyen bajo una licencia open source basada
en BSD License o Mozilla Public License (a elegir). Este paquete de componentes es muy completo ofreciendo
tanto servidores como clientes de la mayoría de protocolos Internet conocidos, incluso creo que se incluye
en las versiones de pago de Kylix. Los protocolos soportados son: TCP, UDP, daytime, DNS, echo, finger, FTP,
gopher, HTTP, ICMP, ident, IMAP4, IP Multicast, IRC, LPR, NNTP, POP3, QOTD, rexec, rsh, SMTP, SNMP, SNPP,
SNPT, syslog, telnet, time, TFTP, whois, chargen, dict, discard, etc. Además hay componentes adicionales
para SSL, cookies y codificadores / descodificadores entre otros.
Aunque anuncian que sus componentes son directamente instalables en Kylix, la verdad es que he
tenido algunos pequeños problemas pero han sido fáciles de solucionar. La que he intentado instalar
es la Indy 9 que aún está en versión beta (9.0.2). También he echado un poco de documentación
sobre su instalación en Kylix, pero no he encontrado ninguna referencia.
Para instalar Indy v9.0.2(9) nos bajamos
la última versión, y a continuación deberemos compilar (no instalar) el indy.dpk. Es posible
que tengamos algunos problemas con los nombres de las unidades (mayúsculas / minúsculas), las
unidades referenciadas siempre deben tener el mismo case que los ficheros correspondientes.
He tenido que cambiar algunas referencias a mano para que compilase correctamente. Es posible
que exista alguna opción de configuración para evitar este problema, pero no la he encontrado.
Adicionalmente he encontrado un problema en el código en el fichero IdTunnelSlave.pas, Id := Thread.Handle,
resulta que Handle no existe en TThread. Yo lo cambié por ThreadId sólo para que compilará
y proseguir con la instalación, aunque seguramente no sea lo correcto. A continuación sólo
resta compilar e instalar el paquete dclindy.dpk.
Una vez instalado nos apareceran 3 nuevas páginas: Indy Clients, Indy Servers y Indy Misc.
Realmente me pierdo con la cantidad de componentes añadidos, afortunadamente existe documentación
en HTML.
Enlaces relacionados con Kylix
Aquí cito algunos enlaces de repositorios de componentes y información sobre Kylix (y Delphi).
- Kylix en Borland.(2)
-
Torry(10). Uno de los mejores y más surtidos
repositorios de componentes. - VCL Crawler(11). Otro buscador de componentes.
- Club Delphi(12). Excelente página sobre Delphi.
- Nexus(13)
- Open Source dbexpress(14)
- Indy (Indirect Direct)(15)
- ZeosDB(5)
- FreeCLX(3)
- Cetus Links sobre Delphi(16)
- Links de About sobre Kylix(17)
- Synapse(18). Otra libreria de servicios Internet para Kylix.
- TPlot(19): componente para hacer todo tipo de gráficos.
- Delphi Super Page(20)
- Delphi Source(21)
- Delphi Pages(22)
-
MT DORB y MT REPORT(23).
CORBA y informes en Kylix. - HADP(24)
- Delphree(25): open source initiative.
- UNDU(26): Unofficial Newsletter of Delphi Users.
- Freepascal(27): compilador open source de Object Pascal.
- Lazarus(28): projecto open source de portar Delphi a Linux (anterior a Kylix).
- FastReport(29)
- Delphi 3000(30)
- Delphiseek(31)
- Delphi City(32)
- Swiss Delphi Center(33)
- Delphi Forum(34)
- Delphi Spirit(35)
- Kylixnet(36)
- IB Phoenix(37)
- Morphtek(38)
- Dr Bob 42(39)
- Kylix.sk(40)
Concluyendo, Kylix 2 Open Edition y los componentes que lo complementan
constituyen una alternativa a tener en cuenta en el desarrollo de aplicaciones GPL. Ahora a picar código 😉
–MateuLista de enlaces de este artículo:
Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1024 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.