Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de...

37
Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software

Transcript of Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de...

Page 1: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User

Interface

Domingos TeruelAnalista de Software

Page 2: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Experiência Profissional

• Tecnólogo em Processamento de dados, especialista em Interfaces de sistemas;

• Atua no desenvolvimento e implementação de sistemas web com software livre;

• Desenvolvedor PHP desde 1999;

• Analista de software de ITI em Lightcomm Tecnologia e Serviços

• Consultor em tecnologias móvel (especialista em ambiente Blackberry)

Page 3: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

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 4: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Linha da apresentação

• Porque utilizar PHP no meu projeto• Utilizando Ajax com PHP• Porque YUI• Desenvolvimento de um Projeto

– Camada de Apresentação com YUI– Camada de Negócios e Modelo

Page 5: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

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

• Excelente Custo/Benefício• Perfomance / Robustez / Escalabilidade• Curva de aprendizagem curta• Open Source / Software livre• Multi-plataformas• Interoperabilidade• Grande Comunidade ativa

Page 6: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Quem esta usando PHP

Page 7: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Por que de um Framework?

Segundo a Wikipedia, um Framework é:

"uma abstração onde um conjunto comum de código fornece funcionalidades genérica que podem ser seletivamente sobrepostas ouespecializadas pelo utilizador do código fornecendo uma funcionalidade específica. "

Page 8: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Por que de um Framework?

• Simplificação• Agilidade / Rapidez• Padrões de desenvolvimento / Design

Pattern• Organização• Menos código• Conjunto de utilitários

Page 9: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Por quê AJAX?

• Ajax quer dizer: Asynchronous Javascript and XML

• Mas também pode ser:– Asynchronous Javascript and

+ XHTML+ JSON+ CSS

Page 10: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Por quê AJAX?

• O ciclo tradicional

Page 11: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Por quê AJAX?

• O ciclo AJAX

Page 12: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Por quê AJAX?

• O que muda para o usuário– Uso 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 13: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Quem esta usando AJAX com YUI

Page 14: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Outros frameworks JS

Page 15: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

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 croos-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 16: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Porque YUI

• Excelente documentação• Grande número de desenvolvedores,

ótimos Use cases• Desenvolvimento continuo da aplicação

pelo Yahoo e comunidade• A Biblioteca YUI é livre, está sob a licença

BSD que permite seu uso comercial e não comercial.

Page 17: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

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: Firefox• Add-ons:

– Firebug– Html Validator– Tamper data– Web Developer– YSlow

Page 18: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

O que é preciso saber para desenvolver?

• Utilizar uma ferramenta de Controle de Versão

Page 19: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

O que é preciso saber para desenvolver?

• Definição das pastas do projeto• Baixar a última versão do YUI e das

outras ferramentas que utilizará no projeto (smarty, nusoap e etc)

Page 20: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Arquitetura Aplicação Web

Page 21: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Arquitetura Aplicação Web

Page 22: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Camada de Apresentação

• Definição do Mockup– Uso de templates engine (SMARTY) para

gerenciar a saída XHTML– Definição do container de navegação– Web Standards

Page 23: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Como preparar sua aplicação para o YUI

• Definir o escopo do recurso a ser utilizado na interface

• Loader• Dificuldade em trabalhar com aplicações

complexas que utilizam componente DataTable

• Event• Fácil implementar com componente DataTable

Page 24: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Camada de Negócios

• Programação Orientada a Objeto• Utilizar conceito Container• Devo utilizar um framework como Zend

Framework, CakePHP, etc?

Page 25: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Desenvolvimento da aplicação

• Bootstrap– Disponibiliza os recursos do sistema– Carrega as definições iniciais da aplicação

• Container– Faz check de segurança– Checa Identificação do Usuário– Gerencia requisições e permissões de usuário

Page 26: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Internacionalização com YUI

• YUI não contempla de um componente para internacionalização

• Como fazer?– Utilize seu componente PHP de i18n

• Zend_translate• Smarty Translate• Solução caseira

– Navegador defini idioma padrão, arquivo de idioma– Componente que traduz para JavaScript

Page 27: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

YUI e carga de dados

• Componente DataSource– Tipo de dados

• HTML TABLE• TEXT• JSON• JSARRAY• XML

Siga o padrão de cada tipo de dado !

Page 28: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

YUI e carga de dados

• Definição de campos– Tipo de Campos

• Meta Campos• Lista de Resultados

Page 29: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Saída de Dados

Page 30: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Para aonde caminha YUI

• YUI 3.X– Mais 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.X– Migração Paralela

Page 31: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Caso de Uso

Page 32: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Caso de Uso

Page 33: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Caso de Uso

Page 34: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Caso de Uso

Page 35: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Agradecimentos

• LigthComm Tecnologia• PHP-MG• Yahoo – YUI Team

Page 36: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

Dúvidas e perguntas

Page 37: Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software.

37

Obrigado!!!

• http://twitter.com/mingomax• http://blog.dteruel.com.br• http://meadiciona.com/mingomax

37