Tag Archives: Adobe Flex

Proposta de Arquitetura com Adobe Flex e PHP usando Zend Framework

Olá Pessoal,

Um item básico quando se trata de sites, é um local onde o visitante pode de alguma forma entrar em contato com a empresa do site, hoje existem algumas boas soluções para isso, como por exemplo um client msn que pode ser colocado no site e se o visitante quiser, pode entrar em contato com o msn da empresa.

Mas hoje vou mostrar a vocês uma forma simples e funcional, que consiste em um formulário onde o visitante preenche os dados, e gera um e-mail para o destinatário.

Mostrarei isso usando PHP/ZEND/AMFPHP/FLEX, poderia fazer isso somente com HTTPService? concerteza, ficaria menos código e até mais simples, porém concordamos que ninguém iria fazer uma aplicação só com essa funcionalidade, pois o Formulário de Contato seria apenas um módulo do sistema.

Então vou lhes mostrar também uma proposta de como você pode trabalhar arquiteturalmente com Flex e PHP, trocando apenas VO/TO/DTO entre as camadas, lembrando que isso é uma boa prática, vejo muitos porae trocando array’s com Flex e PHP, isso é totalmente desnecessário.

Detalhes da Arquitetura

ZEND Framework;

AMFPHP;

Adobe Flex;

A arquitetura usa o ZEND para abstração do banco de dados usando a Classe Zend_Db_Table, e outros recursos como o Zend_Loader e Zend_Registry.

AMFPHP para a comunicação entre o AdobeFlex e o PHP, esta comunicação rodando em cima do protocolo AMF3, que provém comunicação binária não mais String como no HTTP puro, e também compactação.

Estruturando a aplicação

Estrutura de Pastas  
Listagem 1

Crie uma estrutura de pastas como mostrado na Listagem 1

O package entitybean contém classes que segue os conceitos de um EntityBean como nas especificações J2EE/JEE, só que claro BMP através do Zend_Db_Table, e uma outra classe que eu fiz chamada EntityBeanImpl, que abstrai ainda mais os métodos CRUD de um caso de uso, como por Exemplo eliminei os métodos Inserir e Atualizar, e criei um Salvar, que insere ou atualiza baseado na Primary-Key. Em poucas palavras, um EntityBean, é reponsável pela abstração de um Banco de Dados Relacional, as camadas acima de entityBean apenas conhecem o entitybean, não tem acesso ao Banco de dados.

Para Garantir transação e concorrência, criei uma classe chamada DB que cotém um singleton me garantindo apenas uma instância da mesma em uma transação,  ela é reponsavel por iniciar uma transação através do método beginTransaction() realizar o commit se toda a operação ocorrer com sucesso atraveés do método commit()  e realizar o roolback no banco de dados através do método rollback().

O package sessionbean contém classes que segue os conceitos de um SessionBean também como nas especificações J2EE/JEE só que apenas sendo Stateless. Em poucas palavras um SessionBean tem a responsábilidade de implementar a regra de negócio do caso de uso, como por exemplo validações, calculos e etc.

O package facade contém classes que implementam o Pattern Facade em outras palavras é a fachada do sistema, neta arquitetura ela é responsável por garantir a transação usando a classe DB, também é reponsável pelo tratamento de exceções (Erros).

O package vo contém simples classes que implementam os Patterns VO/TO/DTO, são os vo’s encarregados de transportar entre as camadas as informações de cada caso de uso. Lembrando que o mesmo VO no PHP, será automaticamente serializado pelo AMFPHP para um VO no Flex para isso os VO devem ficar assim:

Continue reading

Trabalhando com CSS no Adobe Flex Builder 3

O Adobe Flex é resposável por cuidar da camada view de um sistema, só que em nível de desenvolvimento o Flex não é apenas Visual, mas exige uma certa analize sobre como será arquiteturado e etc…

Logo, o ideal é que o desenvolvimento seja divido em 2, uma parte que cuida do controle das telas, lógicas de telas, e a  comunicação com o Beck-end.

Outra parte é o Design do sistema, este que gera componentes, padrões de cores e etc.. Estes fatores as vezes desconsiderado por muitos, mas sempre lembro: O usuário ve tela, não ve código!.

Hoje gostaria de apresentar a vocês, algumas de minhas experiências com Design, (É também gosto de dar uma de web designer) e todo Designer sabe o quão terrível é montar padrões de tela com html/js/css fatores como: Falta de uma boa IDE, Fazer CSS compátiveis para os browsers.

Já no Flex, com o Flex Builder 3, facilita muito a vida do designer, pois através do plugin visual, é capaz de se realizar quase todas as configurações de Layout e design.

Vamos a um exemplo:

Crie um novo projeto no Flex Builder 3;
*O Compiler deve usar o Flex SDK 3

image

Continue reading

Adobe Flex, Padronizando seu código

Olá Pessoal,

Todo programador sabe o quão essencial é padronizar seus códigos, seja para um desenvolvimento em grupo, ou independente.

Ao padronizar, você dá ao seu código algumas características que trazem benefícios futuros, ou presentes, como por exemplo:

  • Legibilidade no código;
  • Facilidade de distribuir os códigos;
  • Ajuda na manutenção do código;
  • Evitar que estagiários possam fazer códigos selvagens! =x

Para quem ainda não viu,o Fábio Terracini da lista FlexDev fez há um tempo atráz, um Coding GuideLines para a DClick que visa padronizar os códigos MXML e ActionScript. O doc é muito bom, tanto que certas pessoas estão comentando até na lista FlexCoders.

Link’s:

Adobe Flex Coding Guidelines v1.2 (English).pdf

Adobe Flex Coding Guidelines v1.2 (Portugues).pdf

Adobe Flex Coding Guidelines (English version) *
*Não deixe de olhar também os comentários do post, há algumas críticas, mas sabe como os Norte Americano são né….

Bom, a dica está dada, agora… Produzir!

=)

Abraços!

o/

Modularizando sua aplicação com Modules e Flex Builder 3

Olá pessoal,

Uma vez apresentei um artigo falando sobre o Adobe Flex, e neste artigo, e como entusiasta da tecnologia apenas apresentei pontos positivos, e como era de se esperar alguns perguntaram: Esse tal Flex não tem pontos negativos?!

Hoje posso dizer que desenvolver uma aplicação de grande porte com o Adobe Flex requer uma atenção necessária, o problema aparece quando se quer diminuir o tamanho do .swf final, ou então dividir a aplicação em modulos.

Confesso senhores que tentei usar o Module no Flex Builder 2 (SDK 2.0.1) e não atendeu muito bem, era custoso ter que ficar compilando cada modulo, e depois quando usava dava uns problemas muito estranhos.

Hoje quero apresentar a vocês algo que o Flex Builder 3 trouxe de novo, a manipulação dos modules via Flex Builder.

Vamos ao código então:

Continue reading

Upload de Arquivos com Flex , PHP e Java

Olá Pessoal!

Uma coisa que o pessoal sempre pede na lista, é como fazer o upload de arquivos com Flex,

Um modo é você tratar o Flex como se fosse um form HTML, outro modo é através de ByteArray como este Link.

Hoje mostrarei o modo mais simples, usando a API FileReference.

*Nota: Por questões de segurança do browser, a VM ActionScript não tem acesso direto a arquivos no disco, logo a API apenas da a possibilidade de trabalhar com:
Tamanho, Nome do Arquivo, Data de Criação, Data de modificação e Tipo (extenção).

Continue reading

Como anda o Adobe Flex no Brasil?

(Editado dia 17/11/2007)

Olá, a aplicacão FlexCenso está sendo um sucesso, tanto que em parceria com o Ebercom
da comunidade Flex, resolvi trocar de servidor.

Segue o novo Link:

http://www.flexdev.com.br/flexcenso/


===============================

Olá Pessoal!
Fiz uma pequena aplicação, que tem por fim realizar uma espécie de

Censo dos desenvolvedores de Flex no Brasil e região.

Para que isso!??
A principal, é para sabermos como anda o flex no mercado de trabalho,
uma vez que temos muitos formandos nas listas de flex, é muito interessante saber
como anda a propagação do Flex no Brasil.
Outro fato, é que temos mais de 1000 usuários nas listas, e já pensou que seu vizinho pode ser um desenvolvedor Flex e você não sabe?

A aplicação, está básica, porém com esses dados depois podemos gerar gráficos,
e módulos mais interativos.

Espero o participação de todos!
Abraços!

Segue o Link:
http://www.flexdev.com.br/flexcenso/
o/

Liz… Te Amuh Vidah! =**

Convença sua Equipe: Para Desenvolvimento Web, é com Adobe® Flex™

Há alguns dias, elaborei uma solução usando Flex aqui na empresa, e me pediram para argumentar
o porque de usar o Flex, não medi esforços e logo fiz um .doc, Segue abaixo:

Adobe Flex

Características do Adobe® Flex™ 2:

O Adobe® Flex™ 2, é um produto desenvolvido a princípio pela Macromedia, hoje fundida com a Adobe, empresa muito famosa por seus reconhecidos programas para WEB, como Adobe Photoshop, Adobe Dreamweaver, Adobe Acrobat Reader. O Adobe® Flex™ 2 é a solução de desenvolvimento de aplicativos mais completa e potente para se criar e fornecer aplicativos avançados de Internet (RIAs) no ambiente empresarial e na Web. Ele permite que as empresas criem aplicativos multimídia personalizados que melhorem significativamente a experiência do usuário, revolucionando o modo como as pessoas interagem com a Web.

Ex: Flex Store, Gráficos, Style Explorer.


O SDK (Software Development Kit) do Flex, a partir da versão 2.0, foi dado como free a comunidade, logo qualquer um podia baixar seu SDK, e programar e compilar de graça. Mais tarde em Abril de 2007, a Adobe decide tornar todo o Flex OpenSource, até mesmo o seu compilador (mxmlc.exe) sobre a licença (MPL) Mozilla Public License .
O Flex conta com uma poderosa ferramenta para desenvolvimento, O Adobe Flex Builder™, uma IDE baseada no Eclipse™ o que agiliza muito o desenvolvimento de interfaces. Esta é uma ferramenta é cobrada pela Adobe®.

A Licença do Adobe® Flex™ 2 e o que é Cobrado:

O Flex, está sob a licença MPL, basicamente um código sob a licença MPL quando o fonte copiado ou alterado sob a licença Mozilla deve continuar sob esta licença. Porém, este código pode ser combinado em um programa com arquivos proprietários como por exemplo um servidor de aplicação como da BEA. Além disso, é possível criar uma versão proprietária de um código sob a licença Mozilla. Por exemplo, o navegador Netscape 6 e 7 são versões proprietárias das versões correspondentes da suíte Mozilla.
Em todo o ambiente Flex, apenas o Flex Builder (IDE de desenvolvimento) e o Flex Charts (API para desenvolvimento de Gráficos), isto é, a princípio para se desenvolver com Flex não necessita ter gastos, lembrando que todo o SDK do Flex é OpenSource. O Flex Builder já com a API de Gráficos, fica em torno de U$500,00 a U$600,00.

O Lado “Servidor “ do Flex…

A princípio, o Adobe® Flex™ 2 não necessita de um servidor de aplicação, uma vez que o Flex é apenas umas solução para a camada de aprensentação, porém o Flex pode rodar com liguagens como Java, PHP, ASP, C#, ColdFusion, e estes necessitam de um servidor de aplicação, para isto existe Frameworks OpenSource que estão do lado do servidor, que fazem a comunicação entre o Flex, e alguma linguagem.
Como por exemplo, para integração do Flex com Java usando o servidor da BEA Workshop, existe o GraniteDataServices ou OpenAMF.

Vantagens de se utilizar o AdobeFlex:

Em comparativo com Telas em Html (JSP):

  • Não há necessidade de programar compatibilidade entre browsers, como o Firefox ou Internet Explorer, pois a aplicação Flex roda sobre uma Máquina virtual, nada mais nada menos que o plugin Flash, este encontrado em 98% dos computadores na WEB.
  • Com a ajuda do Flex Builder, o desenvolvimento fica muito ágil, uma vez que o Flex B uilder tende a ser uma ferramenta RAD(Rapid Application Development, como Delphi) o que resumidamente é clicar e arrastar para desenhar telas.
  • A interface final, sempre fica dinâmica e mais interativa.

Em comparativo com o OpenLaszlo:

  • O OpenLaszlo não contém uma IDE, o que retarda o processo de desenvolvimento.
  • O OpenLaszlo só se comunica através de XML, já o AdobeFlex, se comunica via WebServices, XML, RPC, AMF dentre outros. Lembrando que o protocolo desenvolvido pela Adobe, o AMF, é o mais rápido para troca de dados na WEB.Ver comparativo:

http://www.jamesward.org/census/

  • O OpenLaszlo conta um compilador, que compila quando uma requisição via browser é feita, logo quando se trata de uma aplicação muito grande, seu tempo de compilação é muito grande. Já o Flex pode ser compilado e depois ser colocado em produção, ou também ser compilado quando for requisitado pelo browser.
  • O OpenLaszlo não tem uma empresa administradora de reconhecimento no mercado, o que torna difícil ter uma possível consultoria.
  • A sintaxe da linguagem do OpenLaszlo a primeira vista é complicada, o que torna o tempo de aprendizado mais longo. Já com o Flex a sintaxe é muito similar com HTML.
  • Gerais..:

    • O Flex é a complementação da WEB 2.0, conceito que resumidamente deixa equivalente a visualização de um sistema Desktop e um sistema WEB. Só que de maneira mais dinâmica onde o clicar e carregar uma nova página desaparece!
    • Fácil Integração com Servidores J2EE, como por exemplo o Servidor de Aplicação da BEA WebLogic. Também vale lembrar que a BEA em suas versões mais novas, já integrou o Adobe Flex. Ver:

    BEA Flex

  • Documentação bem elaborada.
  • Suporta Clusterização.
  • Seu SDK

    todo OpenSource Licenciado sob a licença da MPL.
    A Comunidade Flex está cada dia maior, logo fica fácil a troca de opiniões e dúvidas.
    Se necessário suporte da Adobe.