desenvolvimento produtivo com spring roo

22
Globalcode – Open4education Desenvolva aplicativos Java Web em pouco passos com Spring Roo Eder Magalhães twitter.com/edermag www.yaw.com.br SESTINFO 2012 Wednesday, May 16, 12

Upload: eder-magalhaes

Post on 11-Jun-2015

2.123 views

Category:

Sports


0 download

DESCRIPTION

Apresentação sobre desenvolvimento produtivo para web com Java, utilizando o Spring Roo, na universidade Metodista durante a 9a SESTINFO.

TRANSCRIPT

Page 1: Desenvolvimento Produtivo com Spring Roo

Globalcode  –  Open4education

Desenvolva aplicativos Java Web em pouco passos com Spring Roo

Eder Magalhãestwitter.com/edermag

www.yaw.com.br

SESTINFO 2012

Wednesday, May 16, 12

Page 2: Desenvolvimento Produtivo com Spring Roo

Globalcode  –  Open4education

AgendaMercado e oportunidades;Desafios em relizar uma idéia;

Características do Spring Roo; Demo I: primeiro projeto;

Tecnologias ao redor do Spring Roo;Demo II: relacionamento entre entidades;Como o Spring Roo gera código Java;

Demo III: Spring + JSF 2;Engenharia reversa;

Links;

Wednesday, May 16, 12

Page 3: Desenvolvimento Produtivo com Spring Roo

Globalcode  –  Open4education

Oportunidades

O Brasil é a bola da vez;

Mercado aquecido;

Startups brotando em todos os lugares;

Wednesday, May 16, 12

Page 4: Desenvolvimento Produtivo com Spring Roo

Globalcode  –  Open4education

Colocar em prática!

Realizar é uma idéia não é fácil;

A escolha da tecnologia é um dos desafios!

Wednesday, May 16, 12

Page 5: Desenvolvimento Produtivo com Spring Roo

Java é uma ótima escolha!Tecnologia madura e eficiente;

Adotada em grande escala;Utilizada em diversos cenários;

Oferece diversas tecnologias complementares;Viabiliza integração a outras linguagens;

Globalcode  –  Open4education

A escolha da tecnologia

Wednesday, May 16, 12

Page 6: Desenvolvimento Produtivo com Spring Roo

Java é uma ótima escolha!Tecnologia madura e eficiente;

Adotada em grande escala;Utilizada em diversos cenários;

Oferece diversas tecnologias complementares;Viabiliza integração a outras linguagens;

Globalcode  –  Open4education

A escolha da tecnologia

Wednesday, May 16, 12

Page 7: Desenvolvimento Produtivo com Spring Roo

Criar software de qualidade e eficiente;Escalável, seguro e rápido;

Ágil, a prova de mudanças no decorrer do projeto;E principalmente:

Desenvolver com produtividade!

Globalcode  –  Open4education

Algumas premissas

Wednesday, May 16, 12

Page 8: Desenvolvimento Produtivo com Spring Roo

O Spring Roo atende a essas premissas;Desenvolvimento web, utilizando Java, com alta produtividade;

Globalcode  –  Open4education

Spring Roo

Wednesday, May 16, 12

Page 9: Desenvolvimento Produtivo com Spring Roo

Text based: shell com comandos alto nível;Fácil de usar;

Elimina a burocracia de projetos Java;Utiliza algumas das melhores tecnologias (frameworks) Java;

Adota modelo de implementação baseado em patterns;Extensível;Integrado a IDE (Eclipse / Spring Tools Suite)

Globalcode  –  Open4education

Características do Roo

Wednesday, May 16, 12

Page 10: Desenvolvimento Produtivo com Spring Roo

Vamos experimentar o Roo;Alguma sugestão para desenvolvimento da aplicação Demo?

Globalcode  –  Open4education

Chega de teoria! Demo I

Wednesday, May 16, 12

Page 11: Desenvolvimento Produtivo com Spring Roo

roo> project --topLevelPackage br.com.yaw.pizzametoroo> persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY

roo> entity jpa --class ~.model.Pizzaroo> field string --fieldName sabor --notNull --sizeMin 3roo> field number --type java.lang.Double --fieldName preco

roo> web mvc setuproo> controller all --package ~.webperform package

Globalcode  –  Open4education

Demo I: comandos executados

Wednesday, May 16, 12

Page 12: Desenvolvimento Produtivo com Spring Roo

Globalcode  –  Open4education

Tecnologias suportadas pelo Roo

Web  MVCSecurityJavaScript

JPA

JUnitDojo

JSF

JSF

PrimeFaces

Wednesday, May 16, 12

Page 13: Desenvolvimento Produtivo com Spring Roo

Também agiliza o deploy e a implatanção;Geração de código é: Ativa ou Passiva;

Suporte a diferentes soluções para front-end;Framework web baseado em REST;

Conversor de Java para JSON e vice-versa;Gera artefatos para testes unitários e integrado;A qualquer momento pode ser desligado;

Globalcode  –  Open4education

Outras características

Wednesday, May 16, 12

Page 14: Desenvolvimento Produtivo com Spring Roo

Criar relacionamento com outra entidade;Analisar os artefatos gerado pelo Roo;

Globalcode  –  Open4education

Demo II: complementar nosso aplicativo

Wednesday, May 16, 12

Page 15: Desenvolvimento Produtivo com Spring Roo

roo> perform eclipseroo> entity jpa --class ~.model.Receita

roo> field string descricao

roo> focus --class ~.model.Pizza

roo> field reference --fieldName receita --type ~.model.Receita

roo> controller all --package ~.web#deploy pelo eclipse

Globalcode  –  Open4education

Demo II: comandos executados

Wednesday, May 16, 12

Page 16: Desenvolvimento Produtivo com Spring Roo

Globalcode  –  Open4education

Gerador de código

RooAdd-on

AspectJCompiler

Produto.javapreco: double

Produto.classpreco: double

getPreco()...setPreco(...)

Produto_Roo_JavaBean.aj

getPreco()...SetPreco(...)

AspectJ  IDTs lê

escreve

escreve

Wednesday, May 16, 12

Page 17: Desenvolvimento Produtivo com Spring Roo

Utilizar a mesma idéia de aplicação, mas utilizando JSF 2 (+ Primefaces) como framework web;

Globalcode  –  Open4education

Demo III: Spring Roo com JSF 2

Wednesday, May 16, 12

Page 18: Desenvolvimento Produtivo com Spring Roo

roo> project --topLevelPackage br.com.yaw.pizzameto2roo> persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY

roo> entity jpa --class ~.model.Pizzaroo> field string --fieldName sabor --notNull --sizeMin 3roo> field number --type java.lang.Double --fieldName preco

roo> web jsf setup --implementation ORACLE_MOJARRA --theme BLUESKY roo> web jsf all --package ~.jsfroo> perform package

Globalcode  –  Open4education

Demo III: comandos executados

Wednesday, May 16, 12

Page 19: Desenvolvimento Produtivo com Spring Roo

Gerar um cadastro a partir de uma tabela:

roo> project --topLevelPackage br.com.yaw.rev

roo> persistence setup --provider HIBERNATE

--database MYSQL --databaseName test

--hostName root --password root

roo> database reverse engineer --schema test

--package ~.model --includeTable “produto”

Globalcode  –  Open4education

Engenharia reversa!

Wednesday, May 16, 12

Page 20: Desenvolvimento Produtivo com Spring Roo

Projeto que modifica os tag files do Roo (Spring MVC), para utilizar JQuery ao invés do Dojo e Bootstrap (css);

http://github.com/edermag/roo-jquery

Globalcode  –  Open4education

Spring Roo + JQuery + BootStrap

Wednesday, May 16, 12

Page 21: Desenvolvimento Produtivo com Spring Roo

Globalcode  –  Open4education

Links

http://www.springsource.org/roo http://blog.globalcode.com.br/search/label/Spring%20Roo http://forum.springsource.org/forumdisplay.php?f=67 http://static.springsource.org/spring-roo/reference/html-

single/index.html http://blog.springsource.com/category/roo/ http://www.yaw.com.br/screencast http://github.com/edermag

Wednesday, May 16, 12

Page 22: Desenvolvimento Produtivo com Spring Roo

Globalcode  –  Open4education

[email protected]/edermag

Obrigado !

Wednesday, May 16, 12