Desenvolvendo Aplicações com PHP, AJAX e YUI!

38
Desenvolvendo aplicações PHP, AJAX e YUI! Yahoo User Interface Domingos Teruel Bruno Neófiti de Andrade

description

Palestra dada por Domingos Teruel e Bruno Neofiti no CONAPHP 2008 - Congresso Nacional de PHP que ocorreu em São Paulo nos dias 18 e 19 de Outubro dentro do CONISLI 2008

Transcript of Desenvolvendo Aplicações com PHP, AJAX e YUI!

Page 1: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Desenvolvendo aplicações PHP, AJAX e YUI! Yahoo User

Interface

Domingos TeruelBruno Neófiti de Andrade

Page 2: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Experiência Profissional

Tecnólogo em computaçãocursando especialização em

Sistemas Web e Interface de Usuários;Atua na área de desenvolvimento e implementação de projetos de sistemas web-based em Software Livre, trabalha com PHP desde 1999.Analista de Sistemas da instituição ONU/OMS/OPAS/BIREME desde 2004

Page 3: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Experiência Profissional

Desenvolvedor de SoftwareONU/OMS/OPAS/BIREME

Engenheiro da Computaçãocursando Pós Engenharia de

SoftwareTrabalho com PHP e SL

desde 2000

Page 4: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Quem esta na Platéia?

Fãs de Software Livre ?Estudantes ?Desenvolvedores Avançado de PHP ?Desenvolvedores de outras Linguagens ?Todas as opções acima !Nenhuma das outras opções !!

Page 5: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Linha da apresentação

Porque utilizar PHP no meu projetoUtilizando Ajax com PHPPorque YUIDesenvolvimento de um ProjetoCamada de Apresentação com YUICamada de Negócios e Modelo

Page 6: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Porque usar PHP se existe o ASP, JSP, Python, .NET… ?

Excelente Custo/BenefícioPerfomance / Robustez / EscalabilidadeCurva de aprendizagem curtaOpen Source / Software livreMulti-plataformasInteroperabilidadeGrande Comunidade ativa

Page 7: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Quem esta usando PHP

Page 8: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Por quê AJAX?

Ajax quer dizer: Asynchronous Javascript and XML

Mas também pode ser:Asynchronous Javascript and

+ XHTML+ JSON+ CSS

Page 9: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Por quê AJAX?

O ciclo tradicional

Page 10: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Por quê AJAX?

O ciclo AJAX

Page 11: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Por quê AJAX?

O que muda para o usuárioUso de AJAX substitui refresh de páginas por atualização(update) nas páginas.Melhora a experiência do usuário com a interface Possibilidade de melhorias na interação com o usuário: melhor usabilidade, melhor interatividade com quem usa Utilização de efeitos visuais (limitado, mas suficiente) Economia de banda (aplicação mais veloz)Grande quantidade de frameworks Javascripts disponíveis no mercado

Page 12: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Quem esta usando AJAX com YUI

Page 13: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Outros frameworks JS

Page 14: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Por que YUI?“A Biblioteca Yahoo User Interface (YUI) é uma

coleção coerente de recursos Javascript e CSS que facilita a construção de aplicações web interativas em

navegadores web. Algumas partes do YUI, como o Event Utility, opera sobre uma camada e esta lá para facilitar a programação cross-browser. Outras, como

o Calendário, apresenta widgets que pode ser representados em sua página com um visual(design)

padrão.”

YUI Team

Page 15: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Porque YUI

Excelente documentaçãoGrande número de desenvolvedores, ótimos Use casesDesenvolvimento continuo da aplicação pelo Yahoo e comunidadeA Biblioteca YUI é livre, está sob a licença BSD que permite seu uso comercial e não comercial.

Page 16: Desenvolvendo Aplicações com PHP, AJAX e YUI!

O que é preciso saber para desenvolver?

Para desenvolver uma aplicação que utilize YUI é recomendado bom conhecimento de XHTML e CSS, noções de DOM e JAVASCRIPT

Quais ferramentas utilizar?Navegador: FirefoxAdd-ons: FirebugHtml ValidatorTamper dataWeb DeveloperYSlow

Page 17: Desenvolvendo Aplicações com PHP, AJAX e YUI!

O que é preciso saber para desenvolver?

Utilizar uma ferramenta de Controle de Versão

Page 18: Desenvolvendo Aplicações com PHP, AJAX e YUI!

O que é preciso saber para desenvolver?

Definição das pastas do projetoBaixar a última versão do YUI e das outras ferramentas que utilizará no projeto (smarty, nusoap e etc)

Page 19: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Arquitetura Aplicação Web

Page 20: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Arquitetura Aplicação Web

Page 21: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Camada de Apresentação

Definição do MockupUso de templates engine (SMARTY) para gerenciar a saída XHTMLDefinição do container de navegaçãoWeb Standards

Page 22: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Como preparar sua aplicação para o YUI

Definir o escopo do recurso a ser utilizado na interfaceLoaderDificuldade em trabalhar com aplicações complexas que utilizam componente DataTable

EventFácil implementar com componente DataTable

Page 23: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Camada de Negócios

Programação Orientada a ObjetoUtilizar conceito ContainerDevo utilizar um framework como Zend Framework, CakePHP, etc?

Page 24: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Desenvolvimento da aplicação

BootstrapDisponibiliza os recursos do sistemaCarrega as definições iniciais da aplicação

ContainerFaz check de segurançaCheca Identificação do UsuárioGerencia requisições e permissões de usuário

Page 25: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Internacionalização com YUI

YUI não contempla de um componente para internacionalizaçãoComo fazer?Utilize seu componente PHP de i18nZend_translateSmarty TranslateSolução caseira Navegador defini idioma padrão, arquivo de idiomaComponente que traduz para JavaScript

Page 26: Desenvolvendo Aplicações com PHP, AJAX e YUI!

YUI e carga de dados

Componente DataSourceTipo de dadosHTML TABLETEXTJSONJSARRAYXML

Siga o padrão de cada tipo de dado !

Page 27: Desenvolvendo Aplicações com PHP, AJAX e YUI!

YUI e carga de dados

Definição de camposTipo de Campos

Meta CamposLista de Resultados

Page 28: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Lógica de acesso a BD

Modulo de Conexão com a base de Dados ISIS (WXIS-MODULES)

Page 29: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Saída de Dados

Page 30: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Para aonde caminha YUI

YUI 3.XMais Leves (menos K-weight sobre o core da página para a maioria dos usos) Mais rápido (com menos requisições http, menos escrita de código e compilação, um código mais eficiente) Mais consistente (nomenclatura comum, assinaturas de eventos, widget e toda a APIs da biblioteca)mais potentes (fazer mais com menos implementação código)mais segurança (mais seguro e fácil de expor a vários desenvolvedores trabalhando no mesmo ambiente, maior facilidade de correr em sistemas como Caja ou ADsafe)

Não Compativel com YUI 2.XMigração Paralela

Page 31: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Caso de Uso

Page 32: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Caso de Uso

Page 33: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Caso de Uso

Page 34: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Caso de Uso

Page 35: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Dúvidas e afins

Page 36: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Agradecimentos

ONU/OMS/OPAS/BIREMECONAPHPCONISLIManoel LemosYahoo – YUI Team

Page 37: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Referências

http://developers.yahoo.com/yuihttp://www.yuiblog.comhttp://devzone.zend.comhttp://www.bireme.orghttp://blog.davglass.com/

Page 38: Desenvolvendo Aplicações com PHP, AJAX e YUI!

Obrigado!

Domingos [email protected]

Bruno Neófiti de [email protected]