Discussion:
Máximo tamaño del programa
(demasiado antiguo para responder)
Gelo1800
2003-11-12 08:27:56 UTC
Hola a todos. Programo desde hace muchos años para grandes
sistemas (Cobol, RPG, SPL, ...) y ahora estoy iniciando
una aplicación en Vb 6.0 contra SQL para una empresa
mediana con unos 200 empleados. Es una aplicación enorme
(en cobol eran más de 1000 programas), lo que me suscita
varias dudas que paso a comentaros.
¿Será posible realizar toda la aplicación en un sólo
proyecto (serán millones de líneas de código)?
¿Se pueden compilar juntos varios proyectos y -si es así-
cómo se pasa el control desde uno a otro?
¿Alguien sabe cuál es el tamaño máximo del proyecto fuente
soportado por Vb 6.0? ¿Y del ejecutable?

Muchas gracias a todos (no sólo por esta respuesta, si no
por otras anteriores).
Jordi Maycas
2003-11-12 08:37:22 UTC
a grandes trazos, la ida no es tener un ejecutable de cientos de mb, algo
imposible... e inviable, sino q lo tendras con dll, y ficheros externos
aparte del exe.

Supongo q con entornos como con el que empiezas ahora... te reduciran
bastante la faena, por lo que esos millones de lineas se reduciran a unos
cientos de miles..

Antes de empezar, te deseo un buen análisis previo.

suerte!

"Gelo1800" <***@discussions.microsoft.com> escribi� en el mensaje news:0b2b01c3a8f6$dfe342e0$***@phx.gbl...
Hola a todos. Programo desde hace muchos años para grandes
sistemas (Cobol, RPG, SPL, ...) y ahora estoy iniciando
una aplicación en Vb 6.0 contra SQL para una empresa
mediana con unos 200 empleados. Es una aplicación enorme
(en cobol eran más de 1000 programas), lo que me suscita
varias dudas que paso a comentaros.
¿Será posible realizar toda la aplicación en un sólo
proyecto (serán millones de líneas de código)?
¿Se pueden compilar juntos varios proyectos y -si es así-
cómo se pasa el control desde uno a otro?
¿Alguien sabe cuál es el tamaño máximo del proyecto fuente
soportado por Vb 6.0? ¿Y del ejecutable?

Muchas gracias a todos (no sólo por esta respuesta, si no
por otras anteriores).
"Claudio Valdes - Perrillo Malulo" @chile.com>
2003-11-12 13:29:57 UTC
Me gusto la parte del "Te deseo un buen analisis previo"...

Opino lo Mismo
--
-----------------------------
Claudio Valdes V.
Made in Chile
MBPC Certificado
Post by Jordi Maycas
a grandes trazos, la ida no es tener un ejecutable de cientos de mb, algo
imposible... e inviable, sino q lo tendras con dll, y ficheros externos
aparte del exe.
Supongo q con entornos como con el que empiezas ahora... te reduciran
bastante la faena, por lo que esos millones de lineas se reduciran a unos
cientos de miles..
Antes de empezar, te deseo un buen análisis previo.
suerte!
Hola a todos. Programo desde hace muchos años para grandes
sistemas (Cobol, RPG, SPL, ...) y ahora estoy iniciando
una aplicación en Vb 6.0 contra SQL para una empresa
mediana con unos 200 empleados. Es una aplicación enorme
(en cobol eran más de 1000 programas), lo que me suscita
varias dudas que paso a comentaros.
¿Será posible realizar toda la aplicación en un sólo
proyecto (serán millones de líneas de código)?
¿Se pueden compilar juntos varios proyectos y -si es así-
cómo se pasa el control desde uno a otro?
¿Alguien sabe cuál es el tamaño máximo del proyecto fuente
soportado por Vb 6.0? ¿Y del ejecutable?
Muchas gracias a todos (no sólo por esta respuesta, si no
por otras anteriores).
Enrique Medina
2003-11-12 13:07:56 UTC
Hola:

Limitaciones de los proyectos


Un único proyecto puede contener hasta 32.000 "identificadores" (cualquier
palabra clave no reservada), que incluyen entre otros formularios,
controles, módulos, variables, constantes, procedimientos, funciones y
objetos. Observe que el número real de identificadores se limita a la
memoria disponible.

Los nombres de variables en Visual Basic no pueden tener más de 255
caracteres y los nombres de formularios, controles, módulos y clases pueden
tener un máximo de 40 caracteres. Visual Basic no impone ningún límite en
cuanto al número de objetos distintos de un proyecto.

Limitaciones de controles


Cada control no gráfico (todos los controles excepto Shape, Line, Image y
Label) utiliza una ventana. Cada ventana utiliza recursos del sistema,
limitando el número total de ventanas que pueden existir al mismo tiempo. El
límite exacto depende de los recursos del sistema disponibles y el tipo de
controles que se utilicen.

Para reducir el consumo de recursos, utilice controles Shape, Line, Label e
Image en vez de los controles PictureBox para crear o presentar gráficos.

Número total de controles
El número máximo de controles permitidos en un único formulario depende del
tipo de controles que se utilicen y de los recursos disponibles del sistema.
No obstante, hay un límite fijo de 254 nombres de control por formulario. En
este límite una matriz de controles sólo cuenta como uno, ya que todos los
controles en la matriz comparten un único nombre de control.

El límite para índices de matrices de controles es de 0 a 32.767 para todas
las versiones.

Si coloca controles uno encima de otro, como por ejemplo si utiliza varios
controles de marco dentro de otros marcos, Visual Basic generalmente no
aceptará más de 25 niveles de controles anidados.

Limitaciones para determinados controles
La siguiente tabla muestra las limitaciones de propiedades aplicables a
determinados controles de Visual Basic:

Propiedad Se aplica a Limitación
List y ListCount Controles de cuadro de lista y cuadro combinado El número
máximo de elementos es 32 KB; el límite del tamaño de cada elemento es 1 KB
(1024 bytes).
Text Control de cuadro de texto El límite es de 64 KB.
Caption Control de etiqueta Limitado a 1024 bytes.
Controles de botón de comando, casilla de verificación, marco y botón de
opción Limitados a 255 caracteres. Se truncan todos los títulos que superen
ese límite. Los títulos en las propiedades de los controles personalizados
tienen un límite de 32 KB.
Control de menú Limitado a 235 caracteres.
Tag Todos los controles Limitado sólo por la memoria disponible.
Name Todos los controles Limitado a 40 caracteres.


Nota En Visual Basic, los nombres de propiedades de control tienen un
límite de 30 caracteres

Limitaciones de código


La cantidad de código que se puede cargar en un formulario, clase o módulo
estándar está limitada a 65.534 líneas. Una única línea de código puede
constar de 1.023 bytes como máximo. Puede haber hasta 256 espacios en blanco
delante del texto en una única línea y no se pueden incluir más de
veinticinco caracteres de continuación de línea ( _) en una única línea
lógica.

Procedimientos, tipos y variables
No hay límite en cuanto al número de procedimientos por módulo. Cada
procedimiento puede contener hasta 64 KB de código. Si un procedimiento o un
módulo excede este límite, Visual Basic genera un error en tiempo de
compilación. Si se encuentra con este error, puede evitarlo dividiendo los
procedimientos extremadamente grandes en varios procedimientos más pequeños
o trasladando las declaraciones de nivel de módulo a otro módulo.

Visual Basic utiliza tablas para almacenar los nombres de los
identificadores (variables, procedimientos, constantes, etc.) en el código.
Cada tabla está limitada a 64 KB.

Tabla de declaración de DLL
Cada módulo de código y formulario utiliza una tabla que contiene una
estructura que describe un punto de entrada de DLL. Cada estructura usa
aproximadamente 40 bytes, con un límite total de tamaño de 64 KB, lo que
permite unas 1.500 declaraciones por módulo.

Tabla de nombres del proyecto
La aplicación entera utiliza una única tabla que contiene todos los nombres.
Estos incluyen:

Nombres de constantes


Nombres de variables


Nombres definidos por el usuario de definición de tipo


Nombres de módulos


Nombres de declaración de procedimientos de DLL
La tabla de nombres del proyecto no tiene límite en cuanto al tamaño total,
pero está limitada a un total de 32 KB de entradas únicas con distinción
entre mayúsculas y minúsculas. Si se llega a este límite, vuelva a usar
identificadores privados en módulos diferentes para limitar el número de
entradas únicas a 32 KB.

Tabla de importación
Cada referencia a un identificador en un módulo diferente crea una entrada
en la tabla de importación. Cada una de esas entradas tiene como mínimo 24
bytes y tiene un límite máximo de 64 KB, lo que da como resultado unas 2.000
referencias por módulo.

Tabla de entradas de módulo
Esta tabla acepta hasta 125 bytes por módulo, con un límite total de 64 KB,
que da como resultado unos 400 módulos por proyecto.

***Extraido desde la MSDN


--

Enrique Medina
Santiago de Chile
infoARROBAdel.cl
Post by Jordi Maycas
a grandes trazos, la ida no es tener un ejecutable de cientos de mb, algo
imposible... e inviable, sino q lo tendras con dll, y ficheros externos
aparte del exe.
Supongo q con entornos como con el que empiezas ahora... te reduciran
bastante la faena, por lo que esos millones de lineas se reduciran a unos
cientos de miles..
Antes de empezar, te deseo un buen análisis previo.
suerte!
Hola a todos. Programo desde hace muchos años para grandes
sistemas (Cobol, RPG, SPL, ...) y ahora estoy iniciando
una aplicación en Vb 6.0 contra SQL para una empresa
mediana con unos 200 empleados. Es una aplicación enorme
(en cobol eran más de 1000 programas), lo que me suscita
varias dudas que paso a comentaros.
¿Será posible realizar toda la aplicación en un sólo
proyecto (serán millones de líneas de código)?
¿Se pueden compilar juntos varios proyectos y -si es así-
cómo se pasa el control desde uno a otro?
¿Alguien sabe cuál es el tamaño máximo del proyecto fuente
soportado por Vb 6.0? ¿Y del ejecutable?
Muchas gracias a todos (no sólo por esta respuesta, si no
por otras anteriores).
"Leonardo Azpurua" <l e o n a r d o (arroba) m v p s (punto) o r g>
2003-11-12 14:19:03 UTC
Post by Gelo1800
Hola a todos. Programo desde hace muchos años para grandes
sistemas (Cobol, RPG, SPL, ...) y ahora estoy iniciando
una aplicación en Vb 6.0 contra SQL para una empresa
mediana con unos 200 empleados. Es una aplicación enorme
(en cobol eran más de 1000 programas), lo que me suscita
varias dudas que paso a comentaros.
¿Será posible realizar toda la aplicación en un sólo
proyecto (serán millones de líneas de código)?
Hola, Gelo:

Meter millones de lineas de código en un sólo proyecto es un disparate. A
pesar de lo que pueda parecer a primera vista, VB no es una herramienta
trivial.

Hice algo en COBOL hacia mediados de los 70. La técnica para aquel entonces
era escribir pequeños programas que realizaban funciones específicas, y
luego ejecutarlos bajo el control de un lenguaje de batchs que conectaba la
salida de uno con la entrada del siguiente (JCL, me parece que se llamaba
este lenguaje). No se si a eso te refieres por "mas de 1000 programas". ¿Aun
se hacen las cosas así?
Post by Gelo1800
¿Se pueden compilar juntos varios proyectos y -si es así-
cómo se pasa el control desde uno a otro?
Los "elementos constructivos" de VB son las formas, que contienen la
interfaz con el usuario; los módulos, que contienen funciones y subrutinas
de uso general y declaración de variables globales; las clases, que
empaquetan datos y comportamiento en una sola unidad (que son el mejor
recurso del lenguaje y el mayor dolor de cabeza para quienes llegamos desde
lenguajes procedimentales como mi "C" o tu COBOL) y los controles de
usuario, que pueden definirse en esencia, como la representación visual de
una clase para ser utilizada en una forma.

Esos elementos constructivos pueden distribuirse entre la aplicación
principal -responsable de implementar los procesos a nivel de usuario
(recoger datos, procesarlos y presentarlos)- y DLLs, que brindan soporte a
los procesos de nivel superior. Las DLLs exportan clases, y no tienen acceso
expreso a las variables o rutinas definidas en el proceso principal.
Normalmente, es necesario que el programa principal le pase a cada rutina
contenida en una DLL los argumentos necesarios para que ella haga su
trabajo.

Si de entrada organizas tu aplicación prescindiendo de la interfaz MDI (en
la cual una forma principal contiene a todas las demas) y optas por el
estilo SDI (en el que cada forma es totalmente independiente), es
relativamente simple colocar formas en las DLL, y llamarlas desde la
aplicacion cuando resulte necesario.

Te sugiero que antes de iniciar cualquier trabajo serio en VB (o en
cualquier lenguaje para Windows) te familiarices un poco con los conceptos
de la Orientación a Objetos, Desarrollo en Capas y Patrones de Diseño. Y que
pruebes con pequeños proyectos menores antes de lanzarte a un proyecto
importante. Si trabajas solo, el enfoque metodológico llamado Extreme
Programming podría ayudarte a definir un metodo de trabajo. Si tienes una
empresa, podrías darle una mirada al Proceso Unificado de Rational (RUP). Si
además de un equipo de desarrollo tienes urgencia en la migración del
proyecto, no estaría de más contratar a un especialista para que los ayude a
definir una metodología.
Post by Gelo1800
¿Alguien sabe cuál es el tamaño máximo del proyecto fuente
soportado por Vb 6.0? ¿Y del ejecutable?
Los límites de VB estan indicados en la documentacion de MSDN.
El camino completo sería:

MSDN Library\Visual Studio 6.0\Visual Basic\Using Visual Basic\Programmers
Guide\Visual Basic Specifications\Project Limitations.

Por último: dominar el VB a un nivel que te permita el desarrollo de un
proyecto del tamaño que describes es una tarea de varios meses, aun para un
programador experimentado y con todas las oportunidades. Este tiempo puede
reducirse a un par de meses si tienes sólidos conocimientos de metodología
de desarrollo. Considerando que dentro de dos años se cancelará el soporte
oficial para Visual Basic, y que éste está siendo reemplazado por un nuevo
lenguaje, VisualBasic .Net, que tiene en común con el original parte del
nombre y algunas palabras clave, tal vez valga la pena que migres tu
aplicación hacia alguno de los nuevos lenguajes (Visual Basic .Net o C#, que
son en esencia el mismo entorno con dos reconocedores diferentes). Como
lenguajes, son muchísimo mejores.
--
Salud!

Leonardo
[MS MVP - Visual Basic]
¡Adicto a .NET!
leonardo<arroba>mvps<punto>org
www.lazpurua.com