Page 1 of 1

Multiples versiones de un sistema

PostPosted: Sun Mar 25, 2012 9:35 pm
by Adolfo
Holas...

Quien maneja multiples versiones de un mismo sistema, y como lo hace ?

Hasta el momento, tengo diferentes sistemas, para varios rubros.. pero ultimamente me han solicitado una version "reducida" de un sistema de gestion mas o menos grande, quiero contorlarlo con el menu principal y unas modificaciones en 4 modulos del sistema ( tiene 47 ).

La idea es crear otro dir, con un .lnk que llame a los prgs propios de la version y los otros al directorio de la version "full", de hecho me sirve la misma estructura del "full", ya que si deciden un upgrade, no tengo que hacer ningun cambio a nivel de la DB MYSQL.

Me acomoda ese mecanismo, pero quisiera saber de sus experiencias, en una de esas tienen algo mas elaborado que me pueda ayudar, quizas un administrador de versiones externo .. no se.. cualquier ayuda o tip sera bienvenido.

Saludos desde Chile
Adolfo

PD : Por ej. Tener 2 dialogos distintos, dependiendo de la version en el RC, o 2 RC casi identicos con el dialogo cambiado en uno....

o el manejo de la compilacion y linkeo condicional.... o es mucho...

Re: Multiples versiones de un sistema

PostPosted: Mon Mar 26, 2012 1:00 am
by Lautaro
Hola Adolfo,

A mi me ha tocado y lo que hago es tener un .ch con algun define , y dentro de los prgs necesarios el correspondiente #IFDEF o #IFNDEF para compilar condicionalmente una u otra version, el .ch lo incluyo por defecto en todos los prg de mi sistema, asi, solo modifico el ch y recompilo.

Eso si hay que ordenarse bastante bien a la hora de corregir cosas en las dos o mas versiones, ya que a veces se torna bastante tedioso.


Saludos,

Lautaro Moreira
Osorno
Chile

Re: Multiples versiones de un sistema

PostPosted: Mon Mar 26, 2012 12:43 pm
by FranciscoA
Hola Adolfo.
En ciertas ocasiones lo hice como expone Lautauro, en el caso de quitar algunos modulos del sistema completo, y me funcionaba solamente cuando era eso, reducir modulos únicamente. Pero... como dice Lautauro, se vuelve muy tedioso, ya que en mi caso los clientes casi nunca aceptaban tal y como estaba el sistema (en cosas cursis, no en su operación y resultados), opté por mantener una carpeta de los sistemas por cada cliente (solo aquellos que solicitaban alguna "variante"). Asi se me facilita el mantenimiento requerido por cada usuario.

Saludos.

Re: Multiples versiones de un sistema

PostPosted: Mon Mar 26, 2012 1:05 pm
by Adolfo
Francisco, Lautaro
Gracias pór las respuestas.

En algun momento tuve hasta 13 versiones de un mismo sistema en directorios distintos con las opciones que cada cliente pedia. Hasta que lo parametrize bastante y utilizo un archivo de configuracion para habilitar ciertas caracteristicas o no.

Pues bien, ahora es distinto, es una version "LIGTH", son modulos que no existen o que no usan todas las caracteritcas ( como campos de alguna tabla) y que usan recursos ( como dialogos) distintos. Y es aqui donde quiero ordenarme, de una forma distinta quizas, por eso pregunte sus opiniones o experiencias.

Saludos desde Chile
Adolfo

Re: Multiples versiones de un sistema

PostPosted: Mon Mar 26, 2012 2:22 pm
by sambomb
Você pode fazer isso através de diretivas de compilação, por exemplo:
#IFDEF __FULL__
//-- Seu código caso seja a versão completa
#ELSE
//-- Seu código caso seja a versão reduzida
#ENDIF

#IFDEF __LIGHT__
//-- Seu código caso seja a versão reduzida
#ELSE
//-- Seu código caso seja a versão completa
#ENDIF

Na diretiva de compilação você vai adicionar /D__FULL__ quando for a completa e /D__LIGHT__ quando for a resumida

Re: Multiples versiones de un sistema

PostPosted: Mon Mar 26, 2012 3:46 pm
by hmpaquito
Adolfo,

Yo lo haría con codigo...

lFullVersion() / lLightVersion()

¿ por qué así ?

Lo que tengo claro es que mantener varias carpetas para un mismo cliente se convierte a la larga en un lio.

Luego, usar lFullVersion()/ lLightVersion() porque:
Es mas comodo que utilizar las directivas de compilacion: por ejemplo en un comando.
No hay necesidad de recompilar: solo mantienes un unico exe que se comportara en funcion de la configuracion del cliente: full /light.

En aquellos procesos que toman mas tiempo, habrá que optimizar y por ejemplo en vez de llamar en un bucle a lFullVersion(), lo asignariamos a una variable local y preguntariamos por la variable.

Saludos