Pergunta

Atualmente estou usando e gostando de usar o framework Flex MVC PuroMVC.Ouvi algumas coisas boas sobre o Cairngorm, que é apoiado pela Adobe e tem um impulso pioneiro no mercado.E há um novo jogador chamado Mate, que tem bastante novidades.

Alguém já experimentou duas ou três dessas estruturas e formou uma opinião?

Obrigado!

Foi útil?

Solução

Amigo é minha escolha.A principal razão é que é completamente discreto.O código do meu aplicativo não depende do framework, é altamente desacoplado, reutilizável e testável.

Um dos recursos mais interessantes do Mate é a configuração declarativa, basicamente você conecta seu aplicativo usando tags no que é chamado de mapa de eventos - basicamente uma lista de eventos que seu aplicativo gera e quais ações tomar quando eles ocorrerem.O mapa de eventos oferece uma boa visão geral do que seu aplicativo faz.O Mate usa o próprio mecanismo de eventos do Flex, ele não inventa o seu próprio como a maioria dos outros frameworks.Você pode despachar um evento de qualquer lugar na hierarquia de visualização e fazer com que ele chegue à estrutura automaticamente, em vez de precisar ter uma linha direta, como Cairngorms CairngormEventDispatcher ou o sistema de notificação do PureMVC.

O Mate também usa uma forma de injeção de dependência (aproveitando ligações) que torna possível conectar seus modelos às suas visualizações sem que um saiba do outro.Este é provavelmente o recurso mais poderoso da estrutura.

Na minha opinião, nenhuma das outras estruturas de aplicativos Flex chega perto do Mate.No entanto, estes são os concorrentes e por que os considero menos úteis:

O PureMVC nega ativamente muitos dos benefícios do Flex (por exemplo, ligações e bolhas de eventos) para que a estrutura seja portável - um objetivo duvidoso na minha opinião.Também é superprojetado e tão invasivo quanto parece.Cada parte do seu aplicativo depende da estrutura.No entanto, PureMVC não é terrível, apenas não é uma opção muito boa para Flex.Uma alternativa é FlexMVCS, um esforço para tornar o PureMVC mais adequado para Flex (infelizmente ainda não há documentação, apenas fonte).

Cairngorm é um pacote de antipadrões que levam a aplicações fortemente acopladas a variáveis ​​globais.Nuff disse (mas se você estiver interessado, aqui estão mais alguns dos meus pensamentos, e aqui também).

suíço é um framework inspirado no framework Spring para Java e Cairngorm (tentando compensar as piores partes deste último).Ele fornece um contêiner de injeção de dependência e usa metadados para permitir a ligação automática de dependências.É interessante, mas um pouco bizarro, pois vai tão longe para evitar as variáveis ​​globais de Cairngorm usando injeção de dependência, mas depois usa uma variável global para envio central de eventos.

Esses são os que eu tentei ou pesquisei.Existem alguns outros sobre os quais ouvi falar, mas nenhum que eu considere amplamente utilizado.Mate e Swiz foram apresentados na recente conferência 360|Flex e há vídeos disponíveis (o pessoal do Mate tem instruções sobre como observá-los)

Outras dicas

Confira Pernas de robô.

"Ele fornece a cola que sua aplicação precisa para funcionar facilmente de forma desacoplada.Através do uso de injeção automatizada de dependência baseada em metadados, o Robotlegs remove o código clichê de um aplicativo.Ao promover o acoplamento flexível e evitar o uso de Singletons e estática na estrutura, o Robotlegs pode ajudá-lo a escrever código altamente testável."

Já vi esse tipo de discussão muitas vezes.Eles geralmente começam com QUAL framework Flex você usa.Poucas pessoas perguntam POR QUE você precisa usar qualquer framework em cima do framework Flex.

Não sou a favor do uso de nenhum framework MVC (Cairngorm, PureMVC) no código Flex.Mate é um candidato melhor.Pelo menos é simples de entender e não é intrusivo.Eu prefiro usar componentes aprimorados
à la carte.Criamos e disponibilizamos vários deles (veja clear.swc no Clear Toolkit em http://sourceforge.net/projects/cleartoolkit/.

O primeiro capítulo do nosso próximo livro da O'Reilly, "Enterprise Development with Flex", traz uma comparação detalhada de vários frameworks Flex: http://my.safaribooksonline.com/9780596801465 .

Estamos atualmente trabalhando em um MVCS implementação no Primavera ActionScript estrutura.Ele usa todo o poder do contêiner de Inversão de Controle para que você tenha gerenciamento centralizado de dependências e seja capaz de trocar coisas facilmente.Não é muito prescritivo na forma como você faz as coisas, mas fornece uma infraestrutura muito flexível.

Se você é novo no Spring ActionScript e MVCS, tenho uma postagem introdutória em meu blog: http://www.herrodius.com/blog/158

Estou usando (e recomendo) o framework Swiz.Não é tão complexo e PureMVC, mas dá conta do recado.Além disso, é um contêiner IoC e eu gosto de IoC.

Nunca usei o Mate, então não posso comentar sobre isso.Mas eu recomendo contra Cairngorm.Diz-se que Cairngorm é de código aberto, mas na verdade não é bem suportado pela comunidade.Seu ciclo de lançamento também é lento.Estive esperando SEMPRE que a Biblioteca de Navegação saísse da versão beta.

Tenha em mente que Cairngorm é A estrutura patrocinada pela Adobe e agora está hospedada em opensource.adobe.com.Observe também que é de longe o mais prolífico entre os desenvolvedores no momento.

Se você conhece Cairngorm e está procurando emprego, não irá errar muito.

Cairngorm é fácil de usar e bem documentado:http://www.cairngormdocs.org/

Eu recomendo o Explorador do diagrama de Cairngorm e o artigo clássico sobre Cairngorm.

Eu era novo no Flex quando aprendi Cairngorm, mas achei útil e fácil de aprender com o que foi dito acima.

MATE é o caminho a seguir. Uma estrutura que faz o que uma estrutura deve fazer.Arquitetura desconeal simples eficiência de impressão de pé pequeno

Eu meio que tenho minhas dúvidas sobre esses frameworks MVC (Mate, Cairgnorm, etc...) com a forma como eles implementam mapas de eventos e controladores de eventos, isso me lembra muito wxWidgets e outros kits de ferramentas GUI desse tipo.

No entanto, seria muito bom se o Flex ou um desses frameworks MVC usasse o paradigma Signal/Slots que o Qt oferece.

Eu recomendo usar o MATE para desenvolver projetos grandes e complicados, como outros frameworks, o Mate aborda as preocupações arquitetônicas comuns no Flex, como manipulação de eventos, vinculação de dados e processamento assíncrono, mas o objetivo mais importante é que ele seja baseado apenas em tags, então é muito fácil de usar em nossos aplicativos Flex.

Sim, Mate é a melhor estrutura para flex.Eu usei um aplicativo que teve várias revisões tanto em termos de GUI quanto de serviço de dados de back-end.Eu só precisava alterar meu mapa de eventos sempre que havia alguma alteração.

O Mate também possui a implementação do MockService, o que facilita o teste, não é uma vantagem para o companheiro, mas é bom ter um.

Você deve projetar sua própria "estrutura" MVC com base em suas próprias necessidades.Se você conhece um pouco de padrões de design, o Flex tem muito a oferecer nativamente.

A melhor coisa de projetar seu próprio MVC é que ele pode ser leve ou complexo, conforme sua necessidade.

Minha experiência com frameworks é que você basicamente precisa escrever o dobro de código do que faria sem usar um framework.O bom dos frameworks é que ele força você a trabalhar de maneira consistente, mas se você puder trabalhar de maneira consistente fazendo uso de Design Patterns, melhores práticas e bom senso, sugiro ficar longe de frameworks.

É muito difícil chegar a uma conclusão sobre qual estrutura é melhor que outras.Dependendo da natureza e complexidade do projeto e da experiência e preferência dos membros da equipe, um pode ser mais adequado do que outro em uma determinada situação

Eu compilei uma lista de Flex Frameworks com breves descrições e dicas para mais informações sobre eles neste URL.http://practicalflex.blogspot.com/2011/08/list-of-adobe-flex-tools-frameworks.htmlo URL pode ser útil para quem procura avaliar um framework Flex para seu projeto.

Depois de avaliar a maioria dos frameworks Flex, achei o framework Swiz mais simples e fácil de usar para um novo desenvolvedor.Conseqüentemente, garante fácil manutenção e extensibilidade de seu aplicativo.

Trabalhei em estruturas Cairngorm e Mate.Comecei com a estrutura cairngorm.É bom trabalhar, mas difícil de entender no começo.Ele lida com o envio de eventos de maneira inteligente.Você pode despachar eventos das próprias classes e isso será resolvido pelas classes de comando com fio da estrutura.Existe um único repositório para armazenar os dados, tão fácil de manusear os dados.É uma classe singleton.Depois de dominar a estrutura, o trabalho fica mais fácil.O Mate, por outro lado, é uma estrutura baseada em tags.É uma estrutura orientada a eventos, portanto, todos os eventos são tratados no arquivo eventmap.Ele faz escuta de eventos, injeção de propriedades e muitas outras coisas dessa própria classe.Você pode despachar eventos das classes passando a instância do despachante de eventos da estrutura.Você não precisa usar uma classe singleton como cairngorm nisso.Você pode vincular a propriedade em uma classe às visualizações usando diretamente a injeção de propriedade, portanto, não há necessidade de usar nenhuma classe singleton.No mate, todas as classes e visualizações estão livres do código da estrutura, portanto, é uma estrutura desacoplada.É fácil mover componentes de um lugar para outro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top