Vantagens do VRaptor

maio 12, 2007 às 11:39 am | Publicado em Java, JEE | 14 Comentários

Assim 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.

Classe Exemplo

– 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

  1. Realmente gostei muito do VRaptor. Ainda não o usei, mas tudo o que tenho lido dele tem me agradado.

  2. 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!

  3. Boa Fábio… não sabia dessa..

  4. Otimo post! Parabens! Que bom que existem mais pessoas que escrevem sobre o vraptor.

  5. 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?

  6. 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….

  7. 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.

  8. 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.

  9. 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…

  10. E annotation não é um tipo de configuração?

    Anotação é sim um tipo de configuração, e no caso do vRaptor facilitou muito o desenvolvimento.

    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

    Configurar a view sempre vai ser necessário, o que nos resta é procurar a forma mais simples e produtiva de configurá-la.

    Essa história de que uma action que não estenda nada é uma vantagem maravilhosa e suficiente é uma ilusão muito grande

    Eu acho isso muito importante.

    Um framework deveria facilitar as coisas, como um todo. Minha opinião…

    Por isso que eu escolhi o vRaptor….

  11. 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)

  12. 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

  13. @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.

  14. […] grande novidade foi o anúncio do vRaptor 3. Particularmente, eu sou fã deste […]


Deixe um comentário

Crie um website ou blog gratuito no WordPress.com.
Entries e comentários feeds.