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

Post on 24-May-2015

617 views 6 download

description

Desenvolver rápido em JAVA só depende de você, conheça o VRaptor.

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

Um framework WEB 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 palestranteYelken 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!