Mentawai x VRaptor

26 respostas
O

Olá pessoal!!!

Quero aprender um framework web, havia optado pelo Struts, mas depois de umas pesquisas descobri o Mentawai e recentemente o VRaptor que achei bem mais fáceis de aprender e também por terem documentação em pt-BR.
Sou iniciante tanto em Java quanto em JSP e gostaria de aprender ambos (Java, JSP e um framework), sei que é meio loucura.
Sei que a escolha de uma linguagem, IDE, framework e etc. são questões de gosto. Mas alguém poderia me dar uma orientação (vantagens/desvantagens) sobre eles (Mentawai e VRaptor).

:wink:

26 Respostas

Luca

Olá

Você já conhece bem HTTP e servlets?

Para quem conhece bem HTTP, servlets e um pouco de desenvolvimento web não é difícil aprender mais de um framework.

Mas se eu fosse você, escolheria qualquer um apenas para começar. Escolha o que lhe parece ter mais ou melhor documentação e exemplos. Dê valor a questão de convenção sobre configuração porque isto pode dar um ganho enorme no aprendizado do que realmente é importante aprender.

[]s
Luca

O

Luca:
Olá

Você já conhece bem HTTP e servlets?

Para quem conhece bem HTTP, servlets e um pouco de desenvolvimento web não é difícil aprender mais de um framework.

Mas se eu fosse você, escolheria qualquer um apenas para começar. Escolha o que lhe parece ter mais ou melhor documentação e exemplos. Dê valor a questão de convenção sobre configuração porque isto pode dar um ganho enorme no aprendizado do que realmente é importante aprender.

[]s
Luca

Comecei a estudar Java em novembro/05 comprei o livro Java Como Programar 6ª ed. e vinha estudando feliz da vida até começar um estágio em uma empresa que o site era em PHP, aí tive que infelizmente parar meus estudos em Java e aprender PHP. Foi ai meu primeiro contato com desenvolvimento web e me apaixonei pelo conceito, tanto que meu projeto de final de curso foi sobre qualidade no desenvolvimento de WebApps.
Há 3 meses que sai do estágio e comprei o Use a Cabeça! Servlets & JSP, mas só li até a metade por falta de tempo. E agora que não estou mais na empresa e praticamente já terminei a faculdade, voltei aos estudos com força total e estou com um projeto para desenvolver.
Venho fazendo uns teste com o Menta e tenho gostado bastante!!! :stuck_out_tongue:

Obrigado Luca, pela dica!!!
:wink:

saoj

Diferentemente dos outros frameworks, que possuem uma curva de aprendizado mais elevada, esses dois são de fácil entendimento e aprendizado.

Logo te sugiro que teste os dois e escolha o que mais te agradar.

bonfarj

Eu li a matéria sobre o VRaptor na última edição da Mundo Java e ainda estou lendo a matéia do Mentawai. Queria saber se existe algum comparativo entre os dois, alguém sabe?

abraços!

casmeiron

Bom, eu estudei os dois frameworks, mas depois que conheci JSF esqueci o resto, a produtividade é muito maior, quanto mais projeto você faz em JSF, mais componentes personalizados você tem, mais fácil fica pro próximo projeto, essa é minha opinião.

Se você quer algo como struts pega um desses dois, mas se quiser conhecer JSF (eu aconselho), “experimenta experimenta”.

Rubem_Azenha

bonfarj:
Eu li a matéria sobre o VRaptor na última edição da Mundo Java e ainda estou lendo a matéia do Mentawai. Queria saber se existe algum comparativo entre os dois, alguém sabe?

abraços!

heheh, o pessoal quer ver a gente se pegando no braço mesmo :lol:

Ainda não existe nenhum texto assim, imagino que não seja nescessário. É só entrar no site do Menta, ler a documentação, ir no site do VRaptor, ler a documentação, se gostar de um ou de outro, fazer uma aplicação demo e aí você vai escolher um :slight_smile: Sem imparcialidade.

bonfarj

Hehe, longe de mim. :smiley:

Eu gostei muito do VRaptor, o cara que escreveu a matéria mandou muito bem, achei esse framework bem no meu estilo. Mas também achei o Mentawai interessante, por isso queria ver se existe algum comparativo com prós e contras de cada um.

grande abraço pra vcs e parabéns pelos frameworks! :slight_smile:

saoj

Dá um exemplo de um componente personalisado que vc reutilizaria em um outro projeto?

cado

casmeiron:
Bom, eu estudei os dois frameworks, mas depois que conheci JSF esqueci o resto, a produtividade é muito maior, quanto mais projeto você faz em JSF, mais componentes personalizados você tem, mais fácil fica pro próximo projeto, essa é minha opinião.

Se você quer algo como struts pega um desses dois, mas se quiser conhecer JSF (eu aconselho), “experimenta experimenta”.

Acredito q a pergunta do obattousai seria Mentawai x VRaptor, nao vi ele perguntar sobre JSF. :roll:

Thiago_Senna

mas ele falou que já estudou ambos frameworks e chegou na conclusão que JSF atende melhor as necessidades dele, além de citar um dos motivos da escolha. Isso é também uma contribuição com o tópico, não é? :wink:

saoj

mas ele falou que já estudou ambos frameworks e chegou na conclusão que JSF atende melhor as necessidades dele, além de citar um dos motivos da escolha. Isso é também uma contribuição com o tópico, não é? ;)

Ele vai contribuir ainda mais se falar quais são os componentes personalisados que ele reutiliza em todos os projetos dele.

Luca

Olá

Pois eu achei a resposta sobre JSF muito boa. Aliás, estudei JSF em 2004 e fiquei com a impressão de que o JSF tinha tudo para matar o framework MVC da moda que era o Struts. Mas na época o JSF ainda não conseguia construir uma página com todos os recursos do Struts. Se hoje ele está mais produtivo, como imagino que esteja, acho que tem muitas chances de ser a melhor solução do que os frameworks MVC quando NÃO se usa AJAX.

O problema é que hoje a discussão não está mais na comparação com MVC e sim na comparação com os frameworks AJAX. Já tem gente escrevendo por aí que site sem AJAX é defunto fedorento que esqueceram de enterrar.

Então eu pergunto: como fica o uso dos componentes JSF quando se pretende desenvolver um site com AJAX?

[]s
Luca

Thiago_Senna

Olá Sérgio, tudo bem?

concordo, e é isso que eu espero. Mas ainda assim, não estaria desvalorizando o Mentawai ou o VRaptor, que em minha opinião são frameworks muito interessantes também.

Com esse barulho que o ajax vem fazendo, acho muito interessante a idéia de criar componentes que utilizem tais recursos. Não que eu seja fã de ajax, mas esta pode ser a realidade em muitos projetos, não acha?

Não sei se JSF seria a melhor solução para estes casos (nem conheço JSF direito), mas vamos esperar e ver o que nosso amigo tem a dizer. :smiley:

Abraços

marciobarroso

Eu tenho tido contato com o VRaptor desde a versão 0.8 e tenho visto o qto este framework tem amadurecido.
Acho mto bacana o conceito de vc desenvolver uma app web sem ter q se preocupar com request / response, o que é possível com o VRaptor, mas não obrigatório.
Acho legal também o processamento das classes, onde eu não preciso extender nenhuma outra classe específica do framework para que ele identifique meu componente, ainda mais que só podemos ter uma única superclasse.
Estive lendo o artigo da mundo java a respeito do mentawai e tb as video aulas da java magazine e ví que existe a necessidade de configuração de xml. Eu particularmente acho isso um porre … Qdo com o Vraptor, seguindo as convenções, é possível criar a aplicação sem a necessidade de criar xml de configuração do framework. Isso é mto legal e produtivo.
Eu depois de um tempo comparando os 2 frameworks, verifiquei que o VRaptor é mais “desplugado” da aplicação e que por estas e outras características que não me lembro agora, escolhi ele como meu framework “Brazuca” predileto. Opinião pessoal. Gostaria de aproveitar e parabenizar a galera do Mentawai e do VRaptor pelo magnifico trabalho com os frameworks …

[]'s

saoj

O Mentawai foi um dos primeiros frameworks Java a abolir por completo o XML pra tudo. Foi provavelmente o primeiro framework Java a pregar o uso ostensivo de configuraçao programática em código Java.

O único XML que o Mentawai necessita é a configuração do controlador, coisa que todos os outros também necessitam por ser uma exigência da API de servlets, ou seja, impossível fugir disso. Além do mais isso são poucas linhas que vc configura uma única vez e nunca mais mexe.

sergiolopes

Isso é verdade. Lembro quando o saoj (meu xará) tava começando e até trocamos umas idéias sobre isso. Era pioneiro.

Não entendi a questão de dizer que o menta tem XML.

O que o Vraptor tem de diferente talvez seja a questão de favorecer as convenções. Então você configura pouca coisa, nem em XML nem em Java, é sem configuração mesmo.

PS Mas o vraptor, quando precisa configurar algo, voce faz com anotacoes, xmls e properties… tudo meio espalhado :slight_smile:

Mauricio_Linhares

Normal, muita gente já está desenvolvendo esquemas pra facilitar o uso de AJAX em JSF, como no Ajax4JSF. Também tem o projeto Avatar do pessoal dos Faceles e todo o suporte que o antigo ADF Faces da Oracle, que hoje é Trinidad, tem pra JSF.

Eu acho que o suporte a JSF anda muito melhor no JSF do que em qualquer outro framework web baseado em Actions atual. O serviço pesado é muito pouco.

saoj

Antes de mais nada gostaria de falar que o VRaptor é um excelente framework e que se eu não usasse o Mentawai usaria o VRaptor.

Um diferencial do VRaptor em relaçao aos outros frameworks é que ele é bastante “desacoplado” do framework em si, ou seja, uma Action, ou lógica do VRaptor não extende nada do framework e trabalha com poucas classes do framework. Não tem como fugir das anotações, mas pelo menos vc não extende nenhuma classe e não trabalha como nenhum input e output.

A filosofia do Mentawai é que a action pode e deve ser apenas uma ponte para o seu modelo de negócios, ou seja, uma action vai ser algo burro que vai apenas passar dados de um lado para o outro e decidir sobre a consequencia web que cada requisiçao terá.

É difícil pensar numa situaçao onde uma Action precisará estender outra coisa que não seja o BaseAction do framework ou uma outra BaseAction qualquer criada pela aplicaçao. Dessa maneira “salvar” a action de gastar sua herança me parece que não trará nenhum ganho na maioria dos casos.

Mesma coisa se aplica para o input e output. Numa situaçao ideal, sua action não deve precisar do input nem do output, ou seja, os dados de entrada devem ser automaticamente injetados na action (ou diretamente no modelo do qual essa action depende para executar suas funções) e os dados de saída devem ser automaticamente obtidos da action (ou novamente do modelo).

Para esses casos, basta fazer uso do InjectionFilter e do OutputFilter para que a action do Mentawai tenha exatamente o comportamente acima, ou seja, possa ignorar o input e o output por completo.

Entretanto existirão muitos outros casos não ideais, em que sua action/filtro, por comodidade ou necessidade, precisará trabalhar com o input e o output. Exemplo:

// permite apenas que certos IPs acessem essa action...

if (!input.getProperty("remoteAddr").starts("200.100.22.")) {

    return ACCESS_DENIED;

}

// permite apenas autenticacao via POST...

if (input.getProperty("method").equalsIgnoreCase("get")) {

   addError("Não é permitido se autenticar via get!");
   return GLOBAL_ERROR;
}


// computa o tempo de execucao dessa action e coloca no output... (provavelmente um filtro)

long now = System.currentTimeMillis();

String result = chain.invoke();

long time = System.currentTimeMillis() - now;

output.setValue("execTime", String.valueOf(time));

Outra argumento para favorecer o total desacoplamento seria TESTES. Minha opinião sobre isso é primeiro que a action deverá ser tão burra e simples que testes serão desnecessários. Entretanto se vc é daqueles que gosta de testar todo e qualquer IF da sua aplicacao, então vc pode usar uma MockAction fornecida pelo próprio framework para realizar os testes de maneira bem simples. Ex:

Action action = new MyActionDoMentawai();

MockAction mockAction = new MockAction(action);

mockAction.getInput().setValue("name", "Whatever");

String result = mockAction.execute();

assertEqual(result, Action.SUCCESS);
assertEqual(mockAction.getOutput().getValue("name"), "WHATEVER");

Outra questão é a CoC, que acredito ser bastante subjetiva e dependente do projeto em questão. Mais sobre isso aqui: http://www.guj.com.br/posts/list/60/49817.java

bonfarj

Concordo com o marciobarroso, na minha opinião “Convention over Configuration” é o caminho. Fiquei alucinado quando conheci as maravilhas que o Ruby on Rails faz com este conceito, eu ainda não tinha visto algo parecido em um web framework Java.

M

Luca:

Então eu pergunto: como fica o uso dos componentes JSF quando se pretende desenvolver um site com AJAX?

[]s
Luca

Tenho feito alguns testes com IceFaces, tenho gostado bastante, ainda mais agora com a integração dele com o NetBeans Visual Web Pack.

trgpwild

Só pra desenterrar pessoal… rss.
Eh que eu acho q umas coisas importantes não foram ditas aqui.
O Mentawai e o VRaptor, ambos não procuram as mesmas coisas que o JSF procura, até porque JSF é uma especificação component-based da SUN enquanto que o Menta e o VRaptor sao “implementações” de action-based(command).
O JavaServerFaces tem o objetivo de trazer o conceito de desenvolvimento Desktop para a web com seus componentes reutilizaveis baseados em eventos e o Mentawai se apoia no conceito Server-Side e facilita ao máximo qq problema complexo que uma aplicação web pode vir precisar. Apesar de ateh ter uma pequena framework de ajax.
Se vc quer um framework que te ajude em interface use JSF , se vc quer um framework que te economize esforço na camada de controller e negocio use o Mentawai, mas se vc quer um framework que seja totalmente CoC use VRaptor.
Lembremos que se ainda assim vc quiser um framework que tenha uma interface rica, facilidades para problemas comuns para aplicações web e ainda usar apenas CoC a combinação http://www.extjs.com+http://www.mentaframework.org+CoC do mentawai(http://forum.mentaframework.org/posts/list/765.page) é uma ótima pedida. Eu utilizo e gosto muito… ateh mais…

Filipe_Chagas

Que tal um artigo pra nós que não sabemos o que é classpath???

:smiley:

M

Boa trd, qria saber se o mentawai e vraptor tem conexão com mysql e qual seria mais facil para o msm?

trgpwild

Pra conexão com banco de dados utiliza-se o JDBC, o mentawai fornece uma abstração de acesso ao JDBC e ainda da um bom suporte ao hibernate que é um framework ORM muito famoso no mercado de desenvolvimento java.

Acredito que na sessão de tutoriais do guj tenha algo do tipo, mas vc pode comprar um bom livro e ler. Basta ter boa vontade e ser um pouco maluco.

rogeriuslima

trgpwild:
Só pra desenterrar pessoal… rss.
Eh que eu acho q umas coisas importantes não foram ditas aqui.
O Mentawai e o VRaptor, ambos não procuram as mesmas coisas que o JSF procura, até porque JSF é uma especificação component-based da SUN enquanto que o Menta e o VRaptor sao “implementações” de action-based(command).
O JavaServerFaces tem o objetivo de trazer o conceito de desenvolvimento Desktop para a web com seus componentes reutilizaveis baseados em eventos e o Mentawai se apoia no conceito Server-Side e facilita ao máximo qq problema complexo que uma aplicação web pode vir precisar. Apesar de ateh ter uma pequena framework de ajax.
Se vc quer um framework que te ajude em interface use JSF , se vc quer um framework que te economize esforço na camada de controller e negocio use o Mentawai, mas se vc quer um framework que seja totalmente CoC use VRaptor.
Lembremos que se ainda assim vc quiser um framework que tenha uma interface rica, facilidades para problemas comuns para aplicações web e ainda usar apenas CoC a combinação http://www.extjs.com+http://www.mentaframework.org+CoC do mentawai(http://forum.mentaframework.org/posts/list/765.page) é uma ótima pedida. Eu utilizo e gosto muito… ateh mais…

Gostei do seu post, eu acho que as pessoas se esquecem que o foco do JSF é o desenvolvimento de interfaces ricas para a Web.
E também concordo que o melhor caminho é convenção ao invés de configuração, e esta é uma tendência que java está tomando e fica bem claro na JPA.
Respondendo ao post, acho que na dúvida vc deve estudar os dois e decidir qual vc mais gostou, concerteza não vai ser tempo perdido.

g4j

rogeriuslima:

Respondendo ao post, acho que na dúvida vc deve estudar os dois e decidir qual vc mais gostou, concerteza não vai ser tempo perdido.

Só uma ressalva: Estude e decida pelo framework que atenda a funcionalidade que seu cliente necessita, e não o que te agrada. Todo mundo ta cansado de saber que não existe bala de prata, certo?

Criado 6 de novembro de 2006
Ultima resposta 10 de jun. de 2009
Respostas 26
Participantes 17