O Play ? um framework open source para aplica??es web, escrito em Java, que possibilita o desenvolvimento de aplica??es web que seguem o padr?o MVC. Tem por objetivo otimizar a produtividade do desenvolvedor atrav?s do uso de configura??o sobre conven??o (CoC). Com recompila??o feita durante a execu??o da aplica??o, e caso ocorra algum erro, o respectivo ? exibido no browser, indicando a linha do erro.
Aten??o: o objetivo desse post ? realizar uma vis?o geral do que se trat? o Play Framework que temos ouvidos os coment?rios na internet.
O Play Framework torna o desenvolvimento de aplica??es Java e Scala uma tarefa f?cil para o desenvolvedor.
Site: Play Framework
Descubra uma alternativa limpa e leve para as atuais aplica??es Java Enterprise. O Play ? focado na produtividade do desenvolvedor e tem por alvo a arquitetura RESTFul.
Apesar do Play ter sido escrito em Java, ele suporta a linguagem Scala desde a vers?o 1.1 (hoje[Dezembro/2011] est? na vers?o 1.2.4). Este ano a empresa Typesafe (respons?vel pela linguagem Scala), anunciou a aquisi??o do Play Framework e este ser? mantido pela empresa. Uma das novidades relacionado a este anuncio ? que a vers?o 2.0 o n?cleo do Play Framework est? sendo totalmente reescrito em Scala.
Um v?deo para uma breve apresenta??o do Play Framework: Desenvolcendo uma aplica??o web em 10 minutos
Motiva??o
O Play foi muito inspirado no Ruby on Rails e Django. Um desenvolvedor familiarizado com qualquer um desses 2, ir? se sentir em casa.
Algo que ? fato, Ruby on Rails e Django s?o produtivos, ent?o por que n?o ter o mesmo n?vel de produtividade com java?
O Play utiliza do poder das aplica??es Java, por?m sem o “sofrimento” necess?rio para o desenvolvimento de aplica??es centradas no modelo Java Enterprise. Libertando das metodologias e ideologias relacionadas ao desenvolvimento de aplica??es Java EE, o Play prove para os desenvolvedores uma maneira f?cil e elegante de trabalhar, visando o aumento da produtividade.
Caso voc? queria, basta um editor de c?digo e ser? mais que o suficiente para o desenvolvimento de aplica??es, chega a ser incr?vel pensar que conseguiremos desenvolver aplica??es Java Web sem a necessidade de um IDE (Eclipse, Netbeans, …), mas vale lembrar, que estas IDE's ainda possuem seus atrat?vos e auxiliam em nossa produtividade.
Apesar de que as aplica??es desenvolvidas com o Play, foram projetadas para executar dentro do JBoss Netty Web Server, as aplica??es podem ser empacotadas em arquivos WAR e distribu?das para outros servidores de aplica??es Java EE (ex.: Apache Tomcat).
Maiores diferen?as com os demais frameworks
Stateless: o Play ? totalmente RESTful – n?o existe conex?o por sess?o Java EE. Isto torna o Play muito mais escal?vel que os demais frameworks.
Sem configura??o: realizar o download, descompactar e desenvolver.
F?cil ida e volta: sem necessidade de deploy no servidor de aplica??o, apenas edite o c?digo e atualize o browser.
Teste unit?rio integrado: suportes nativos para JUnit e Selenium.
API elegante: raramente um desenvolvedor ter? a necessidade de importar alguma lib. O Play j? disponibiliza a maioria dos recursos necess?rios para o desenvolvimento de uma aplica??o.
M?todos est?ticos: todos os controles de entrada e m?todos de neg?cio s?o declarados como est?ticos. E isto ? de fato bem diferente o que vemos nos demais frameworks Java.
I/O Ass?ncrona: atrav?s do uso do servidor web JBoss Netty, o Play consegue disponibilizar e tratar uma enorme quantidade de requisi??es ass?ncronas.
Arquitetura Modular: assim como Rail e Django, o Play utiliza o conceito de m?dulos. O que possibilida um meio elegante e simples de expandir o core do Play.
M?dulo CRUD: f?cil constru??o de UI administrativas com pouco c?digo.
M?dulo Scala: disponibiliza um suporte completo para Scala.
Componentes
O Play utiliza massivamente algumas bibliotecas populares:
- JBoss Netty para o servidor web.
- Hibernate para a camada de dados.
- Groovy para a os templates.
- O compilador do Eclipse para atualiza??o da aplica??o sem necessidade de realizar um deploy da aplica??o para testar as altera??es (hot-reloading).
- Apache Ivy para gerencimanto de dependencias.
Funcionalidades presentes no n?cleo do Play:
- Um framework RESTful limpo e leve.
- CRUD: um m?dulo para simplicifar a edi??o de modelos de objetos.
- Secure: um m?dulo para habilitar um sistema de autentifica??o de usu?rios.
- Um framework de valida??o baseado em anota??es.
- Um Job Scheduler (agendamento de tarefas).
- Suporte para emails SMTP de maneira simples.
- Suporte para JSON e XML.
- Uma camada de persist?ncia baseada em JPA.
- Uma base de dados embutida para r?pido deploy e testes da aplica??o.
- Um framework completo para realiza??o de testes.
- Funcionalidade para upload de arquivos.
- Suporte para m?ltiplos ambientes de desenvolvimento.
- Uma poderosa engine de templates baseadas em Groovy com templates, hierarquias e tags.
- Arquitetura modular, que possibilita criar novas funcionalidades para o n?cleo facilmente.
- Suporte para OpenID e clientes de Web Service.
Links ?teis
Informa??es a mais da Wikipedia
Overview do Play Framework 1.2.4
Documenta??o Play Framework 1.2.4
A documenta??o foi algo que achei interessante, me parece bem completa com bastante exemplos e informa??es de como utilizar as funcionalidades presentes no Play Framework.
Suporte para a linguagem Scala
Utilize a IDE de sua prefer?ncia (Eclipse, Netbeans, …)
Se por um acaso voc? utilize o Sublime Text 2, veja esse suporte para este editor de c?digo [github]
Dentre eles temos: MongoDB, GAE, Gera??o de PDF, GWT, SASS e SCSS, entre outros.
E agora?
Bom agora que j? temos uma boa id?ia do que se trata o Play Framework ? baixar e come?ar a testar e ver se na pr?tica ele ? bom mesmo.
Hora de fazer o download, instalar e colocar a m?o no c?digo: Tutorial para seguir e ver uma aplica??o do in?cio at? o “fim”
Eu particularmente ainda possuo algumas quest?es em aberto para descobrir as respostas, dentre elas est? uma: - Como ? que eu utilizo o Play Framework em um projeto com uma equipe? At? o momento s? tenho visto casos onde s?o apresentados desenvolvimetno de aplica??es r?pidas, por?m com um ?nico desenvolvedor…
No meu caso eu vou atr?s dessa reposta.










