Um frameworkWEB MVC para desenvolvimento ágil com JAVA
Formação acadêmica
Pós-graduado em Segurança de redes e sistemas
Graduado em Sistemas de informação - Faculdade Santa Maria
Graduado em Analise e desenvolvimento de sistemas - UNIBRATEC
Oracle Certified Java Associate 5/6
Oracle Certified Java Programmer 6
Membro do PMI® Management Institute
Sobre o palestrante
Yelken H. F. Gonzales
Experiência profissional
Analista de sistemas no grupo Ferreira Costa
Atuou como desenvolvedor no portal de dados abertos do governo do estado de PE e na implantação e
desenvolvimento de inovações tecnológicas no grupo Ferreira Costa
Atuou em empresas e orgão público como: Safari Studio, BankSystem Software Builder, Prefeitura de
Olinda
Campeão no Hackathon Telefonica Vivo / Firefox OS de melhor aplicativo na Campus Party de 2013
Projeto SkyON o qual faço parte da equipe em segundo lugar no Hackathon da NASA em Recife
Motivação da palestra
Cometi vários erros em um projeto de
automação na WEB
Conceitos básicos
Frameworks WEB
O que é Framework?
‘‘
Um framework é uma abstração
que une códigos comuns entre
vários projetos de software
provendo uma funcionalidade
genérica.
• Popularidade
• Filosofia
• Sustentabilidade
• Técnica
• Segurança
• Documentação
• Licença
• Tem recurso no mercado?
• Experimente!
Critérios para escolher um framework
E MVC ?
‘‘
MVC é um padrão de
arquitetura que descreve como
três camadas de
desenvolvimento relacionam
entre si.
• Framework MVC para WEB
• Focado no desenvolvimento
rápido
• Action based
• Open source
• Iniciativa da comunidade JAVA
Brasileira
• Criado na USP em 2003
• Mantido pela CAELUM
Enfim o VRaptor!!
• 1.0 em 2003
• 2.0 em 2006 baseada no Ruby
on Rails
• 3.0 em 2009 com conceito forte
de configuração, injeção de
dependência, annotations e
serviços WEB
• 4.0 em 2014 com uma evolução
maior em CDI
Versões do VRaptor
• Alta produtividade
• Baixa curva de aprendizagem
• Testabilidade
• Economia de tempo no projeto e
consequentemente dinheiro
• Flexibilidade
• Documentação em português
Vantagens
•Não possui componentes próprios como o JSF
•Maior dependência do HTML, CSS e Javascript
Desvantagens
•Aprenda HTML, CSS e JS.
•Jquery ,Jquery UI, YUI, ExtJS e AngularJS
•Use o VRaptor!
Solução para as desvantagens
Convention over
configuration
web.xml
Recursos
Controllers
@Resource
public class ProdutosController {

 

 private ProdutoDao dao;
!

 public List<Produto> lista() {

 
 return dao.listaTodos();

 }
}
View
<ul>

 <c:forEach items=“${produtoList}” var=“produto">

 
 <li> ${produto.id} - ${produto.nome} </li>

 </c:forEach>
</ul>
Injeção de dependência
@Component
public class ProdutoDao { //... }
!
@Resource
public class ProdutosController {

 private ProdutoDao dao;

 

 public ProdutosController(ProdutoDao dao) {

 
 this.dao = dao;

 }
}
Redirecionamentos
public void adiciona(Produto produto){

 dao.adiciona(produto);

 result.redirectTo(this).lista();
}
Validação
public void adiciona(Funcionario funcionario) {

 if (funcionario.getNome().isEmpty()) {

 
 validator.add(new ValidationMessage(“nome.invalido","erro"));

 }

 

 validator.onErrorUsePageOf(this).formulario();

 dao.adiciona(funcionario);
};
REST
public class ProdutosController {
!
@Get(“/produtos")
public List<Produto> lista() {…}
!
@Post(“/produtos")
public void adiciona(Produto produto) {…}
!
@Get(“/produtos/{produto.id}")
public void visualiza(Produto produto) {…}
!
}
JSON e XML (AJAX)
public void loadJson(Cliente cliente {

 result.use(json()).from(cliente).serialize();
}
!
public void loadXml(Cliente cliente) {

 result.use(xml()).from(cliente).serialize();
}
Vamos a parte
prática
• github.com/caelum/vraptor
• caelum-vraptor@googlegroups.com
• http://vraptor.caelum.com.br/
comunidade.jsp
Comunidade
Dúvidas
@yelkezin Yelken Heckman ylk.com.br
Obrigado!

VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA

  • 1.
    Um frameworkWEB MVCpara desenvolvimento ágil com JAVA
  • 2.
    Formação acadêmica Pós-graduado emSegurança de redes e sistemas Graduado em Sistemas de informação - Faculdade Santa Maria Graduado em Analise e desenvolvimento de sistemas - UNIBRATEC Oracle Certified Java Associate 5/6 Oracle Certified Java Programmer 6 Membro do PMI® Management Institute Sobre o palestrante Yelken H. F. Gonzales Experiência profissional Analista de sistemas no grupo Ferreira Costa Atuou como desenvolvedor no portal de dados abertos do governo do estado de PE e na implantação e desenvolvimento de inovações tecnológicas no grupo Ferreira Costa Atuou em empresas e orgão público como: Safari Studio, BankSystem Software Builder, Prefeitura de Olinda Campeão no Hackathon Telefonica Vivo / Firefox OS de melhor aplicativo na Campus Party de 2013 Projeto SkyON o qual faço parte da equipe em segundo lugar no Hackathon da NASA em Recife
  • 3.
    Motivação da palestra Cometivários erros em um projeto de automação na WEB
  • 4.
  • 5.
  • 6.
    O que éFramework? ‘‘ Um framework é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica.
  • 7.
    • Popularidade • Filosofia •Sustentabilidade • Técnica • Segurança • Documentação • Licença • Tem recurso no mercado? • Experimente! Critérios para escolher um framework
  • 8.
    E MVC ? ‘‘ MVCé um padrão de arquitetura que descreve como três camadas de desenvolvimento relacionam entre si.
  • 9.
    • Framework MVCpara WEB • Focado no desenvolvimento rápido • Action based • Open source • Iniciativa da comunidade JAVA Brasileira • Criado na USP em 2003 • Mantido pela CAELUM Enfim o VRaptor!!
  • 10.
    • 1.0 em2003 • 2.0 em 2006 baseada no Ruby on Rails • 3.0 em 2009 com conceito forte de configuração, injeção de dependência, annotations e serviços WEB • 4.0 em 2014 com uma evolução maior em CDI Versões do VRaptor
  • 11.
    • Alta produtividade •Baixa curva de aprendizagem • Testabilidade • Economia de tempo no projeto e consequentemente dinheiro • Flexibilidade • Documentação em português Vantagens
  • 12.
    •Não possui componentespróprios como o JSF •Maior dependência do HTML, CSS e Javascript Desvantagens
  • 13.
    •Aprenda HTML, CSSe JS. •Jquery ,Jquery UI, YUI, ExtJS e AngularJS •Use o VRaptor! Solução para as desvantagens
  • 14.
  • 15.
  • 16.
  • 17.
    Controllers @Resource public class ProdutosController{ private ProdutoDao dao; ! public List<Produto> lista() { return dao.listaTodos(); } }
  • 18.
    View <ul> <c:forEach items=“${produtoList}”var=“produto"> <li> ${produto.id} - ${produto.nome} </li> </c:forEach> </ul>
  • 19.
    Injeção de dependência @Component publicclass ProdutoDao { //... } ! @Resource public class ProdutosController { private ProdutoDao dao; public ProdutosController(ProdutoDao dao) { this.dao = dao; } }
  • 20.
    Redirecionamentos public void adiciona(Produtoproduto){ dao.adiciona(produto); result.redirectTo(this).lista(); }
  • 21.
    Validação public void adiciona(Funcionariofuncionario) { if (funcionario.getNome().isEmpty()) { validator.add(new ValidationMessage(“nome.invalido","erro")); } validator.onErrorUsePageOf(this).formulario(); dao.adiciona(funcionario); };
  • 22.
    REST public class ProdutosController{ ! @Get(“/produtos") public List<Produto> lista() {…} ! @Post(“/produtos") public void adiciona(Produto produto) {…} ! @Get(“/produtos/{produto.id}") public void visualiza(Produto produto) {…} ! }
  • 23.
    JSON e XML(AJAX) public void loadJson(Cliente cliente { result.use(json()).from(cliente).serialize(); } ! public void loadXml(Cliente cliente) { result.use(xml()).from(cliente).serialize(); }
  • 24.
  • 25.
    • github.com/caelum/vraptor • caelum-vraptor@googlegroups.com •http://vraptor.caelum.com.br/ comunidade.jsp Comunidade
  • 26.
  • 27.
    @yelkezin Yelken Heckmanylk.com.br Obrigado!