Vraptor 3

2.517 visualizações

Publicada em

Apresentação sobre o Framework Vraptor realizada no Fisl 14

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

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

Nenhuma nota no slide

Vraptor 3

  1. 1. VRAPTOR Desenvolvimento Web em Java @agosti cristiano.agosti@gmail.com
  2. 2. Apresentação ● Mestre em Ciência da Computação ● Professor na Universidade do Oeste de Santa Catarina - Unoesc (unoesc.edu.br) ● Sócio proprietário da Camtwo Sistemas (camtwo.com.br) ● A mais de 10 anos trabalhando com Java e web ● Autor do agosti.blog.br ● Participante da comunidade oesc-livre.org Cristiano Agosti
  3. 3. Agenda ● Motivação ● Conceito ● Surgimento ● Características ● Vantagens e Desvantagens ● Por onde começar ● Funcionamento ● Estrutura de um Projeto ● Configurações ● Integração
  4. 4. Motivação
  5. 5. Conceito MVC
  6. 6. Conceito Framework É uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica.
  7. 7. Conceito "VRaptor 3 é um framework MVC para web focado no desenvolvimento ágil"
  8. 8. ● Desenvolvido por Guilherme Silveira no IME-USP em 2003 ● Versão 2 em 2004 ● Versão 3 em 2009 ● Mantido pela empresa Caelum (http://vraptor.caelum.com.br) ● Fontes https://github.com/caelum/vraptor ● Apostila http://www.caelum.com.br/apostilas QUEM DISSE QUE PROGRAMAR JAVA PRA WEB TINHA QUE SER CHATO? Surgimento
  9. 9. Características VRaptor
  10. 10. Características VRaptor
  11. 11. Características VRaptor
  12. 12. Características VRaptor
  13. 13. Características VRaptor
  14. 14. Características VRaptor
  15. 15. Características VRaptor
  16. 16. Características VRaptor
  17. 17. Vantagens ● Framework Brasileiro Open source ● Traz alta produtividade e facilidades de outros mundos (ex. Grails, Rails) ● Encapsula a lógica dos Servlets ● Baseado em Configuração por Convensão ● Utiliza Injeção de Dependência ● Construção de Ações usando Anotações
  18. 18. Desvantagens ● Maior dependência de html, css e javascript ● Não possui componentes próprios
  19. 19. Por onde começar ● http://vraptor.caelum.com.br/pt/docs/guia-de-um-minuto ● http://vraptor.caelum.com.br/pt/docs/guia-de-dez-minutos ● Java 7 JDK (http://www.oracle. com/technetwork/pt/java/javase/downloads) ● Projeto Vraptor Blank 3.0 (https://code.google. com/p/vraptor3/downloads/list) ● Eclipse for JEE develpers (Juno) (http://www.eclipse. org/downloads/packages/release/juno/sr1) ● Tomcat 7.0 (http://tomcat.apache.org/download-70.cgi) ● Postgres e PgAdmin(http://www.postgresql.org.br/downloads)
  20. 20. Funcionamento
  21. 21. Exemplo
  22. 22. Estrutura de um Projeto
  23. 23. Configurações web.xml
  24. 24. Modelo
  25. 25. Recursos ● @Resource ● @Component ● @Path ● @Post ● @Get
  26. 26. @Resource
  27. 27. @Resource http://localhost:8080/meuProjeto/mundo/boasVindas /WEB-INF/jsp/{nomeDoResource}/{pagina}.jsp /WEB-INF/jsp/mundo/boasVindas.jsp Configuração por Convensão
  28. 28. @Path http://localhost:8080/exemploVraptor/pessoa/lista
  29. 29. @Path
  30. 30. view lista.jsp
  31. 31. @Path formulario.jsp PessoaController
  32. 32. @Post formulario.jsp PessoaController
  33. 33. @Get
  34. 34. Rest A Transferência de Estado Representacional (Representational State Transfer) ou somente (REST) é uma técnica de engenharia de software para sistemas hipermídia distribuídos como a World Wide Web. (Roy Fielding)
  35. 35. Rest ● Verbos: Operações ● GET ● POST ● PUT ● DELETE ● HEAD, OPTIONS e TRACE
  36. 36. Ganhos Rest ● Menor acoplamento da view com controller ● O desenvolvedor web não precisa conhecer os métodos presentes na classe Java ● Integração Rest com outras linguagens
  37. 37. @Component
  38. 38. Escopo ● @RequestScoped - o componente é o mesmo durante uma requisição ● @SessionScoped - o componente é o mesmo durante uma http session ● @ApplicationScoped - component é um singleton, apenas um por aplicação ● @PrototypeScoped - component é instanciado sempre que requisitado.
  39. 39. Injeção de Dependência
  40. 40. Result ● Classe Result deve ser injetada no construtor ● result.include("pessoas", pessoas); ● result.include("pessoa", pessoa); ● result.redirectTo(this).formulario(); ● result.use(json()) ● result.use(xml())
  41. 41. Validator ● Classe Validator deve ser injetada no construtor
  42. 42. Validator estilo Clássico
  43. 43. Validator estilo Fluente
  44. 44. Validator estilo BeanValidator
  45. 45. Enviando para view
  46. 46. Download
  47. 47. Upload
  48. 48. Download/Upload
  49. 49. Integração
  50. 50. Integração ● Hibernate ● Adicionar jars ● persistence.xml
  51. 51. Integração ● SpringFramework ● Adicionar jars ● applicationContext.xml
  52. 52. Como Contribuir ● Participando das listas de discussões (guj e google groups) ● Colaborando com a documentação ● Reportando bugs e sugerindo novas funcionalidades ● Montando o ambiente ● Colaborando com código (github)
  53. 53. Fontes de Exemplos ● Os códigos apresentados podem ser obtidos no endereço: ● https://github.com/agosti
  54. 54. Considerações ● É preciso analisar o problema que se quer resolver (cada caso é um caso) ● Alternativa a mais ● Curva de aprendizado pequena ● Código fonte Livre ● Saiba analisar os frameworks
  55. 55. Referências ● http://vraptor.caelum.com.br/pt/docs/ ● https://github.com/caelum/vraptor ● http://www.caelum.com.br/apostila-vraptor- hibernate/
  56. 56. Cristiano Agosti cristiano.agosti@gmail.com http://agosti.blog.br @agosti

×