Spanish ¿Como sería la forma mas adecuada para administrar múltiples proyectos "casi" idénticos?

Sergio Castellari

Active Member
Licensed User
Hola colegas!!!
Primero, muy Feliz comienzo de 2022!!!...Abrazos virtuales a todos!

Bueno, el asunto es así:
Tengo una APP, que esta tomando un tamaño importante. Esta APP, es la plataforma "base" para mis clientes.
Pero, para cada cliente, trabajo con una DB diferente, con funcionalidades diferentes y algunos parámetros de configuración que son específicos.
Actualmente lo que hago (en algunos archivos *.BAS) específicos, "comentar" lineas de códigos y "habilitar" otras según cada cliente...Esto al principio ha sido mi solución rápida, pero ahora esta resultando engorroso.
Mi pregunta es: ¿como puedo hacer una Carpeta de proyecto por cada Cliente, pero que solo los archivos del cliente especifico residan en dicha Carpeta, mientras que el resto de los archivos de la APP, sean compartidos desde una Carpeta "COMÚN"?...
Soy bastante novato en B4X, y no comprendo bien como debería armar la estructura de carpetas para un entorno de trabajo de esta forma.

Bueno, espero haberme explicado bien cual es mi deseo y que puedan indicarme los pasos a seguir.

Saludos!
Sergio
 

Sergio Castellari

Active Member
Licensed User
Lo haría de forma similar a como se gestiona un proyecto multiplataforma (B4A, B4i, B4J) con compilación condicional y módulos compartidos, revisa:

Hola @angel_

Muchas gracias por el Tutorial, ya mismo comienzo a verlo y cualquier duda, te comentaré (debo traducirlo con Google Traductor). Aunque creo que habla de proyectos "multiplataforma" y en mi caso es en realidad un proyecto "maestro" que tiene casi toda la estructura igual, salvo un par de archivos que contienen información propia para el Cliente.
Que tengas un muy buen 2022!!
Saludos
 

Sergio Castellari

Active Member
Licensed User
de que trata el proyecto?

Creo que en foro de ingles te dieron unas pistas.
Hola amigo @oparra !!!

El proyecto es una APP que tiene muchas funcionalidades de mi sistema de Gestión Comercial (Caja, Clientes, Proveedores, Artículos, Stock, Etc., y va creciendo con el tiempo y evolución).
Se conecta a la misma DB, utiliza los mismos Usuarios e inclusive tiene igual o mejor validación de acceso. Trabaja con jRDC2 y múltiples DB.
Actualmente la tengo en 3 clientes, pero la cosa va ampliándose a mas clientes.
En algunos clientes, mi sistema tiene algunas funciones especificas (módulos), y es por ello que voy a necesitar un esquema donde tenga un proyecto *.b4a por cada cliente (esto me permitirá compilar una nueva versión cuando lo crea conveniente para ése Cliente) y en el proyecto *.b4a "maestro" o "demo de desarrollo" poder hacer todo el desarrollo y/o pruebas de cada nueva funcionalidad. Cuando considero que la función esta probada, recién ahí compilaría en la carpeta del cliente que deseo.
Este sería el proceso que quiero implementar en B4X. Tengo un esquema similar para sistema actual de escritorio.

Básicamente lo que pretendo es:
a) Tener en una carpeta "compartida" con todos los *.bas, *.bal y demás archivos de recursos (imágenes, etc)
b) tener una Carpeta por Cliente, donde SOLO están los archivos propios de ése cliente (por ejemplo: MainPage.bas que tiene variables públicas con valores específicos del cliente)

Gracias por tus aportes!
Que tengas un muy buen 2022!!!
Saludos
 

edgar_ortiz

Active Member
Licensed User
Longtime User
Sergio,

En mi experiencia, lo mejor es tener UN SOLO "proyecto" y habilitas o deshabilitas las funcionalidades según parámetros que están en la base de datos.

Saludos,

Edgar
 

Sergio Castellari

Active Member
Licensed User
Sergio,

En mi experiencia, lo mejor es tener UN SOLO "proyecto" y habilitas o deshabilitas las funcionalidades según parámetros que están en la base de datos.

Saludos,

Edgar
Hola @edgar_ortiz ,
Prácticamente es como tengo actualmente el proyecto, en lugar de tener "parámetros" dentro de la DB (es muy interesante ése esquema), los tengo en variables públicas en el MAIN.
El tema es que hay clientes y clientes, es decir, en algunos casos, estos clientes tienen más módulos o funcionalidades, y la idea es organizarlos en carpetas diferentes. Básicamente, tener una "carpeta compartida", con los archivos compartidos por todas las APP, y otra "carpeta" propia de la APP del cliente, donde residen archivos propios de éste cliente.
El tema es que analizando la funciones del IDE de B4A, estoy observando que por ejemplo el Diseñador, NO admite otra SubCarpeta que no sea "FILES", dentro de la carpeta "padre", al igual que los archivos de imágenes.
 
Top