If you can't read please download the document
Upload
cauan-cabral
View
3.922
Download
0
Embed Size (px)
Citation preview
Aplicaes com mais do que um rostinho bonito
CakePHP + Adobe Flex
Cauan Cabral
Tpicos
RIA's isso novo?
FLEX uma alternativa atraente;
AMF a lngua natural;
AMF e PHP opes para todos os gostos;
AMF e PHP fluxo de trabalho;
CakePHP cozinhando os servios;
CakePHP e AMF fcil falar essa lngua?
Aplicao de exemplo Pagode;
Adicionando FLEX a receita do bolo;
Dvidas?;
Consideraes;
RIA's isso novo?
O que RIA:RIA Rich Internet Application
Define uma classe de aplicaes que rodam direto da web e do enfase na experincia do usurio.
Exemplo conhecidos: Gmail, Google Docs, Photoshop.com.
Podemos criar RIA's utilizando javascript, Flash, Flex, Silverlight, JavaFX,...
RIA no algo novo.
FLEX uma alternativa atraente
FLEX SDK open-source para desenvolvimento de RIA;
Utiliza plataforma Flash;
Utiliza-se duas linguagens: MXML e ActionScript;
MXML um XML com tags pr-definidas que podem gerar componentes ou definir aes;
ActionScript uma linguagem de programao, semelhante ao JavaScript que permite controle da aplicao FLEX.
FLEX uma alternativa atraente
Aplicao FLEX executada no computador do usurio (client-side);
Alguma forma de comunicao com o servidor precisa ser estabelecida;
Formas usuais: XML (incluindo XHTML), JSON e texto puro;Problema:XML e texto puro consomem muita banda;
JSON implica em um overhead, preciso converter tudo que ser enviado para JSON e depois reverter para um formato nativo.
AMF a lngua natural
FLEX possui um formato prprio de comunicao Action Message Format (AMF);
O AMF um formato binrio e nativo dentro da plataforma Flash/Flex;
AMF a lngua natural
Fonte: http://www.jamesward.com/census/
AMF e PHP opes para todos os gostos
Do lado cliente no precisamos nos preocupar com o formato AMF ele nativo;
Do lado servidor o PHP ainda no oferece um suporte padro para o formato (da forma que fornece para o JSON e XML);
Existem vrias implementaes do AMF para PHP e at mesmo EM PHP.
AMF e PHP opes para todos os gostos
AMFPHP Uma das primeiras implementaes, est sem desenvolvimento a mais de 1 ano;
AMFEXT Extenso escrita em C para fornecer suporte ao AMF;
Zend_AMF parte do Zend Framework e fruto de parceria entre Adobe e Zend. Possui como principal desenvolvedor o criador do AMFPHP;
WebORB for PHP soluo completa para comunicao utilizando AMF agregada a servios avanados. Possui verso grtis (limitada) e paga.
AMF e PHP fluxo de trabalho
Cliente
navegador/flashplayer
Servidor
Apache
Requisio
Resposta
ComunicaoUtilizando AMF
PHP
MySQL
AMF e PHP fluxo de trabalho
Cliente: para apresentar informaes ao usurio, faz requisio dos dados ao servidor;
Servidor: recebe o pedido, identifica o contedo da mensagem utilizando alguma das implementaes do AMF para PHP;
Servidor: retorna o resultado de suas operaes, tambm em AMF;
Cliente: recebe a resposta e apresenta para o usurio.
AMF e PHP fluxo de trabalho
O fluxo de trabalho semelhante ao de uma aplicao Ajax;
Recebe requisio Processa Retorna resultado;
H uma boa separao de cdigo (cliente servidor), o que facilita atualizaes e escalabilidade.
CakePHP cozinhando os servios
CakePHP um framework PHP popular que implementa reconhecidos padres de desenvolvimento: MVC e ORM;
Possui gerador de cdigo (shell): bake;
Facilita TDD;
Tem comunidade muito ativa e participativa, alm de extensa, inclusive no Brasil.
CakePHP cozinhando os servios
Separao dos ambientes cliente e servidor;
Utilizando o CakePHP construmos uma aplicao rapidamente;
O objetivo do CakePHP agilizar o desenvolvimento dos nossos servios.
No h iterao entre o CakePHP e a aplicao Flex alm das requisies e respostas.
CakePHP e AMF fcil falar essa lngua?
Assim como o PHP, o CakePHP ainda no possui uma implementao padro e nativa do AMF;
Existem vrias formas de se integrar o AMF ao CakePHP;
CakePHP e AMF fcil falar essa lngua?
Formas de integrao:AMFPHP podemos usar a biblioteca AMFPHP dentro do conceito de vendors. Inclumos ela ao nosso projeto e chamamos sempre que necessrio;
CakeAmfPHP plugin para CakePHP, um dos primeiros a serem desenvolvidos, est parado na verso 0.6 (utiliza AMFPHP);
CakePHP e AMF fcil falar essa lngua?
Formas de integrao:CakeAMF plugin que possui como desenvolvedores parte do CORE Team do CakePHP (utiliza AMFEXT);
CpAMF plugin que tem como base o CakeAmfPHP, possui atualizaes constantes (utiliza AMFEXT ou AMFPHP);
FlexibleCake controller que intercepta chamadas e retorna contedo AMF (utiliza Zend_AMF);
Aplicao de Exemplo Pagode
O que o Pagode:Aplicao simples para controle das finanas pessoais;
A aplicao do exemplo um esboo de soluo, apenas para demonstrar a iterao do PHP + Flex;
O Pagode um projeto idealizado pelo PHPMS.
Aplicao de Exemplo Pagode
Criando a aplicao utilizando o CakePHP;
Precisamos apenas definir o banco de dados de nossa aplicao;
Para ver o fonte da aplicao, faa um checkout ou export do repositrio: http://svn.radig.com.br/pagode
Adicionando Flex a receita do bolo
Utilizaremos:AMFEXT;
CakeAMF para integrar o AMFEXT ao CakePHP.
Idia:O plugin CakeAMF ir interceptar as requisies e devolver o resultado em AMF.
Adicionando Flex a receita do bolo
Construindo interface da aplicao: um pouco de MXML e AS3.
Definindo nosso gateway que passar os dados para a aplicao Flex.
Visualizando o resultado.
Dvidas?
Consideraes
Flex uma alternativa atraente para criao de interfaces de sistemas: gratuito (o SDK);
Sua API grfica muito boa vide o flashplayer;
Capacidade de se conectar atravs de diferentes tipos de dados (AMF, XML, JSON, )
Unindo a facilidade e poder de fogo do Flex removemos as amarras das sandbox para javascript e incompatibilidade de renderizao entre browser do html e css.
Bnus
Para quem j trabalha com CakePHP:Alguns membros do CORE de desenvolvimento do CakePHP, juntamente com outros desenvolvedores criaram o FAKE, um framework MVC para ActionScript3, que segue as convenes do CakePHP, tornando mais fcil se adaptar a esta linguagem.
Fonte: http://code.google.com/p/fake-as3/
Contato...
Email: [email protected]
Blog: http://geek.cauancabral.net
MSN: [email protected]
Gtalk: [email protected]
Twitter: cauancabral
IRC @ Freenode: CauanCabral
http://linkedin.com/in/cauancabral
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline LevelEighth Outline LevelNinth Outline Level