Mate Framework – Desmitificação [Parte 1]


Mate Framework Logo

Mate Framework Logo

Bom, como era de se esperar, estou eu cá para apresentar a vocês uma visão geral do que esse framework pode oferecer aos desenvolvedores Flex e àqueles que, como eu, batalham para pegar algo novo.

O Framework

Desenvolvido e mantido pela ASFusion desde junho de 2008 o Mate (ma-tei) Framework consiste num framework Flex (definido pelos seus criadores) tag-based, event-driven. Nada mais é que um framework onde toda a direção é feita através de eventos, o que vem para tornar a vida do desenvolvedor mais fácil e ágil, principalmente no controle de eventos das aplicações Flex. Tag-based refere-se à sua implementação que é feita inteiramente por tags (<…>).

O Mate nos permite definir qual EventHandler está tratando cada evento, se os dados pertinentes da aplicação devem ser obtidos a partir do servidor, ou se outros eventos devem ser acionados. Isso tudo em tempo de execução.

Além disso, o framework também faz a tão famosa injeção de dependências (alvo de um futuro post) para fazer com que diferentes partes do projeto utilizem dados e serviços que eles necessitarem sem se preocupar com a instanciação dos mesmos.

Pra começar!

Há somente dois requisitos primórdiais para a criação de um projeto usando Mate: devemos ter um ou mais eventos, e ter um arquivo MXML chamado EventMap, ou seja, um simples arquivo MXML incluído no arquivo principal da aplicação. Ele define os eventos poderão ser disparados e como devem ser tratados. Devemos ter pelo menos um desses arquivos, mas nada impede de usar vários EventMaps, se necessário, é claro.

Vejamos o tão famoso código:

MainEventMap.mxml

<EventMap xmlns=“http://mate.asfusion.com/”>

<EventHandlers type=“myEventType”>

… Aqui escrevemos o código a ser executado quando o evento for disparado …

</EventHandlers>

<EventHandlers type=“myOtherEventType”>

… Aqui escrevemos o código a ser executado quando o evento for disparado …

</EventHandlers>

</EventMap>

Nesse codigo, notamos a presença da tag principal chamada EventMap e os blocos de tags internos EventHandler. É boa prática dividir os EventMaps em aquivos diferentes de acordo com as funcionalidades de cada aplicação. Logo, a estrutura de diretórios será algo como:

  • com.seudominio.mate
    • events //Pasta reservada para os eventos
    • maps //Pasta destinada aos EventMaps
    • views //Pasta para as views
    • assets //Destinado a componentes de Mídia

Desse modo, o nosso arquivo MainEventMap.mxml ficará na pasta com.seudominio.mate.maps.

Voltando ao EventMap:

EventMap

O componente EventMap é a parte central da aplicação desenvolvida com o Mate. Ele centraliza e coordena todos os eventos disparados e recebidos na aplicação. Ele define n blocos de eventos onde cada um é responsável por disparar um determinado tipo de evento.

Com sua visão global, não se faz necessário, dentro dos EventMaps, definirmos atributos. O importante são as subtags definidas dentro deles:

– EventHandlers

Responsáveis por disparar eventos, os EventHandlers são disparados toda hora que um novo evento especificado no atributo type é chamado. Veja o exemplo:

<EventHandlers type=“Event1Type”>

<MethodInvoker

generator=“ClassX”

method=“MethodXY” />

<EventAnnouncer

type=“Event2Type”

generator=“EventClassNameToInstantiate”/>

<MethodInvoker

generator=“ClassY”

method=“MethodYZ” />

</EventHandlers>

Toda vez que o Evento “Event1Type” for disparado, o EventMap vai coordenar para que as ações dentro de EventHandlers.Event1Type sejam executadas.

Segue abaixo a lista de todas as subtags que podem ser incluídas nos EventHandles. Cada uma delas oferece um determinado tipo de ação (serviços, invocação de determinados métodos, aquisição de objetos do servidor…).

  • MethodInvoker
  • EventAnnouncer
  • RemoteObjectInvoker
  • WebServiceInvoker
  • HTTPServiceInvoker
  • ObjectBuilder
  • ResponseAnnouncer
  • ServiceResponseAnnouncer
  • CommandInvoker
  • DataCopier
  • StopHandlers
  • InlineInvoker
  • AsyncMethodInvoker

Para detalhar cada subtag do EventHandler clique aqui.

– MessageHandlers

As tags MessageHandlers permite registrar uma lista de handlers para o consumo do serviço de mensagens do Flex (FMS – Flex Messaging Service). Um MessageHandlers tem os mesmos atributos que a tag <mx:Consumer>. Aqui, novamente, temos várias subtags as quais são executadas em ordem.

Assim como os EventHandlers, os MessageHandlers podem ter eventos para o caso de falhas comuns ao envio e/ou recepção de informações com o uso da subtag <faultHandlers>.

Anúncios

2 respostas em “Mate Framework – Desmitificação [Parte 1]

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s