Apúntate...


Consultas, desarrollo de programas y petición de presupuestos:

domingo, 28 de agosto de 2016

Dónde Ubicar Nuestros Archivos En Una Aplicación De Gambas

Dónde Ubicar Nuestros Archivos En Una Aplicación

 De Gambas 

Shordi nos ha dejado un pequeño manual para saber como organizar los archivos que use nuestra aplicación: 


No es buena idea utilizar el IDE para "usar" nuestros programas de gambas. La ejecución es más lenta y tendremos nuestro código "expuesto" a cualquier error inadvertido. Un programa de gambas hay que instalarlo para usarlo, aunque sea en la propia máquina dónde se diseñó.
Para ello gambas nos facilita su creador de paquetes de instalación y todo solucionado.
Ahora bien: Una vez instalado nuestro programa no residirá más en la carpeta de nuestro proyecto y nos surge el problema de saber dónde están todos los archivos que en tal carpeta guardábamos y de dónde ubicar los archivos en los que se apoye nuestra aplicación.
Esto, a tenor de muchas dudas que se han subido en el foro, no siempre lo tenemos claro, aquí tenéis un resumen incompleto pero elemental de la ubicación y el manejo de los archivos en un proyecto de gambas.
Lo primero que has de saber es que todo lo que coloques en la carpeta del proyecto en tiempo de diseño se comprime e incluye en el ejecutable compilado, salvo lo que coloques dentro de la carpeta Miproyecto/.hidden.
Es decir, en tiempo de ejecución lo tienes disponible llamándolo sin especificar path alguno. Así si tienes en tu proyecto una carpeta llamada, por ejemplo "Iconos" y metes en ella las imágenes de los botones, por ejemplo, en tu código sólo tienes que especificar algo así para cargar la imagen en un botón:

miboton.picture=picture.load("Iconos/miicono.png")

Es decir, lo tienes a tu disposición siempre.
Ahora bien, como es lógico, al estar "dentro" del ejecutable todos esos recursos son de sólo lectura y sólo en caso de que necesitases modificarlos en tiempo de ejecución hay que "sacarlos" fuera para su manipulación. En tal caso /bin (o cualquier carpeta específica del sistema) no es el lugar para guardar dichos recursos. Estas carpetas están para lo que están, y todas las actualizaciones, purgas, y demás tejemanejes del sistema "suponen" que lo que hay ahí es lo que se espera. Puedes llevarte desagradables sorpresas si te dedicas a almacenar tus ficheros carpetas del sistema que no están pensadas para ello.
Las modificaciones de los archvios que hace el usuario según sus preferencias debe estar bajo su home, puesto que otro usuario distinto puede no estar de acuerdo con ella y preferir otra. Lo más habitual es ubicarlas en una carpeta oculta (que empiece por un punto) con el mismo nombre que nuestro programa y dentro del home del usuario.

Por otra parte, si nuestro programa puede ser utilizado por varios usuarios distintos dentro de la misma máquina puede haber ficheros, bases de datos por ejemplo, que deban ser comunes a todos. En tal caso sí deben estar en una ubicación conocida e independiente de cada usuario (otra cuestión son las BD propias del usuario. Por ejemplo, si estás haciendo una BD de carátulas de canciones, cada usuario tendrá sus preferencias y su manera de archivarlas, etc., en cuyo caso la BD no sería común). ¿Dónde ubicar estos ficheros "comunes"? Para ello Linux nos ofrece, según distribución, carpetas concretas. En Debian y derivados (Ubuntu, Mint, etc.) dispones de la carpeta /opt (por optional) que es ideal para ubicar los recursos colectivos de la aplicación.

Resumiendo:
-Archivos "fijos" que utiliza el Ejecutable: Dentro del propio ejecutable (ya se encarga gambas al crear el paquete)
-Ejecutable: /usr/bin/ (Ya se encarga gambas al instalar el .deb de ubicarlo allí)
-Archivos de configuración de gambas (settings y demás): /home/usuario/.config/gambas3/miprograma (También se encarga gambas solito)

-Archivos de configuración (modificables) propios: /home/usuario/.miprograma/ (Te tienes que encargar tú de crear la carpeta y los archivos)
-Bases de datos o carpetas y ficheros comunes a varios usuarios del ordenador: /opt/miprograma/ (Te encargas tú)
-Bases de datos o carpetas y ficheros que sólo manejará un usuario: /home/usuario/.miprograma (Te encargas tú)
-Archivos temporales: /tmp/gambas.iddeusuario/ (función tmp())
Siguiendo estas sencillas directrices desarrollaréis aplicaciones profesionales y perfectamente integradas con el sistema operativo.
*Nota: A partir de linuxmint 17.3 Rosa, /opt no viene creada por defecto. La debes crear tú, con permisos de root. Pero sigue siendo un lugar seguro para guardar nuestros ficheros comunes.


Fuente:
Autor: Shrodi
https://www.gambas-es.org/viewtopic.php?t=5732&p=34021#p34021

No hay comentarios:

Publicar un comentario

A falta de donativos... un poco de publicidad