Ok, tudo bem, não é exatamente um Rails da vida, mas tem uma grande vantagem, roda perfeitamente em servidores Java EE, que são ótimos em escalabilidade, na verdade muito melhores do que a maioria das plataformas que eu conheço.
Um dos grandes problemas do Java EE como eu falei em outro post, é a necessidade de configurar tudo, a possibilidade de configurar é uma das maravilhas do Java, mas eu acho que a obrigação de configurar é um dos grandes problemas …
Partindo disto, vou escrever uma pequena sequencia de posts (ainda não sei quantos), sobre formas de ser mais produtivo em Java EE com geração de código, e outras técnicas bastante interessantes, e frameworks mais modernos …
O primeiro da lista é o JBoss Seam, que tira bastante proveito de diversos recursos do Java EE 5, mas não obriga a aplicação a rodar em um servidor Java EE 5 completo (a configuração se torna um pouco mais complicada neste caso).
Para o ambiente de desenvolvimento, precisaremos de um JBoss AS instalado, o JBoss Seam (download do framework), e uma IDE java, eu sugiro o Eclipse, mas o NetBeans também é muito bom …
Entre as vantagens do Seam, temos uma lista praticamente única entre os outros frameworks Java EE, mas a principal vantagem e também a principal desvantagem, na minha opinião, é o conceito de componentes contextuais …
Ou seja, o JBoss Seam cuida do ciblo de vida de todos os objetos na aplicação, inclusive das entidades persistentes, utilizando um recurso do Java Persistence API, chamado Extendeded Persistence Context, em conjunto com sessões WEB, o que torna o desenvolvimento extremamente produtivo e fácil, mas pode prejudicar bastante a escalabilidade da aplicação se este recurso não for bem utilizado …
Outros recursos excelentes do Seam são:
O Gerador de aplicações do Seam vem em dois sabores, console (mais flexivel e baseado em ANT), e plugin para eclipse, que vem junto com o Hibernate Tools.
O gerador console tem alguns comandos bem parecidos com os do Ruby on Rails, o gerados é o seam.bat para windows e seam para unix, e esta no diretório de instalação do Seam.
O gerador grafico não tem tantas opções, mas ja é um fast startup e gera os formulários para os beans importados do banco de dados …
primeiro se cria um arquivo de configuração do Hibernate …
Logo depois se cria uma configuração para o hibernate console:
e se executa o gerador do seam:
…
Como puderam perceber, não é tão flexivel como o Rails, mas acho que esta no caminho certo
o que vocês acham?
PS.: passem aqui amanha que vou mostrar um outro conjunto gerador/framework em java …
PS2.: comentários e sugestões são bem vindos …
Java on Rails – Produtividade em Java (Parte 2 – J2EE Spider)
Java on Rails – Produtividade em Java (Parte 3 – Grails)
Tags: artigo, Java, Java EE, produtividade
Com “Suporte a Workspace…” vc quis dizer “Suporte a Workflow…”, não é?
O JBoss Seam é um framework bastante interessante a ser considerado, em especial às suas contribuições em relação à forma de modelagem e desenvolvimento de um sistema corporativo, tirando bastante coisa das costas do desenvolvedor (e, consequentemente, melhorando na qualidade através da redução de bugs).
Apesar de não conhecer o framework em detalhes, já gastei um tempo estudando o Seam e realmente gostei do que vi. Para citar algumas coisas: gostei do lance de gerenciamento de conversações, suporte a “abas” (você pode ter várias conversaões rodando concorrentemente, em várias abas do browser), integração com o hibernate-validator bem simples de usar, etc. Enfim, o framework tá aí justamente pra facilitar a vida do desenvolvedor.
Espero que ele continue crescendo e agregando funções que nos dê prazer em desenvolver aplicações Java EE! Vamos ver se o Seam vai cair no gosto da galera
Abraço!
[Translate]
eu quiz dizer workspaces mesmo, eles chamam de workspaces a habilidade de ter varias conversações simultaneas em varias abas do browser
e sim, ele é um framework muito bom …
Mas tem mais coisas que tornam o java bastante produtivo, amanha tem outro post sobre isto
[Translate]
Muito bom esse post, assim como creio que será esta série de posts. Serei um dos que com certeza apreciará!
Quanto ao Seam, não o conheço, mas essas características são bem legais mesmo. Qual a sua opinião sobre o uso do Seam rodrigo? Acha que vale a pena investir nele? Porque, eu estou gostando bastante dos lances do SpringAnnotation que vc fez, quebra um puta galhão no desenvolvimento, ainda mais depois que vc pega o jeito da coisa =) Sei que o Seam, parece ter mais features e tudo mais.
O que não entendi é a Integração com Spring. Eles não são meio “concorrentes” ?
Abraço velho!
[Translate]
O seam é muito bom, inclusive ja pensei algumas vezes em arar de desenvolver o SA e começar a usar o Seam, mas não vou fazer isto (parar de desenvolver o SA)
vale a pena sim investir nele, se tu tiver a possibilidade de utilizar um ambiente Java EE 5, pois são poucos servidores que ja suportam a espeificação (tem um postque vai ser publicado hoje as 14h sobre isto).
Algumas diferenças básicas, o spring-annotation permite o desenvolvimento de aplicações desktop, o Seam não.
O Seam só concorre com o módulo de JSF do spring-annotation, o resto não tem muito a ver …
e o Seam não é concorrente do Spring Framework também (no máximo do Spring MVC, mas a comparação e desigual).
a integração com o Spring-Framework permite que se utilize no seam, componentes/Bean registrados no spring em vez de EJBs como componentes/controllers, e que se acesse via spring os componentes/EJBs do Seam …
o Spring tem mais recursos para gerenciamento dos beans e do ciclo de vida deles que o Java EE 5, mas esta integração é mais marketing do que qualquer outra coisa, eu realmente não vejo muita necessidade nela …
[Translate]
[...] Parte 1 – JBoss Seam [...]
[Translate]
Estou fazendo alguns protótipos com o Seam e cada vez mais me surpreendo com as facilidades deste framework. Só o fato de você não ter que se preocupar mais com LazyInitializationExceptions e não precisar mais ficar gerenciando o estado da sessão http já é mais do que uma razão para pelo menos dar uma olhada neste framework.
[Translate]
O seam é muito legal mesmo, mas não é perfeito …
A produtividade é excelente, mas tem alguns problemas como por exemplo:
- os Session Beans criados para o seam, só podem ser usado para o Seam, é muito dificil conseguir utilizar eles de uma app externa …
- o suporte para JSF é show de bola, mas ele adiciona algumas features no JSF, como por exemplo o suporte extendido a expression language que fazem com que as páginas sejam incompativeis com outros frameworks …
- e o pior na minha opinião pelo menos, alguem que trabalha com o Seam, vai achar que sabe trabalhar com JSF, e EJBs, mas não vai conseguir fazer nada sem o Seam (claro, existem excessões, mas para a grande maioria vai ser isto … )
pelo menos foi a impressão que eu tive dele até agora, mas pela produtividade que ele traz, dependendo do projeto, vale a pena encarar estes pequenos problemas
[Translate]
[...] Java on Rails – Produtividade em Java (Parte 1 – JBoss Seam) Java on Rails – Produtividade em Java (Parte 3 – Grails) [...]
[Translate]
[...] eu resolvi seguir a linha “Java On Rails” que eu vinha escrevendo a algum tempo atras (aqui, aqui) e quando eu mencionei o Grails no ano [...]
[Translate]
[...] http://www.urubatan.com.br/java-on-rails-produtividade-em-java-parte-1-jboss-seam/ [...]
[Translate]