Vantagens do VRaptor
maio 12, 2007 às 11:39 am | Publicado em Java, JEE | 14 ComentáriosAssim como o struts e companhia, o VRaptor é um controlador MVC para web, ou seja, mais um framework para auxiliar o desenvolvedor a usar MVC em suas aplicações. Mas o que faz com que o VRaptor venha conquistando tantos usuários? Vou relatar algumas características interessantes e que fez com que eu escolhesse o VRaptor como o meu controlador MVC preferido.
Rápido aprendizado
Você não precisa se preocupar com treinamento da equipe. É muito simples trabalhar com o VRaptor. Posso garantir que 2 dias é o suficiente pra conhecer todo seu funcionamento.
Nada de HttpServletRequest, HttpServletResponse e HttpSession
O VRaptor tira do desenvolvedor a responsabilidade de trabalhar diretamente com as classes da API dos Servlets através de simples anotações.
Suponha que existe uma Action (que no VRaptor é Logic) que precisa passar um objeto Pessoa para ser mostrado em uma jsp.
– para inserir o objeto como um atributo na requisição basta a anotação @Out:
@Out
private Pessoa pessoa = new Pessoa();
– para inserir o objeto na sessão basta mudar o escopo na anotação @Out:
@Out(scope=ScopeType.SESSION)
private Pessoa pessoa = new Pessoa();
—
Da mesma forma existe a anotação @In para recuperar atributos dos escopos (requisição, sessão, aplicação e logic???).
Logic é um novo escopo para seus objetos. Um objeto neste escopo ficará disponível durante a lógica de negócios, ou seja, quando a requisição for direcionada para a JSP o objeto não estará mais acessível. Já precisei deste escopo usando o struts e adivinhem? com certeza tive que implementar tudo…rs
Pouquíssima configuração
O VRaptor trabalha por convenções o que diminui relativamente o número de configurações. Por exemplo, marcando uma classe com a anotação @Component, automaticamente todos os métodos públicos estarão disponíveis para serem acessados pela view.
A convenção também é aplicada nos redirecionamentos após a execução de um método na Action (Logic). Veja no exemplo acima, que o método não retorna nenhuma string ou objeto indicando para qual recurso a requisição deverá ser direcionada. O VRaptor irá direcionar para uma jsp com o padrão ‘/nomeComponente/nomeMetodo.ok.jsp’.
Vale ressaltar que se for necessário é possível customizar o funcionamento de uma forma bem simples.
A não existência de taglibs
Na minha opinião, um controlador mvc não deveria interferir na view. Sua responsabilidade é apenas controlar as requisições, direcionando-as para as classes responsáveis por tratá-las. Encher sua JSP com taglibs de frameworks MVC é muito perigoso e arriscado. Use um padrão (JSTL) e caso seja necessário crie as suas próprias.
O VRaptor não possui um pacote de taglib. Use expression language + JSTL e seja feliz….
———————-
Em breve colocarei mais exemplos e características do VRaptor. Espero convencer a todos a pelo menos baixar e testar este incrível framework.
14 Comentários »
RSS feed for comments on this post. TrackBack URI
Deixe um comentário
Crie um website ou blog gratuito no WordPress.com.
Entries e comentários feeds.
Realmente gostei muito do VRaptor. Ainda não o usei, mas tudo o que tenho lido dele tem me agradado.
Comment by Tiago Albineli Motta— maio 12, 2007 #
Oi Marcelo,
Ótimo post!
Muito legal da sua parte, obrigado!
Só colocando mais 1 cent, @Out tem sido desencorajado, já que basta a existência do getter para que os objetos criados na lógica fiquem disponíveis para a view.
Abraços!
Comment by Fabio Kung— maio 16, 2007 #
Boa Fábio… não sabia dessa..
Comment by Marcelo Madeira— maio 16, 2007 #
Otimo post! Parabens! Que bom que existem mais pessoas que escrevem sobre o vraptor.
Comment by Nico— maio 16, 2007 #
Não é melhor ter taglibs dando a opção de o cara usar JSTL ou qualquer outra coisa?
E essas anotações não vou deixar o meu modelo de negócios dependente do framework?
Comment by Ricardo— maio 21, 2007 #
Veja bem, não estou dizendo que o uso de taglibs seja ruim. Apenas apoio o uso do padrão, no caso a JSTL.
Você não vê vantagem em alterar o seu framework mvc sem se preocupar em mudar uma linha da jsp? Aposto que você não iria conseguir fazer isso hoje.
Você acha que uma anotação irá te amarrar mais do que uma herança? Ou você prefere escrever centenas de linhas de xml….
Comment by Marcelo Madeira— maio 21, 2007 #
Quer dizer que voce começa fazendo o seu site com Struts aí um belo dia voce fala, vou mudar para WW. Aí depois voce fala: pensando melhor vou mudar para SpringMVC.
Tudo bem, JSTL é um padrão, mas é sabido que tem várias deficiencias. Uma tag lib integrada ao framework pode suprir isso.
Anotação não amarra mais que herança, mas ainda amarra. O ideal é não ficar amarrado a nada, ou seja separar o modelo de negócios das actions.
Comment by Ricardo— maio 21, 2007 #
bem… se você conhecer algum framework mvc que não te amarre a nada e que seja simples de usar, me avise o mais rápido possível. Veja bem, quando eu falo simples quero dizer que eu não quero não me preocupar em configurar dezenas de coisas.
Não é porque você não vai trocar de tecnologia que precisa abraçá-la completamente. Lembro de um amigo que dizia: “Já que estamos no inferno vamos abraçar o capeta”. O problema é que a maioria dos frameworks inventam tags pra algo que já existe. O struts é um exemplo claro disso.
Comment by Marcelo Madeira— maio 22, 2007 #
E annotation não é um tipo de configuração? Essa história de não ter quer configurar a view e achar que isso é o último biscoito do pacote é uma ilusão muito grande. Essa história de que uma action que não estenda nada é uma vantagem maravilhosa e suficiente é uma ilusão muito grande. Um framework deveria facilitar as coisas, como um todo. Minha opinião…
Comment by Ricardo— maio 27, 2007 #
Anotação é sim um tipo de configuração, e no caso do vRaptor facilitou muito o desenvolvimento.
Configurar a view sempre vai ser necessário, o que nos resta é procurar a forma mais simples e produtiva de configurá-la.
Eu acho isso muito importante.
Por isso que eu escolhi o vRaptor….
Comment by Marcelo Madeira— maio 28, 2007 #
Perfeito só Deus (para quem acredita).
O Vraptor não é perfeito, contudo é muito superior ao Struts. O importante para todo desenvolvedor é focar na camada de negócios. Fico muito feliz com a sua iniciativa. Os desenvolvedor tem a obrigação de pelo menos fazer um pequeno teste com o VRaptor antes de criticar. O próprio pessoal do Struts desaconselha a usá-lo visto que estão se associando ao Webwork no desenvolvimento do Struts 2 (nada a ver com o Struts 1.x)
Comment by Luiz Fernando Alves— maio 29, 2007 #
Você diz que usar uma taglist no VRaptor é perigoso, gostaria de saber porque é tão arriscado? já vi empresas que utilizam o VRaptor usarem talibs juntos em suas aplicações.
Douglas
Comment by Douglas— fevereiro 18, 2009 #
@Douglas,
O problema é que alguns frameworks criam taglibs para fazerem coisas que a JSTL já faz. Um exemplo é o struts.
Antes de utilizar alguma taglib do framework eu penso muito para ver se realmente vale a pena. Novamente, no caso do struts, a própria equipe que o mantêm aconselha o uso da JSTL.
Comment by Marcelo Madeira— fevereiro 19, 2009 #
[…] grande novidade foi o anúncio do vRaptor 3. Particularmente, eu sou fã deste […]
Pingback by Falando em Java 2009 « Marcelo Madeira— maio 26, 2009 #