Bb gwt

945 visualizações

Publicada em

GWT

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
945
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
12
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Bb gwt

  1. 1. Lúcio Camilo e Fulvio Longhi <br />Google Web ToolkitUtilizando o GWT para Desenvolvimento WEB<br />Maio/2011<br />
  2. 2. Informações<br />HTML e Javascript<br />GWT<br />Como Funciona?<br />Quem está Usando?<br />Ferramentas<br />Componentes<br />Plataforma<br />Miscelânea<br />Pontos Fracos<br />Referências<br />Perguntas<br />Agenda<br />
  3. 3.
  4. 4. Isto é Quake 2 portado para o GWT, usando somente HTML5 e CSS3. <br />Sem Flash, sem instalação. Apenas uma app Web de nova geração.<br />
  5. 5. Portado pelos googlers<br />GWT compilado para HTML5<br />Sem Flash / Plugin<br />Carregamento Dinâmico<br />Multiplayer<br />Audio<br />Tempo Real<br />Quer jogar? <br />http://tatari.se:8080/GwtQuake.html<br />
  6. 6. http://gwt-phoenix.appspot.com/<br />
  7. 7. HTML é Programação?<br />
  8. 8. HTML é Programação?<br />NÃO<br />
  9. 9. não programático (feito para desenvolver páginas)<br />bom suporte ao mostrar páginas com auxílio do CSS<br />nenhum suporte a componentes dinâmicos <br />formulário pobre (somente texto)<br />focado em texto e hyperlinks<br />HTML é Programação?<br />
  10. 10. Quer dinamismo, use Javascript...<br />
  11. 11. ... mas lide com:<br />Problemas de compatibilidade entre Browsers<br />Tipagem Fraca (Prototype)<br />Estruturação da linguagem não evoluiu <br />function == panacéia<br />Pode-se remediar com JQuery, etc.<br />Performance<br />cada browser um truque<br />Quer dinamismo, use Javascript...<br />
  12. 12. Javascript não pode competir com linguagens mais maduras... por mais que se esforce.<br />
  13. 13. JSP, Struts, Taglibs e outras tecnologias não dão o dinamismo que uma aplicação web precisa, sem o programador sujar as mãos com Javascript. <br />Duvida?<br />Outras soluções?<br />
  14. 14. Tente construir um homebroker, ou cliente de email, ou uma aplicação com Drag’n Drop somente com aquelas tecnologias. (Sem codificar Javascript!)<br />Outras soluções?<br />
  15. 15. Como solucionar esse dilema?<br />X<br />
  16. 16. Como solucionar esse dilema?<br />
  17. 17. Delphi/Swing para web<br />O que é GWT?<br />+<br />
  18. 18. Delphi/Swing para web<br />A missão do GWT é melhorar radicalmente a experiência para os usuários de sistemas, possibilitando os desenvolvedores usarem ferramentas java existentes para construir aplicações com ajax facilmente para qualquer browser moderno<br />fevereiro de 2006 - GWT Team<br />O que é GWT?<br />
  19. 19. Imagine: <br />tratar o cliente (browser) como um desktop<br />usar os mesmos beans do servidor no cliente<br />adicionar listeners aos componentes<br />tratar toda a validação no cliente<br />Máscara, Regex, Format... tudo sem consultar o server<br />invocar o servidor arbitrariamente<br />sem plugin no browser ou coisa parecida<br />100% opensource (Apache 2.0)<br />O que é GWT?<br />
  20. 20. Imagine: <br />tratar o cliente (browser) como um desktop<br />usar os mesmos beans do servidor no cliente<br />adicionar listeners aos componentes<br />tratar toda a validação no cliente <br />Máscara, Regex, Format... tudo sem consultar o server<br />invocar o servidor arbitrariamente<br />sem plugin no browser ou coisa parecida<br />100% opensource (Apache 2.0)<br />E TUDO ISSO PROGRAMANDO EM JAVA!<br />O que é GWT?<br />Isso é GWT!<br />
  21. 21. Como funciona?<br />
  22. 22. Como funciona?<br />
  23. 23. Como funciona?<br />
  24. 24. Múltipla Compilação Simultânea<br />
  25. 25. “We definitely do not view development in <br />GWT as a form of compromise. We firmly <br />believe that GWT should generate better <br />JavaScript code than you would write by <br />hand, and will generally choose to avoid <br />making concessions to convenience if they <br />hurt the performance of the resulting AJAX <br />code. ”<br />GWT Team<br />Javascript compilado?<br />
  26. 26. Quem está usando?<br />
  27. 27. Quem está usando?<br />
  28. 28. Quem está usando?<br />
  29. 29. Java5 apenas, nada mais!<br />Suporte a maior parte de toda a biblioteca básica (java.lang.*, java.utils.*, System, etc.)<br />Libs do gwt para manipular os elementos visuais <br />DOM, widgets, layouts, panel, button<br />Criação fácil de componentes personalizados através de java extends<br />Todos os listeners possíveis no browser mapeados <br />OnWindowResize, OnMouseOver, OnClose, OnClick, OnDoubleClick, OnScroll, OnFocus<br />Codificação<br />
  30. 30. Plugin oficial do Google para Eclipse<br />Criar, rodar, compilar<br />Integrado com a nuvem do google<br />Plugin para NetBeans<br />GWT Designer do Google para Eclipse<br />Conjunto de ferramentas para teste, debug e métricas<br />Ferramentas<br />
  31. 31. Ferramentas<br />
  32. 32. Ferramentas<br />
  33. 33.
  34. 34. Isso mesmo! Debug direto no Java!<br />
  35. 35.
  36. 36. Todos os serviços (apis) do Google possuem bibliotecas prontas para ser usados com GWT<br />Serviços Encapsulados<br />
  37. 37.
  38. 38. Gwt também é uma plataforma para desenvolvimento de componentes (semelhante ao JSF). Apesar disso possui uma quantidade considerável de componentes.<br />Componentes<br />
  39. 39. Componentes<br />
  40. 40. Ainda possui uma grande quantidade de empresas que disponibilizam componentes opensource, dentre elas, as mais importantes:<br />Vaadin<br />SmartGWT<br />GXT (Sencha)<br />Fora isso, ainda possui quase 10k bibliotecas opensource disponíveis - Google Code e SourceForge<br />Componentes<br />
  41. 41.
  42. 42.
  43. 43.
  44. 44. Plataforma<br />
  45. 45. Parser de xml e json nativo<br />Logging<br />Drag’n Drop<br />Ajax e Comet <br />Invocação de Métodos no Servidor (RPC)<br />Como retorno, posso esperar um objeto rico (ex.: Bean, EJB3, etc.) e usá-lo na interface. <br />Plataforma<br />
  46. 46. RPC<br />ContaBO<br />.listaContasPorPrefixo(int prefixo)<br />return ArraList<ContaBean><br />
  47. 47. i18n<br />Compartilhamento de beans <br />Convivência de família de componentes <br />Isso porque todos foram construídos extendendo a mesma classe visual Widget.<br />Sprites Image CSS e Inline Image (data://)    <br />Plataforma<br />
  48. 48. Sprites Image CSS e Inline Image<br />
  49. 49. Suporte a compilação para HTML5<br />Reutilização de ferramentas para testes de Java (Junit, PMD, Findbugs)<br />Injeção de Dependência<br />Suporte a Android e iOS<br />Maven<br />Libs de componentes são simples jars<br />EventoscomplexoscomoMouseRightClick, DoubleClick, etc.<br />Miscelânea <br />
  50. 50. Herança, Polimorfismo, Sobrecarga, e todas as caracteristicas das libs básicas do java<br />Suporte ao "botão voltar" no Browser e refresh<br />Threads!<br />Suporte desde o IE6 <br />Integra com o Seam<br />Não depende de appServer Java<br />Miscelânea <br />
  51. 51. Aprender a realmente programar UI<br />Listeners, Eventos, Componentes, Layout<br />Não é uma spec<br />Obs.: as bibliotecas de componentes JSF também não são<br />O google pode desistir do projeto algum dia?<br />Pode, mas a tecnologia já tomou vulto suficiente para andar por si só (ainda mais sendo totalmente opensource)<br />Pontos Fracos<br />
  52. 52. Todas as bibliotecas e tecnologias listadas nessa apresentação são opensource (exceto Delphi  )<br />Observação<br />
  53. 53. GWT é um marco no desenvolvimento web<br />Não faça mais páginas, faça aplicações<br />Não serve para todos os problemas!<br />Em sistemas com interfaces simples (uma página simples, ñ uma app) não convém usar GWT<br />Opinião<br />
  54. 54. http://demo.vaadin.com/ReindeerTheme/<br />http://demo.vaadin.com/VaadinTunesLayout/<br />http://www.sencha.com/examples/explorer.html<br />http://gwt.google.com/samples/Showcase/Showcase.html<br />http://www.liveleader.com/a/livedemo/?l=en<br />http://www.gminet.com.br/wfinancas/financeiro.do<br />http://4.latest.testchannelll.appspot.com/ <teste, teste><br />Demos<br />
  55. 55. www.jornaljava.com<br />www.portalgwt.com<br />http://www.google.com/events/io/2010/sessions.html<br />http://www.google.com/events/io/2009/sessions.html<br />http://gaejexperiments.wordpress.com/<br />http://code.google.com/webtoolkit/<br />http://googlewebtoolkit.blogspot.com/<br />http://www.ongwt.com/<br />http://turbomanage.wordpress.com/<br />Referências<br />
  56. 56. Livros<br />
  57. 57. Livros<br />
  58. 58. Obrigado<br />Perguntas?<br />

×