¿Cómo usan los equipos Flex Builder Pro para desarrollar aplicaciones grandes?
apache flex (3)
En general, estás en lo cierto: al utilizar FlexBuilder, la idea es crear un proyecto que tenga una sola cosa que construir (.swf, .swc, etc.).
Un repositorio de archivos (como mencionaste que usas) definitivamente es un DEBER DE TENER para el desarrollo a gran escala.
Agregar herramientas de compilación como Ant (mi favorito personal) y Maven (cada vez más popular y con mayor capacidad) a tu caja de herramientas te permite realizar construcciones más avanzadas (e incluso pruebas unitarias). Este tipo de herramientas permitirá la construcción de una gran aplicación con muchos aspectos y dependencias en una sola acción. Esto es imprescindible para aplicaciones a gran escala y entornos de desarrollo. Para proyectos más grandes con muchos subproyectos, a menudo tendré un único proyecto "maestro" que es poco más que un script de construcción que llama a los scripts de compilación de subproyectos y lo ensambla todo. Maven es particularmente bueno en eso. Hay complementos de Eclipse que ayudan con ambas herramientas.
Las diferentes situaciones requieren diferentes formas de utilizar los proyectos juntos. Puede ser útil vincular directamente a un proyecto de biblioteca como una dependencia. De esa forma, sus proyectos pueden depurar el código vinculado y modificarlo según sea necesario. O si los proyectos de la biblioteca se modifican con menos frecuencia, sus activos se pueden colocar en la carpeta / libs del proyecto dependiente, lo que elimina la necesidad de tener abierto el proyecto de generación de .swc mientras se desarrolla el desarrollo.
Mantener sus proyectos en una situación de un activo por proyecto contribuye en gran medida a mantenerlo organizado. Generalmente tengo una carpeta para cada cliente y allí una carpeta para cada proyecto. Si ese proyecto debe dividirse en subproyectos, TODOS esos subproyectos se ubicarán en esa carpeta de proyecto (sin importar cuál sea la relación entre ellos).
A veces, por supuesto, es útil tener una cantidad de activos creados para un solo proyecto. Esto podría ser .swfs múltiples para diferentes situaciones, diferentes .zips para su distribución a diferentes lugares o clientes o una docena de otras situaciones. Los proyectos de "activos" a veces son un buen ejemplo de esto. A veces tengo un "proyecto" que es solo mi colección de activos. Normalmente no tengo acceso a este proyecto desde FlexBuilder y normalmente no tengo el .project y otros archivos de Eclipse.
Desarrollamos aplicaciones para la plataforma Flash, que tienen MUCHOS activos cargados en tiempo de ejecución (gráficos, datos, audio, bibliotecas de códigos, etc.). Estos activos están organizados lógicamente dentro de las carpetas de proyectos. Los programadores y diseñadores obtienen lo último del control de versiones, revisan su código o trabajo de diseño, prueban con una copia local completa de la aplicación y luego se registran cuando terminan. La organización es importante para este flujo de trabajo y nuestra comunicación.
Usando Flash o FlashDevelop, puedo trabajar fácilmente con cualquier organización de carpetas y archivos. Puedo compilar fácilmente un único paquete o clase para crear un swf cargable en tiempo de ejecución. En Flex Builder Pro, parece que mis opciones son crear un proyecto para cada swf que necesito compilar o crear un proyecto que haga referencia a los módulos, que también se pueden configurar como proyectos. Ninguna de las dos técnicas parece ideal para un equipo o tan buena como nuestro flujo de trabajo actual. Nota: Tengo aproximadamente 10 años de experiencia con Flash, pero solo un par de meses de experiencia usando Flex Builder Pro. Es bastante probable que simplemente no haya descubierto un mejor flujo de trabajo.
¿Podría compartir algunos consejos sobre cómo usted y su equipo usan Flex Builder Pro para desarrollar aplicaciones de gran tamaño, que tienen muchas bibliotecas de tiempo de ejecución y otros activos?
A menos que desarrolle una aplicación Hello World, debe tener más de un proyecto de Flex Builder. El principal tiene el mínimo de clases y, posiblemente, bibliotecas compartidas que se requieren para mostrar la primera pantalla de su aplicación.
Las fuentes y CSS van a un proyecto separado y se compilan en un archivo SWF por separado. Cargúelos durante el tiempo de ejecución a través de StyleManager. Esto solo acelerará la compilación de su aplicación.
El resto del código se debe dividir en proyectos separados (ya sea proyectos de biblioteca Flex o solo los proyectos que tienen módulos). Lea sobre las diferencias en la vinculación de las bibliotecas con el proyecto principal (RSL vs Merged en Code vs. External).
Usamos Ant para construir cada uno de los proyectos y toda la aplicación. Nuestra utilidad Fx2Ant de fuente abierta genera scripts ANT para sus proyectos de Flex Builder en segundos.
Por ejemplo, aquí está el proyecto en el que estaba trabajando el año pasado: http://www.mbusa.com . Consiste en más de 15 proyectos de Flex Builder.
También uso una combinación de proyectos de biblioteca y proyectos regulares. Un problema con el que me encontré con un gran proyecto es el tiempo de compilación . Aquí hay algunos enlaces para la compilación:
- ¿Algún consejo para acelerar el tiempo de compilación en Flex Builder 3?
- http://code.seanhess.net/?p=184
- http://www.rogue-development.com/blog2/2007/11/slow-flex-builder-compile-and-refresh-solution-modules/
- http://blog.iconara.net/2008/02/22/quick-tips-to-speed-up-your-ant-build/
Configurar el eclipse.ini correcto y usar la opción de compilador -incremental realmente me ayudó.