AJAX e GWT AJAX em Java usando o Google Web Toolkit Maurício Linhares –  [email_address] http://maujr.org/
O ano 2000 passou... ... E as aplicações web continuam as mesmas
Problemas A interatividade de aplicações web é sofrível; Não é possível reaproveitar partes já carregadas das páginas; Muda-se uma letra, muda-se a página toda;
Problemas Interfaces complexas ou ações complexas são difíceis de se fazer na web; ActiveX não é uma escolha em um ambiente diverso; Aplicações desktop dão muito trabalho para evoluir;
Solução? AJAX!
Mas, o que é  AJAX ?
Um detergente?
Um herói grego?
Um time de futebol holandês?
Ou seria um marciano verde?
Qual é a resposta certa Lombardi?
AJAX é: A synchronous J ava S cript and  X ML
A synchronous Uma requisiçao AJAX deve acontecer de forma assíncrona; O cliente não precisa esperar a requisição acabar; A página deve estar sempre carregada e disponível;
J ava S cript Linguagem de programação baseada em protótipos; Fonte das funções que fazem requisições e mudanças a partir da página; Baseada no padrão ECMA, mas nem todos seguem o padrão;
X ML – eXtensible Markup Language Linguagem de marcação que pode ser utilizada como fonte de informação estruturada; Não é uma parte obrigatória do AJAX (o  X  não é realmente necessário); É um comum formato de troca de informações;
AJAX é: Uma junção de todas estas tecnologias em uma nova maneira de se desenvolver para a web
Vantagens A página pode ser atualizada em pedaços; A quantidade de informação enviada de um lado para o outro é menor; Como muito do código executa no cliente, o servidor trabalha menos;
Vantagens A chamada assíncrona não “trava” o trabalho do usuário; Atualizações podem ser carregadas sem a necessidade de um “reload”; O controle total da apresentação da página, dá um poder próximo ao de aplicações desktop;
Desvantagens Usabilidade – o botão “voltar” normalmente não funciona; O uso constante da rede, mesmo que em menor escala, pode aumentar o tempo de resposta da aplicação; É difícil internacionalizar ou tornar páginas AJAX acessíveis a pessoas com necessidades especiais;
XMLHttpRequest Objeto responsável por fazer a requisição HTTP ao servidor para atualizar a página; Implementado originalmente como uma extensão do Outlook 2000 no Internet Explorer; Posteriormente implementado em outros navegadores;
Páginas AJAX - GMail
Páginas AJAX - NetVibes
Páginas AJAX - Scriptaculous
Desenvolvendo aplicações com AJAX Muito JavaScript; Muita linguagem de programação server-side; Muito XML; Muita comunicação; Muito café; Muita paciência;
Frameworks vem ao salvamento DWR – Direct Web Remoting ZK Components AJAX 4 JSF Echo 2 GWT – Google Web Toolkit
O que é o GWT? Framework de desenvolvimento de aplicações AJAX em Java; Não é necessário saber JavaScript; Compila código Java diretamente para código JavaScript; Contém um conjunto completo de ferramentas para o teste de aplicações;
Como conseguir? Disponível para Windows, Linux e Mac; Licença Apache 2.0 (completamente livre); Um dos projetos open-source do Google;
Utilizando o GWT Cria-se um projeto; Cria-se uma aplicação; É só escrever o código Java;
Vantagens É possível utilizar qualquer “debugger” Java com o GWT; O código gerado é compatível com a maioria dos navegadores; Suporte especial ao botão “voltar” do navegador; Integração completa com o JUnit;
Vantagens Suporte a internacionalização padrão do Java; Controle total sobre a aplicação e possibilidade de extensão utilizando a JSNI (JavaScript Native Interface); (Quase) todo o código escrito é Java, nada de absurdos de JavaScript; MUITOS  componentes;
Desvantagens Compilado para outra linguagem; Usa geração de código; Não é possível utilizar todas as classes do Java, apenas um conjunto delas; Para funcionalidades avançadas, é necessário usar RPC;
Exemplo de código Aplicação de controle de viagens
Arquitetura Desenvolvimento do lado cliente da aplicação (componentes visuais); Desenvolvimento das chamadas a serviços (o servlet) que roda no servidor; Integração entre os dois lados utilizando RPC;
Conclusões AJAX é um modo de trabalho que veio para ficar; Nem todas as páginas vão se beneficiar dele; O uso indiscriminado de JavaScript pode tornar o código difícil de se manter; Frameworks melhores ainda estão surgindo para resolver outros problemas;
Referências GWT -  http://code.google.com/webtoolkit/ Crane, Dave; Pascarello, Eric; James, Darren; Ajax in Action. Editora Manning, 2005, EUA; Wikipedia –  http://en.wikipedia.org/

Google Web Toolkit

  • 1.
    AJAX e GWTAJAX em Java usando o Google Web Toolkit Maurício Linhares – [email_address] http://maujr.org/
  • 2.
    O ano 2000passou... ... E as aplicações web continuam as mesmas
  • 3.
    Problemas A interatividadede aplicações web é sofrível; Não é possível reaproveitar partes já carregadas das páginas; Muda-se uma letra, muda-se a página toda;
  • 4.
    Problemas Interfaces complexasou ações complexas são difíceis de se fazer na web; ActiveX não é uma escolha em um ambiente diverso; Aplicações desktop dão muito trabalho para evoluir;
  • 5.
  • 6.
    Mas, o queé AJAX ?
  • 7.
  • 8.
  • 9.
    Um time defutebol holandês?
  • 10.
    Ou seria ummarciano verde?
  • 11.
    Qual é aresposta certa Lombardi?
  • 12.
    AJAX é: Asynchronous J ava S cript and X ML
  • 13.
    A synchronous Umarequisiçao AJAX deve acontecer de forma assíncrona; O cliente não precisa esperar a requisição acabar; A página deve estar sempre carregada e disponível;
  • 14.
    J ava Script Linguagem de programação baseada em protótipos; Fonte das funções que fazem requisições e mudanças a partir da página; Baseada no padrão ECMA, mas nem todos seguem o padrão;
  • 15.
    X ML –eXtensible Markup Language Linguagem de marcação que pode ser utilizada como fonte de informação estruturada; Não é uma parte obrigatória do AJAX (o X não é realmente necessário); É um comum formato de troca de informações;
  • 16.
    AJAX é: Umajunção de todas estas tecnologias em uma nova maneira de se desenvolver para a web
  • 17.
    Vantagens A páginapode ser atualizada em pedaços; A quantidade de informação enviada de um lado para o outro é menor; Como muito do código executa no cliente, o servidor trabalha menos;
  • 18.
    Vantagens A chamadaassíncrona não “trava” o trabalho do usuário; Atualizações podem ser carregadas sem a necessidade de um “reload”; O controle total da apresentação da página, dá um poder próximo ao de aplicações desktop;
  • 19.
    Desvantagens Usabilidade –o botão “voltar” normalmente não funciona; O uso constante da rede, mesmo que em menor escala, pode aumentar o tempo de resposta da aplicação; É difícil internacionalizar ou tornar páginas AJAX acessíveis a pessoas com necessidades especiais;
  • 20.
    XMLHttpRequest Objeto responsávelpor fazer a requisição HTTP ao servidor para atualizar a página; Implementado originalmente como uma extensão do Outlook 2000 no Internet Explorer; Posteriormente implementado em outros navegadores;
  • 21.
  • 22.
  • 23.
    Páginas AJAX -Scriptaculous
  • 24.
    Desenvolvendo aplicações comAJAX Muito JavaScript; Muita linguagem de programação server-side; Muito XML; Muita comunicação; Muito café; Muita paciência;
  • 25.
    Frameworks vem aosalvamento DWR – Direct Web Remoting ZK Components AJAX 4 JSF Echo 2 GWT – Google Web Toolkit
  • 26.
    O que éo GWT? Framework de desenvolvimento de aplicações AJAX em Java; Não é necessário saber JavaScript; Compila código Java diretamente para código JavaScript; Contém um conjunto completo de ferramentas para o teste de aplicações;
  • 27.
    Como conseguir? Disponívelpara Windows, Linux e Mac; Licença Apache 2.0 (completamente livre); Um dos projetos open-source do Google;
  • 28.
    Utilizando o GWTCria-se um projeto; Cria-se uma aplicação; É só escrever o código Java;
  • 29.
    Vantagens É possívelutilizar qualquer “debugger” Java com o GWT; O código gerado é compatível com a maioria dos navegadores; Suporte especial ao botão “voltar” do navegador; Integração completa com o JUnit;
  • 30.
    Vantagens Suporte ainternacionalização padrão do Java; Controle total sobre a aplicação e possibilidade de extensão utilizando a JSNI (JavaScript Native Interface); (Quase) todo o código escrito é Java, nada de absurdos de JavaScript; MUITOS componentes;
  • 31.
    Desvantagens Compilado paraoutra linguagem; Usa geração de código; Não é possível utilizar todas as classes do Java, apenas um conjunto delas; Para funcionalidades avançadas, é necessário usar RPC;
  • 32.
    Exemplo de códigoAplicação de controle de viagens
  • 33.
    Arquitetura Desenvolvimento dolado cliente da aplicação (componentes visuais); Desenvolvimento das chamadas a serviços (o servlet) que roda no servidor; Integração entre os dois lados utilizando RPC;
  • 34.
    Conclusões AJAX éum modo de trabalho que veio para ficar; Nem todas as páginas vão se beneficiar dele; O uso indiscriminado de JavaScript pode tornar o código difícil de se manter; Frameworks melhores ainda estão surgindo para resolver outros problemas;
  • 35.
    Referências GWT - http://code.google.com/webtoolkit/ Crane, Dave; Pascarello, Eric; James, Darren; Ajax in Action. Editora Manning, 2005, EUA; Wikipedia – http://en.wikipedia.org/