Cairngorm I: Introducción

Cairngorm es un framework estructural para el desarrollo de RIAs que fomenta el uso de determinados patrones y potencia la escalabilidad y el crecimiento de las aplicaciones.
Para afrontar el desarrollo de cualquier tipo de aplicación medianamente grande y en el que vayan a co-desarrollar múltiples desarrolladores es imprescindible seguir unas pautas y estrategias comunes, conocer con exactitud el alcance e impacto de cada uno de los pasos que se den. Cairngorm, al ser un framework estructural y transversal a cualquier aplicativo, permite que desarrolladores centrados en distintos ámbitos de aplicaciones trabajen con una misma metodología y unas mismas bases que les permita tener una movilidad y un know-how entre distintos proyectos.

El hecho que se trate de un framework transversal tiene múltiples implicaciones:

  • Un desarrollador que conozca cairngorm puede incorporarse a cualquier proyecto basado en cairngorm minimizando la curva de aprendizaje inicial.
  • El know-how adquirido en otros proyectos basados en Cairngorm es aplicable de forma directa a cualquier otro proyecto.
  • En un equipo de desarrolladores, y aunque no hayan trabajado con anterioridad juntos, la metodología es conocida por todos. El lenguaje ya está dominizado y los conceptos son comunes a todos los integrantes. Con esto se consigue un mayor grado de afinidad y agiliza el planteamiento de los problemas (se habla ya en el dominio de Cairngorm, las distintas partes conocen el concepto de Command, Service, Delegate, etc).
  • Se fomenta la reutilización real de código de forma transversal a los proyectos sin hacer copiar y pegar (para hacer mínimos retoques de integración).
  • Para un desarrollador que empiece a trabajar en un proyecto basado en Cairngorm y que desconozca sus alcances, implicaciones y metodologías resulta mucho más fácil encontrar documentación y formarse. Al tratarse de un framework muy aceptado por la industria, empieza a existir una buena cantidad de documentación, información y ejemplos a su entorno. Esto tiene repercusiones directas en el equipo ya que no tiene que documentar su metodología y best practices, ya están documentadas.
  • La forma en la que se fomenta la distribución del código facilita el trabajo en equipo. Como iremos viendo Cairngorm induce a la creación de bastantes clases pero, normalmente, sencillas y cortas. Esto facilita la modularidad a la hora de distribuirse el trabajo y de hacer los merges en caso de usar un sistema de versionado de código.
  • Al tratarse de un framework soportado oficialmente por Adobe podemos intuir que tendrá una evolución según ésta fuera necesaria. En el caso de que se requiera de alguna funcionalidad no incluida de base, siempre la podremos implementar ya que disponemos del código fuente y de documentación al respeto.

Aunque Cairngorm es una implementación exclusiva para aplicaciones basadas en Flex (Flex2 y su precedente Flex1.5), éste está basado en el catálogo de patrones J2EE, lo cual aún potencia más el punto de la documentación ya existente.

En los puntos que siguen intentaré ir justificando el uso de cada uno de los patrones que se usan, ver los distintos enfoques y usos que se le pueden dar. Finalmente veremos como construir una aplicación basada en Cairngorm.

Debido a la extensidad del tema he escrito un total de 8 artículos que iremos publicando cada 2 días:

  1. Cairngorm I: Introducción.
  2. Cairngorm II: Value Objects.
  3. Cairngorm III: Commands.
  4. Cairngorm IV: FrontController.
  5. Cairngorm V: Eventos.
  6. Cairngorm VI: Services y ServiceLocator.
  7. Cairngorm VII: Business Delegate.
  8. Cairngorm VIII: Model Locutor.
  9. Cairngorm IX: Aplicación de ejemplo.

Para los impacientes aquí dejo una serie de links interesantes sobre Cairngorm y Patrones:

Y no podía faltar una lista de libros sobre patrones:

Realmente son todos muy buenos. Para los que estéis empezando con esto de los patrones os recomendaría el segundo y a partir de ahí leeros el resto (merecen la pena).

Xavi es un Technical Arquitect de Aplicaciones RIA basadas en la Plataforma Flash trabajando para Adobe en Londres. Especializado en aplicaciones colaborativas en tiempo real, e-learning y CMS (Content Management Systems) utiliza Flex, LCDS, BlazeDS, FMS y Java principalmente.

Sitio Web:http://www.code4net.com

9 Comentarios

  1. Israel Gaytan

    Hola a todos excelente artículo Xavi, me gustaria agregar un comentario personal.

    CAIRNGORM esta basado primeramente en el patrón de diseño MVC (Modelo Vista Controlador),dentro de el MVC, tiene a su vez patrones de diseño J2EE y alguno por ahi the GoF (Gang of Four) de hecho es el patrón Command.

    Les recomiendo tambien echen un vistazo a las siguientes bibliografias son excelentes!

    ——–
    Patrones de Diseño (Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides) Addison Wesley
    ——-
    Core J2EEâ„¢ Patterns: Best Practices and Design Strategies, Second Edition
    By Deepak Alur, John Crupi, Dan Malks

  2. Pingback: MadeInFlex » Blog Archive » Cairngorm VIII: Model Locator

  3. Pingback: Joan | Garnet Flex:Flash:PHP:MySQL:JS » Serie completa sobre Cairngorm en MadeInFlex

  4. Pingback: chblog » Flex: Cairngorm Framework

  5. Pingback: MadeInFlex » Blog Archive » Cairngorm: Secuenciado de Commands

  6. Pingback: Flex 2 + Cairngorm 2.2.1 - ImageExplorer at coconnut

  7. Pingback: Serie completa sobre Cairngorm en MadeInFlex : Joan Garnet :: Arquitectura y desarrollo RIA

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Acerca de Made In Flex

Made In Flex es una comunidad de desarrolladores de Apache Flex creada en 2006.

Apache Flex, anteriormente conocido como Adobe Flex, es un SDK (kit de desarrollo de software) para crear aplicaciones enriquecidas - multiplataforma basadas en Adobe Flash donado por Adobe a la fundación Apache in 2011 y promocionado a proyecto de primer nivel en Diciembre de 2012.

Actualmente estamos cambiando muchos aspectos del sitio web para ofrecer un sitio útil para toda la comunidad que tenga en cuenta las necesidades actuales.

Últimas Fotos

Instalador de Apache Flex

Entrar o Registrase