Iniciando com Cairngorm?

Olá a todos!!

Hoje resolvi escrever um post sobre Cairngorm. Desde quando comecei a estudar o Cairngorm, uma micro-arquitetura para RIA para construir aplicações em Flex ou AIR, já comecei a perceber os benefícios que poderia alcançar com esse framework. Ele implementa o padrão de projeto (design patterns) MVC (Model, View e Controller).

A Figura 1 mostra o Diagrama Explorer do Cairngorm. Clique sobre a figura e experimente a aplicação. Como pode ser visto na figura 1, o diagrama é divido em três responsabilidades distintas:

  • A View (Interface) que trata da interação interface gráfica com o usuário.
  • O Model (Modelo) onde essencialmente estão as classes de entidade, ou seja, são objetos que muito provavelmente serão persistidos em banco de dados.
  • O Controller (Controlador) tem a responsabilidade de fazer a ponte com o back-end, processar eventos, etc.

Este post não tem por objetivo o aprofundamento sobre o assunto. Se você ficou interessado acesse o blog do David Tucker que é quem criou o framework, e, diga-se de passagem, ficou tão bom que que a Adobe o adicionou como um dos projetos open source que complementam o SDK do Flex. O David Tucker postou uma série de tutoriais, bastante interessante,  que se lido com cuidado, é o necessário para entender o funcionamento.

Acesso os artigos e os vídeos referentes aos artigos nos seguintes links:

Para complementar acesse também o link da documentação do Cairngorm .

Cairngorm ExplorerFigura 1

Então para entender um pouco mais, retirei a figura 2 do blog do David Tucker que em conjunto a figura 1 ajudará a mostrar o fluxo de excecução que ocorre quando o botão Add Contact for pressionado.

  1. O usuário preenche os dados do contato e em seguida aciona o comando Add Contact . Então o objeto ContactVO é criado, os valores informados na tela são passados paras as respectivas propriedades do objeto instanciado, um objeto do tipo AddContatcEvent que estende CairngormEvent é instanciado e é passado em seu construtor o objeto ContactVO. Em seguia um evento é “despachado”  por meio do método dispatchEvent.
  2. O evento despachado é recebido pelo FrontController implementado pela classe estendia AddContactControl. Recebido o evento, é de responsabilidade do FrontController instanciar e direcionar o evento para a classe Command apropriada.
  3. O Command implementado pela classe estendia AddContactCommand recebe a instância do ContactVO através do evento do método execute e, em seguida, instancia o objeto Delegate AddContactDelegate que dispara o método addContact que será invocado no back-end
  4. A classse Service serve para definir todos os serviços que a aplicação utiliza, incluindo HTTPService, WebService, ou RemoteObject.
cairngormdiagramFigura 2

Bom, como mostrado nas figuras 1 e 2, o Cairngorm possibilita que a implementação do lado cliente da aplicação seja em Flex ou em AIR tenha alta coesão e baixo acoplamento.  Esses duas características são fundamentais para construir aplicações escaláveis, de fácil manutenção, e como utiliza patterns conhecidos, de fácil entendimento para outros programadores. Mas agora a questão é a seguinte, apesar de oferecer todos os benefícios descritos até agora a primeira impressão que eu tive, e, que você provavelmente está tendo ou terá logo, é que agora, para utilizar o framework torna-se necessário escrever várias classes e várias linhas de código. Enfim, quando percebi isso logo pensei que deveria haver algo para acelerar a implementação, já que a estrutura de classes são sempre as mesmas. Em uns trinta segundos de buscas no google descobri alguns plugins que são adicionados ao Flex Builder ou eclipse que aceleram bastante a geração de código. No entanto, sobre os que eu analisei nenhum deles foi mais interessante  que a aplicação AIR chamada FCG desenvolvida pelo David Deraedt.

FCGFigura 3

O FCG é uma aplicação que a partir de Services e Value Object(VO) desenvolvidos em PHP, Java ou C# analisa e gera os códigos fonte respectivos em Flex (figura 4). O interessante é que ele gera em Flex puro, em Flex para utilizar o framework PureMVC e o Cairngorm.

FCGDiagramFigura 4

Bom é isso aí. Penso que este post trouxe o básico do básico sobre o cairngorm e os liks necessário para começar a estudá-lo. Espero que possa ter ajudado.

Compartilhe:
  • Print
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • PDF
  • RSS
  • Twitter

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

Leave a Reply

Procurar


Edgard Davidson
nova Profissional especialista em engenharia de software e desenvol- vimento de sistemas, professor universitário, coordenador do curso de pós graduação em Engenharia de Software Centrada em Métodos Ágeis ofertado pela UNA, mestrando em Engenharia Elétrica com ênfase em Engenharia de Software, Especialista em Engenharia de Software, Graduado em Sistemas de Informação. Sou sócio da MÉRITA - ENGENHARIA DE SERVIÇOS E SISTEMAS e criei este blog dedicado a assuntos como: desenvolvimento e engenharia de software, opiniões pessoais sobre assuntos pertinentes. Os posts deste blog são escritos sem muito rigor científicos e expressam opiniões exclusivamente minhas

Mérita - Engenharia de Serviços e Sistemas

Categorias

Arquivo

Tags

Pagea