![Page 1: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/1.jpg)
Desenvolvimento web em poucos passos
Eder Magalhães
@edermag
![Page 2: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/2.jpg)
Agenda
ü Qual é o seu foco em TI?
ü Pontos importantes na escolha da linguagem;
ü Java é uma opção, mas existem muitos frameworks e configurações;
ü A proposta do JBoss Forge;
ü Vamos criar um projeto web, com Forge, em 7 passos;
ü Executar e testar o projeto;
ü Links e complementos;
![Page 3: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/3.jpg)
Oportunidades
ü O mercado de desenvolvimento de soPware é excelente;
ü A demanda por novas soluções é crescente;
ü Startups nascendo todos os dias, em diversos cantos do Brasil;
![Page 4: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/4.jpg)
Tenho uma idéia, mas…
ü Existem várias técnologias…
ü Qual escolher?
ü O ideal seria uma tecnologia simples, eficiênte e poderosa.
ü E, principalmente, que viabilize a criação do produto!
![Page 5: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/5.jpg)
Ou, quero trabalhar com dev, mas…
ü Existem várias técnologias…
ü Qual escolher?
ü O ideal seria uma tecnologia simples, eficiênte e poderosa.
ü E, principalmente, que ofereça uma boa remuneração!
![Page 6: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/6.jpg)
E o Java (EE)
ü Uma suíte completa para desenvolvimento corpora]vo;
ü Atende o desenvolvimento: ü Web; ü Componentes de persistência; ü Componentes de integração; ü Segurança , escalabilidade …
![Page 7: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/7.jpg)
Outros pontos
ü Plataforma consolidada;
ü Muita documentação (material bom e gratuito);
ü Conta com uma grande comunidade;
ü Apoiada por grandes players;
![Page 8: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/8.jpg)
Mas …
ü São tantas tecnologias: ü JSF, JSP, EL, Servlet, CDI, EJB, JPA, Bean Validator, JMS, JAX-‐RS,
JAX-‐WS, Hibernate, Spring, Struts, Wicket, GWT, Tapestry, Freemaker… ufa;
ü E as configurações???
ü Montar a estrutura de desenvolvimento é buracrá]co;
ü Quais componentes u]lizar?
ü Como testar?
![Page 9: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/9.jpg)
Não se esqueça…
ü Sistema operacional;
ü Ambiente de desenvolvimento – IDE;
ü Banco de dados;
ü Build;
![Page 10: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/10.jpg)
Forge
ü Ferramenta RAD para desenvolvimento Java EE;
ü Disponibiliza um “shell” alto-‐nível;
ü Facilita a construção de projeto;
ü Facilita o uso e configuração de frameworks;
ü Facilita a definição de testes automa]zados;
![Page 11: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/11.jpg)
Forge++
ü Compá]vel com o modelo de desenvolvimento ágil;
ü Segue o conceito de plugin/extensões;
ü É e promove o uso de tecnologias open source;
ü Projeto JBoss, man]do pela Red Hat;
![Page 12: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/12.jpg)
Primeiro passo, iniciando o projeto
ü Criar um novo projeto;
$ new-project --named {nome} --topLevelPackage {br.com.projeto} --projectFolder {/diretorio}
![Page 13: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/13.jpg)
Segundo passo, o ]po de aplicação
ü Escolher o modelo/]po de aplicação (web):
$ scaffold setup
![Page 14: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/14.jpg)
Terceiro passo, a persistência
ü Indicar o provider JPA:
$ persistence setup --provider {JPA Impl} --container { ... }
![Page 15: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/15.jpg)
Quarto passo, a en]dade
ü Definir uma classe en]dade (modelo) do sistema:
$ entity --name {nome}
![Page 16: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/16.jpg)
Quinto passo, o resto das camadas
ü Vamos usar o conceito scaffold para construir os componentes do model ao front-‐end (por en]dade criada):
$ scaffold from-entity
![Page 17: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/17.jpg)
Sexto passo, configurar o server
ü No exemplo vou demonstrar como usar o JBoss AS (v. 7):
$ forge install-plugin jboss-as-7 $ as7 setup
![Page 18: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/18.jpg)
Pronto!
ü Agora é só executar o projeto:
$ build $ as7 deploy
![Page 19: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/19.jpg)
Running
![Page 20: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/20.jpg)
Uma mudança
ü Criar um serviço rest
$ rest setup $ rest endpoint-from-entity –contentType application/json
![Page 21: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/21.jpg)
Teste, sempre!
ü Oferece integração com o projeto Arquillian;
$ arquillian setup $ arquillian create-teste {classe}
![Page 22: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/22.jpg)
O que mais?
ü Deploy em cloud (OpenshiP) – hqp://goo.gl/fH08XD
![Page 23: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/23.jpg)
Log de tudo $ new-project –-named webdrive --topLevelPackage br.com.yaw.webdrive --projectFolder . $ scaffold setup $ persistence setup –-provider HIBERNATE –-container JBOSS_AS7 $ entity –-named Fabricante $ field string --named nome $ entity --named Marca $ field string --named descricao $ entity --named Veiculo $ field string --named placa $ field string --named renavam $ field manyToOne --named marca –fieldType br.com.yaw.webdrive.model.Marca $ field manyToOne --named fabricante –fieldType br.com.yaw.webdrive.model.Fabricante $ scaffold from-entity (navegar pelas três entidade no shell) $ as7 setup $ build $ as7 deploy
![Page 24: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/24.jpg)
Links
ü hqp://forge.jboss.org/
ü hqps://github.com/forge/core
ü hqp://forge.jboss.org/docs/using/samples.html#content
ü hqps://twiqer.com/JBossForge
![Page 25: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/25.jpg)
Vídeo aulas / projetos exemplo
ü hqp://www.yaw.com.br/screencast
ü hqp://www.yaw.com.br/open/projetos/
![Page 26: Desenvolva uma app Java web em poucos passos, com o Forge](https://reader034.vdocuments.pub/reader034/viewer/2022051515/558cb5c8d8b42ad6408b457f/html5/thumbnails/26.jpg)
Obrigado!
ü hqps://twiqer.com/edermag
ü hqp://github.com/edermag
ü hqp://edermag.blogspot.com.br/
ü hqps://bitbucket.org/edermag/