Java Web Fácil com VRaptor
Upcoming SlideShare
Loading in...5
×
 

Java Web Fácil com VRaptor

on

  • 1,872 views

Palestra apresentada no FLISOL 2013 em Goiânia.

Palestra apresentada no FLISOL 2013 em Goiânia.

Statistics

Views

Total Views
1,872
Views on SlideShare
1,871
Embed Views
1

Actions

Likes
3
Downloads
37
Comments
1

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Quemédesenvolvedor?Quemjáprogramaem Java, Java pra Web? Oquejásabem do Vraptor?
  • Vocêrecebeosparâmetros no request e devolve no responde.Precisa converter todosostiposqueprecisar.Imagine desenvolvertodasua app web escrevendo o html nestas string’s!
  • Imagine desenvolvertodasua app web escrevendo o html nestas string’s!
  • Alguémconhecealgum framework Java web?
  • Quemsabe a diferença?
  • Encapsula a web. Écomo se fosse desktop.Mas web éigual a desktop? E o HTTP? GET, POST, DELETE, PUT? Integração com outros sistemas? REST?Produtivo. Sóseguiros docs do Primefaces.E oserrosfrom hell? O clientequerumatabelaqueaparecegirandonatela.Especificação. Assimficamosindependentes.E a demorapara se atualizar? E o processamento no server?
  • Componenteslindões!E a customização do cliente? E o Web Designer queelecontratoupracriar o layout comoelequeria?Curva de aprendizadobaixa.E o ciclo de vida? Vocês o conhecembem?Nãoprecisa saber JS, HTML e CSS! Mas o cliente da suaaplicação (browser, mobile) tambémnãoprecisa? Entãoporqueexiste a W3C e ospadrões web? E o Google e seusmotores de busca?
  • Voltar Slides…JSF quandobemusadopodeserutilizadoparacriaraplicaçõesincríveis e performáticas.O problemaéque, diferente de outros frameworks, existe a ilusão de queeleéfácil.Quasetodososproblemas/erroscitadosnãosãocometidospelosmaisexperientes.
  • Encapsula a web. Écomo se fosse desktop.Mas web éigual a desktop? E o HTTP? GET, POST, DELETE, PUT? Integração com outros sistemas? REST?Produtivo. Sóseguiros docs do Primefaces.E oserrosfrom hell? O clientequerumatabelaqueaparecegirandonatela.Especificação. Assimficamosindependentes.E a demorapara se atualizar? E o processamento no server?
  • Componenteslindões!E a customização do cliente? E o Web Designer queelecontratoupracriar o layout comoelequeria?Curva de aprendizadobaixa.E o ciclo de vida? Vocês o conhecembem?Nãoprecisa saber JS, HTML e CSS! Mas o cliente da suaaplicação (browser, mobile) tambémnãoprecisa? Entãoporqueexiste a W3C e ospadrões web? E o Google e seusmotores de busca?
  • Componenteslindões!E a customização do cliente? E o Web Designer queelecontratoupracriar o layout comoelequeria?Curva de aprendizadobaixa.E o ciclo de vida? Vocês o conhecembem?Nãoprecisa saber JS, HTML e CSS! Mas o cliente da suaaplicação (browser, mobile) tambémnãoprecisa? Entãoporqueexiste a W3C e ospadrões web? E o Google e seusmotores de busca?

Java Web Fácil com VRaptor Java Web Fácil com VRaptor Presentation Transcript

  • SOBRE MIM5 anos de experiência em Desenvolvimento deSoftware, sendo 3 deles com JavaDesenvolvendo em Java, Scala e GroovyOracle Certified Java SE 6 Programmer ( OCJP 6 )Instrutor de Cursos JavaFundador do What’s Job?!JUGLeader do Gojava
  • SOBRE VOCÊS?
  • AGENDAComo é aWeb com Java?Action Based x Component BasedOs preferidos: JSF e PrimefacesOVRaptor!Vantagens e DesvantagensVisão Geral doVRaptorRecursos doVraptorOMG! Como aprender mais?
  • COMO É AWEB COM JAVA?Baseado em Servlets, Filters, Request e ResponseServlets foram a primeira forma de criar páginasdinâmicas com JavaCriava-se um Servlet por página HTMLServlet significa “servidorzinho” e possui afunção de receber uma request e devolver umresponse
  • SHOW ME THE CODE!public class OiMundo extends HttpServlet {protected void service(HttpServletRequest request,HttpServletResponse response) throwsServletException, IOException {String nome= request.getParameter("nome");PrintWriter out = response.getWriter();out.println("<html>");out.println("<body>");out.println("Olá " + nome);out.println("</body>");out.println("</html>");}}
  • Está me zoando? Ea manutenção?Produtividade?
  • OS SERVLETSO uso dos Servlets ainda evoluiu bastanteSurgiram os JPS`s e não era mais uma boaprática escrever HTML dentro dos ServletsOs Servlets passaram a ser um controladorSeparação da lógica de apresentação, da lógicade negócio e infraestrutura
  • FRAMEWORKS WEBMVC
  • ACTION BASED X COMPONENT BASED
  • OS PREFERIDOS: JSF E PRIMEFACESEncapsula a web. É como se fosse desktop.Especificação.Assim ficamos independentes.Produtivo. Só seguir os docs do Primefaces.
  • OS PREFERIDOS: JSF E PRIMEFACESComponentes lindões!Curva de aprendizado baixa.Não precisa saber JS, HTML e CSS!
  • SERÁ QUE É TUDO LINDO ASSIM?
  • OS PREFERIDOS: JSF E PRIMEFACESEncapsula a web. É como se fosse desktop.Mas web é igual a desktop? E o HTTP, GET,POST, PUT, DELETE? REST?Especificação.Assim ficamos independentes.Ser especificão é mesmo um critério tão forte?Na velocidade que precisamos?Produtivo. Só seguir os docs do Primefaces.E os componentes que ele não tem?
  • OS PREFERIDOS: JSF E PRIMEFACESComponentes lindões!E a customização fina que o cliente pediu?E o Web Designer que ele contratou?Curva de aprendizado baixa.Então você entende bem o ciclo de vida?Não precisa saber JS, HTML e CSS!Seu browser (desktop, mobile) entende o que?
  • JSF NÃO É PRA INICIANTES
  • MAS NÃO ERA SOBREVRAPTOR?!
  • VRAPTOR E VANTAGENSFramework MVC brasileiro e open source.Traz alta produtividade e facilidades de outrosmundos (ex. Grails, Rails).Encapsula os Servlets, Request e Response.Baseado em Convention Over Configuration.Utiliza Injeção de Dependências.Testável.Altamente flexível.
  • VRAPTOR E VANTAGENSDocumentação em português. Desenvolvedoresestão a um tópico do GUJ de distância.Baixa curva de aprendizado.Não interfere em como serão suas outrascamadas (mas te ajuda bastante com elas). Integração com outros sistemas (SOA, REST).Plugins, scaffold, baseado nas melhores práticas.
  • DESVANTAGENS DOVRAPTORMaior dependência de HTML, CSS e JS.Pouco utilizado em nosso mercado.
  • SOLUÇÃO PARA AS DESVANTAGENSAprenda HTML, CSS e JS. Para desenvolverboas app’s pra web, que tal aprender web?Twitter Bootstrap, JQuery, JQuery UI,YUI,ExtJS,AngularJS.Use!
  • O RESULTADO É MUITO MELHOR
  • INICIANDO COM VRAPTORBaixe o Blank Project do site oficial.Importe-o na sua IDE.Comece a desenvolver.
  • INICIANDO DO JEITO “DIFÍCIL”Baixe oVRaptor do site oficial.Crie um projeto web na sua IDE.Adicione o jar doVRaptor e os jars da pastalib/mandatory em seu classpath (WEB-INF/lib).Escolha um framework de IoC, como Spring.Adicione os jars da pasta lib/containers.Comece a desenvolver.
  • CONTROLLERS@Resourcepublic class ProdutosController {}
  • CONTROLLERS@Resourcepublic 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ÊNCIAS@Componentpublic class ProdutoDao { //... }@Resourcepublic class ProdutosController {private ProdutoDao dao;public ProdutosController(ProdutoDao dao) {this.dao = dao;}}
  • REDIRECIONAMENTOSpublic void adiciona(Produto produto) {dao.adiciona(produto);result.redirectTo(this).lista();}
  • VALIDAÇÃO FÁCILpublic void adiciona(Funcionario funcionario) {if (funcionario.getNome().isEmpty()) {validator.add(new ValidationMessage("nome.invalido","erro"));}validator.onErrorUsePageOf(this).formulario();dao.adiciona(funcionario);}
  • REST FÁCILpublic class ProdutosController {@Get("/produtos")public List<Produto> lista() {...}@Post("/produtos")public void adiciona(Produto produto) {...}@Get("/produtos/{produto.id}")public void visualiza(Produto produto) {...}}
  • AJAX FÁCILpublic void loadJson(Cliente cliente {result.use(json()).from(cliente).serialize();}public void loadXml(Cliente cliente) {result.use(xml()).from(cliente).serialize();}
  • PONTOS FORTESLiberdade na view!Injeção de dependências fácil!Objetos na view (se quiser).Desacopla a view e o Controller.Convenções! Permite configurações.RESTful fácil! JSON fácil!Poderoso, pode confiar, aguenta o tranco.
  • VRAPTOR! O CAMPEÃO!
  • OMG! ONDE APRENDER MAIS?Hoje ainda tem Hands on!GUJ.Documentão Oficial.Apostilas da Caelum.
  • DÚVIDAS?
  • REFERÊNCIAS RECOMENDADAShttp://vraptor.caelum.com.br/http://www.caelum.com.br/apostila-vraptor-hibernate/http://www.slideshare.net/kaiovalente/vraptor-alta-produtividade-no-desenvolvimento-web-em-javahttp://www.slideshare.net/danielkist/vraptor-ciclo-casin-2011
  • OBRIGADO!Frederico Maia Arantesfredericomaia10@gmail.com@fredmaiahttps://www.facebook.com/WhatsJobhttp://www.gojava.org