Play!
Desenvolvendo aplicações
 Web com Java sem dor
Quem somos	


 Allyson Barros - @allysonbarros	

 Graduando em Análise e Desenvolvimento de Sistemas - IFRN	

 Desenvolvedor Web desde 2006 - PHP / Delphi / Rails / Java / Node.JS	

 Líder do Grupo WebLovers - http://grupoweblovers.org	

 allysonbarrosrn@gmail.com - http://allysonbarros.me
Quem somos	


 Sedir Morais - @sedir_	

 Graduando em Análise e Desenvolvimento de Sistemas - IFRN	

 Evangelista do Play Framework no Rio Grande do Norte	

 Líder do Grupo WebLovers - http://grupoweblovers.org	

 philippi.sedir@gmail.com - http://sedir.me
Agenda	

•  Introdução / Visão geral 	

•  Instalação do Framework	

•  Criação e Configuração da Aplicação	

•  Criação de Controllers / Models / Views	

•  Instalação e Utilização de Módulos	

•  Deploy da Aplicação (Tomcat 6)
O que é?	

•  Alternativa limpa e eficiente para criação de
   aplicações web.	

•  Seu principal objetivo é facilitar ao máximo o
   desenvolvimento de aplicações web com Java.	

•  Visa a produtividade dos desenvolvedores.	

•  Solução perfeita para o desenvolvimento ágil de
   aplicações web.
Quais as vantagens?	

•  Limpo, Rápido e Dinâmico	

•  Produtivo, Poderoso e Divertido!	

•  Puro Java                                	

              (Permite a importação e uso de qualquer biblioteca Java)


•  Utiliza o sistema de template Groovy	

•  Utiliza sistemas de tradução de Rotas	

•  Facilidade na resolução de erros
Quais as vantagens?	

•  Assíncrono              	

                (I/O não bloqueante)


•  Stateless
           ( Share Nothing System )	



•  Arquitetura MVC / RESTful	

•  Persistência com JPA	

•  Extensível                   	

             (Através de Módulos / Bibliotecas Java)


•  TDD - Test Driven Development
Introdução à
Arquitetura MVC
Instalação	

•  Ambiente Windows / Linux / Mac	

•  JDK e JRE 5 ou superior	

•  Editor de Texto (notepad++, Textmate,
  Vim)	

•  IDE Java - Eclipse ou Netbeans (Opcional)
Ambientes Linux e Mac	

•  Baixar o Framework	

•  Extrair para uma pasta desejada (Ex:	

 /opt/)
   (Recomendado dar permissão de execução no arquivo play )

•  Adicionar o caminho no $PATH;
   
   Dica: Editar o arquivo .bashrc ou .bash_profile e adicionar a linha a seguir:
Ambientes Windows	

•  Baixar o Framework               	



•  Extrair para uma pasta desejada (Ex: C:)
  (Recomendado extrair para C: ou diretórios sem espaços para evitar
                    	

  problemas futuros.)

•  Adicionar o caminho no $PATH;
Testando a instalação
Testando a instalação
Criando e rodando
  uma aplicação
Criando a aplicação	



Rodando a aplicação
Estrutura das pastas
Configurando o projeto
    para as IDEs	

 Utilizando o Eclipse	





 Utilizando o NetBeans
Exemplo / Prática:
  Hello World
Definindo o banco
   de dados
Editando o arquivo
conf/application.conf
Definindo o banco de dados	

para o uso do H2 File Stored
Gerenciando o banco
 de dados pelo Play!
Criando os Modelos
Selecionando itens
 do Modelo (JPA)
Salvando e Atualizando itens
 do Banco de Dados (JPA)
Executando Queries SQL
diretamente dentro do Play
Exemplo / Prática:	

 Executando Queries SQL
diretamente dentro do Play!
Criando os Controllers
Funcionamento dos
   Controllers
Interceptações -
Controllers Annotations	


•  @Before - Antes da ação ser chamada 	



•  @After - Depois da ação ser chamada	

•  @Finally - Depois da ação ser executada
  completamente
Controllers Annotations	

•  @Before - Antes da ação ser chamada
Controllers Annotations	

•  @After - Depois da ação ser chamada
Controllers Annotations	

•    @Finally - Depois da ação ser executada completamente
Tipos de Resultado -
Controllers Response Result Types	


•  render()	

        •  renderJSON()	

•  renderText() 	

   •  renderBinary()	

•  renderXML()	

     •  redirect()
Definindo o layout da app	





    Arquivo app/views/application.html
Criando as Views	





Arquivo app/views/application/index.html
Engine de Templates (Groovy)	

 Expressões - ${...}	




 Tags - #{...}	




 Ações - @{...}
Engine de Templates (Groovy)	

 Mensagens - {...}	




 Comentários - *{...}*	




 Scripts - %{...}%
Validações de campos	





   Exemplo de validação básica
Validações de campos	





Exemplo de validação básica com mensagens personalizadas.
Validações de campos	





Exemplo de redirecionamento caso exista erros de validação.
Validações de campos	





  Exemplo de visualização dos erros na view.
Instalando Módulos
       no Play!
Instalando o módulo PDF
Carregando o módulo PDF
     para a aplicação	


  Adicionar esta linha ao final do arquivo 	

      myapp/conf/dependencies.yml	





   Executar este comando no terminal
Exemplo de uso do 	

   módulo PDF
Colocando sua App
  em produção!
O que é um servidor de
          aplicação	

•  Publica aplicações web e responde a
  algumas questões comuns a todas as
  aplicações, como segurança, garantia de
  disponibilidade, balanceamento de carga e
  tratamento de exceções.	

•  Alguns servidores de aplicação são:
  Apache Tomcat, JBoss, Glassfish...
Preparando aplicação para o
   servidor de aplicação	



    Execute este comando no terminal
Instruções básicas para Tomcat	


•  Baixe o Tomcat 6 em http://tomcat.apache.org
  e instale-o. Note que a porta 8080 é a padrão.	

•  Coloque a pasta gerada
                      myapp-war na pasta
   webapps onde o Tomcat está instalado.	

•  Inicie o serviço Tomcat6 e rode sua aplicação
  em http://localhost:8080/myapp-war
Dúvidas?
Para maiores informações sobre o
        Play! Framework
                 
http://www.playframework.org
http://www.the-play-book.co.uk
http://www.playframework.info
Confira o código das aplicações
         finalizadas em:
                
http://github.com/grupoweblovers
 http://labs.grupoweblovers.org
Não deixem de se cadastrarem no
    nosso grupo de estudos!
               
  www.grupoweblovers.org
Obrigado!

Play Framework - Desenvolvendo Aplicações Web com Java sem Dor