Tava lendo sobre essa framework VRaptor, do pessoal da Caelum. Realmente ficou bem interessante, hein? Estão de parabéns!
Gostaria que me ajudassem a fazer um comparativo com o ASP.NET MVC, da Microsoft.
Eu sou desenvolver .NET, e mexo com ASP.NET MVC. Se eu fosse migrar para o VRaptor, que argumentos vocês usariam para me convencer?
Espero que seja uma discussão sadia e interessante, ressaltando os pontos bons e ruins das duas tecnologias.
Até aí tudo bem, mas a questão se torna um pouco mais tecnológica, no caso. Eu quero descobrir quais as vantagens que o desenvolvimento com o VRaptor me fornecerão em comparação às ferramentas .NET para o mesmo propósito, em questão de produtividade, robustez, manutenção, configuração, esse tipo de coisa.
Ambos os frameworks são muito parecidos até na forma de programar injeção de dependências.
A grande diferença reside na parte da view, onde o asp.net utiliza razor e asp clássico como renderizadores, ao passo que o VRaptor é bem mais extensível.
Ambos trabalham muito bem com ajax, jquery e json.
A produtividade com o asp.net mvc e razor é bem mais notável que no VRaptor, mas ainda assim não há tanta diferença em produtividade, já que a definição de escopo de objetos no asp.net MVC é um pouco mais trabalhosa, coisa que no VRaptor já é built-in com anotações.
Dentre outras características que os diferem, o desempenho do VRaptor é um pouco superior, mas negligenciável.
Algo que com certeza vai fazer você optar pelo VRaptor é a independência, tudo o que advém da Microsoft é bastante engessado e atrelado à versão da tecnologia, a exemplo disso, o modo de login do asp.net mvc3 é completamente diferente do mvc4, isso confunde bastante os desenvolvedores e dificulta um upgrade, coisa que não acontece no VRaptor.
Detalhe, trabalhei como VRaptor há 3 anos, hoje trabalho com asp.net MVC, e ainda sinto falta do dinossauro.
[quote=Nicolas Fernandes]E aí, galerinha do GUJ!
Tudo bem?
Tava lendo sobre essa framework VRaptor, do pessoal da Caelum. Realmente ficou bem interessante, hein? Estão de parabéns!
Gostaria que me ajudassem a fazer um comparativo com o ASP.NET MVC, da Microsoft.
Eu sou desenvolver .NET, e mexo com ASP.NET MVC. Se eu fosse migrar para o VRaptor, que argumentos vocês usariam para me convencer?
Espero que seja uma discussão sadia e interessante, ressaltando os pontos bons e ruins das duas tecnologias.[/quote]
Nenhum…
Quem tem que motivar vc a fazer qualquer mudança são os próprios requisitos X cenário do projeto…
Aqui vc só vai conseguir trollagem…
[quote=FernandoFranzini][quote=Nicolas Fernandes]E aí, galerinha do GUJ!
Tudo bem?
Tava lendo sobre essa framework VRaptor, do pessoal da Caelum. Realmente ficou bem interessante, hein? Estão de parabéns!
Gostaria que me ajudassem a fazer um comparativo com o ASP.NET MVC, da Microsoft.
Eu sou desenvolver .NET, e mexo com ASP.NET MVC. Se eu fosse migrar para o VRaptor, que argumentos vocês usariam para me convencer?
Espero que seja uma discussão sadia e interessante, ressaltando os pontos bons e ruins das duas tecnologias.[/quote]
Nenhum…
Quem tem que motivar vc a fazer qualquer mudança são os próprios requisitos X cenário do projeto…
Aqui vc só vai conseguir trollagem…[/quote]
Bom, já que ia conseguir só trollagem, FernandoFranzini, tô bem, porque até agora você e o doravan deram respostas condizentes à pergunta.
Gostaria de saber a sua opinião sobre o assunto. Já trabalhou com o VRaptor? Já trabalhou com o ASP.NET MVC? Poderia dar uma opinião sobre, como fez o doravan? Isso propicia o aumento da discussão e um conhecimento melhor sobre as duas ferramentas, para quem acessar o tópico!
[quote=doravan]Ambos os frameworks são muito parecidos até na forma de programar injeção de dependências.
A grande diferença reside na parte da view, onde o asp.net utiliza razor e asp clássico como renderizadores, ao passo que o VRaptor é bem mais extensível.
Ambos trabalham muito bem com ajax, jquery e json.[/quote]
A DI do VRaptor trabalha com .xml ou coisa parecida? Porque - pelo menos as que estudei - algumas tecnologias WEB trabalham com configurações gigantescas através de .xml (lê-se JSP/Servlets, por exemplo).
Poderia me dar um exemplo mais prático sobre essa diferença da definião do escopo de objetos? Não entendi muito o que você quis dizer aqui.
[quote=doravan]
Dentre outras características que os diferem, o desempenho do VRaptor é um pouco superior, mas negligenciável.[/quote]
Defina esse desempenho negligenciável, por favor?
[quote=doravan]
Algo que com certeza vai fazer você optar pelo VRaptor é a independência, tudo o que advém da Microsoft é bastante engessado e atrelado à versão da tecnologia, a exemplo disso, o modo de login do asp.net mvc3 é completamente diferente do mvc4, isso confunde bastante os desenvolvedores e dificulta um upgrade, coisa que não acontece no VRaptor.
Detalhe, trabalhei como VRaptor há 3 anos, hoje trabalho com asp.net MVC, e ainda sinto falta do dinossauro.[/quote]
Concordo nesse ponto. Usando ferramentas Microsoft, querendo ou não estamos presos à tecnologia em questão e disponibilidades advindas somente da Microsoft. Apesar de que, hoje em dia, suas tecnologias de desenvolvimento estão se integrando bem com tecnologias independentes (lê-se jQuery, frameworks JS, etc). Porém, ainda sim continua um pouco limitado.
Agora fiquei com medo de migrar meus projetos rodando com ASP.NET MVC 3 para o 4… Há TANTA diferença assim, na sua opinião?
Vc ta me dizendo que precisa viajar…e ta me perguntando qual é a melhor forma…avião, carro ou moto?
Eu to te respondendo --> "eu não sei e não tenho como responder"!
Porque? porque eu não tenho requisitos…
Pensa bem…
Se vc tiver família de 5 pessoas…não da para ir de moto…(REQUISITO)
Se vc tiver preocupado com a SEGURANÇA da sua família de 5 pessoas…avião é a forma mais segura…(REQUISITO)
Se vc precisa levar uma geladeira na viagem…nao da para vc ir de moto (REQUISITOS)
Se vc tiver muita pressa…vai ter que ir de avião…(REQUISITO)
Se vc não tiver recursos…versus pressas não tem como ir de avião…(CONFLITOS DE REQUISITOS)
E se?
E se?
E se…
Ou seja, perguntar o que fazer ou usar sem o contexto e cenário a ser resolvido, qualquer resposta serve…não é mesmo?
Não tem como ficar conjecturando coisas aqui no forum…N
Nosso amigo falou sobre vendor lock-in…usar .NET é isso sim. sem duvidas. Usar Java não, entre muitas coisas outras…
Mas é isso é requisito para vc???
É por isso que esse tipo de pergunta não faz muito sentido…e normalmente não chega em nenhum lugar…
Vc na verdade precisa aprender todos os pros e contras de Java e .NET, levantar os requisitos do seu produto e VC mesmo vai chegar na conclusão…seria melhor A, ou seria melhor B ou até poderia ser ambos! Esse é o papel de um arquiteto de software…que escolhe tecnologia baseado em fatos, dados e justificativas plausíveis e não em preferencia pessoal, e se… ou wherever…
Caso vc venha postar aqui…todos os requisitos da solução, ai sim poderíamos então debater os pros e contras de usar .NET, Java, PHP, QT etc…Não sei se sera viável
[quote=FernandoFranzini]Vou tentar explicar meu ponto de vista:
Vc ta me dizendo que precisa viajar…e ta me perguntando qual é a melhor forma…avião, carro ou moto?
Eu to te respondendo --> "eu não sei e não tenho como responder"!
Porque? porque eu não tenho requisitos…
Pensa bem…
Se vc tiver família de 5 pessoas…não da para ir de moto…(REQUISITO)
Se vc tiver preocupado com a SEGURANÇA da sua família de 5 pessoas…avião é a forma mais segura…(REQUISITO)
Se vc precisa levar uma geladeira na viagem…nao da para vc ir de moto (REQUISITOS)
Se vc tiver muita pressa…vai ter que ir de avião…(REQUISITO)
Se vc não tiver recursos…versus pressas não tem como ir de avião…(CONFLITOS DE REQUISITOS)
E se?
E se?
E se…
Ou seja, perguntar o que fazer ou usar sem o contexto e cenário a ser resolvido, qualquer resposta serve…não é mesmo?
Não tem como ficar conjecturando coisas aqui no forum…N
Nosso amigo falou sobre vendor lock-in…usar .NET é isso sim. sem duvidas. Usar Java não, entre muitas coisas outras…
Mas é isso é requisito para vc???
Por que esse tipo de pergunta não faz muito sentido…
Vc na verdade precisa aprender todos os pros e contras de Java e .NET, levantar os requisitos do seu produto e VC mesmo vai chegar na conclusão…que poder ser ambos! Esse é o papel de um arquiteto de software…que escolhe tecnologia baseado em fatos e não em preferencia pessoal ou wherever…[/quote]
Sim, eu saquei o seu ponto de vista. Concordo que é relativa a escolha entre essas duas tecnologias, a qual deve ser baseada na necessidade atual. A questão, porém, não é voltada à necessidade criada pelos requisitos, e sim pelas facilidades de cada uma das tecnologias. É uma necessidade mais granulada, menos macro, sabe? Quero expor pontos bons e pontos ruins de cada uma delas. Com isso, eu ajudo o arquiteto a ter uma visão melhor (e também comparativa) sobre as duas tecnologias, tornando mais fácil o seu trabalho.
Eu quero discutir qual das frameworks trabalha melhor com integração de diversas frameworks open-source…
Eu quero discutir qual das frameworks é mais configurável e de um jeito simples e transparente…
Eu quero discutir qual das frameworks traz um dinamismo melhor…
Eu quero discutir qual das frameworks trabalha legal com requisições REST, com modularização…
Eu não quero discutir se o meu requisito demanda o uso de uma linguagem específica…
Eu não quero discutir se o meu requisito demanda um desempenho crucial…
No final, eu vou olhar para um requisito e analisar: “Bom, o VRaptor trabalha melhor com esse tipo de questão… Isso deve ser levado em conta.”, ou “Hm, o ASP.NET MVC tem facilidades nesse ponto. Acho que vale a pena usá-lo por isso.”
Para mim vc quer chegar no mesmo lugar que eu quis dizer…kkkkk
Mas ok.[/quote]
Eu quero chegar lá, sim. Mas, para chegar lá, quero fazer um comparativo entre as duas frameworks, onde requisitos não se encaixam no comparativo.
Para mim vc quer chegar no mesmo lugar que eu quis dizer…kkkkk
Mas ok.[/quote]
Eu quero chegar lá, sim. Mas, para chegar lá, quero fazer um comparativo entre as duas frameworks, onde requisitos não se encaixam no comparativo.[/quote]
Então é a mesma coisa…
Levante oque é importante para vc = requisitos -> não importa de se é de funcional, não funcional ou de equipe.
Estude cada framework e entenda aonde ele se posiciona nestes seus requisitos.
Se precisar fazer um estudo de caso que contemple esses requisitos e implemente o nas duas tecnologias = nos chamamos isso de Validação Arquitetural. Uma vez que vc acha que algo é bom, mas na pratica real não é.
Faça uma tabela comparativa e faça a tomada de decisão
[quote=FernandoFranzini]1. Levante oque é importante para vc = requisitos -> não importa de se é de funcional, não funcional ou de equipe.[/quote] OK.
[quote=FernandoFranzini]2. Estude cada framework e entenda aonde ele se posiciona nestes seus requisitos.[/quote] Estamos aqui. Eu uso uma ferramenta, e estou querendo estudar o VRaptor em comparação ao que já conheço. Quero ver se ele se encaixa no que necessito. Por isso quero compará-lo ao que já conheço, para ter uma ideia da dimensão da framework.
[quote=Nicolas Fernandes]Seguindo sua linha de pensamento…
[quote=FernandoFranzini]1. Levante oque é importante para vc = requisitos -> não importa de se é de funcional, não funcional ou de equipe.[/quote] OK.
[quote=FernandoFranzini]2. Estude cada framework e entenda aonde ele se posiciona nestes seus requisitos.[/quote] Estamos aqui. Eu uso uma ferramenta, e estou querendo estudar o VRaptor em comparação ao que já conheço. Quero ver se ele se encaixa no que necessito. Por isso quero compará-lo ao que já conheço, para ter uma ideia da dimensão da framework.
E agora, ficou melhor de entender?
[/quote]
Agora acho que você chegou no ponto. Estude primeiro, levante sua impressão sobre e depois traga ao fórum o seu ponto de vista. Assim, você poderá se direcionar melhor com relação ao framework, além de poder distinguir com mais clareza os flames dos fatos.
Então na verdade você não quer “duelar” uma coisa com a outra, quer saber se VRaptor seria equiparável ao ASP.NET MVC, para um caso de ambiente que seja indicado usar Java, como ambiente com servidor web Linux, pois servidor web Windows nem penso duas vezes para decidir por .NET sempre. Fora o que ‘doravan’ já descreveu muito bem aqui sobre os dois, uma desvantagem do VRaptor é de ser pouco usado no mercado mundialmente, já ASP.NET MVC é super usado, então para o caso de Java eu prefiro Spring MVC. Se o fator mercado pesar para você ou sua empresa, considere isso, senão vai fundo.
No mais, a melhor coisa é experimentar. Retirando essa questão de “caso isso ou aquilo” e indo pro “vs” do título deste tópico, particularmente me sinto melhor com ASP.NET.MVC, além de também ser open source como os frameworks para Java, gosto pelo “todo” (IDE Visual Studio, linguagem C#, engine Razor), então quando posso escolher o ambiente ou o ambiente é favorável é o que prefiro. Gostar e se sentir bem influencia mais na produtividade e sucesso do que outras coisas.
Já tive q voltar pra Java num projeto e usei VRaptor pq trabalha sobre o mesmo paradigma do .Net MVC: Convention Over Configuration, quer dizer q vc não precisa ficar gerenciando o ambiente do projeto/desenvolvimento com XMLs, annotations, etc, vc altera a exceção, não fica cuidando do q é regra qdo se trata de desenvolvimento web. Só isso por si já é um grande ganho em produtividade e tempo pra focar no negócio (uma pena q o Java em geral tenha ido pra um caminho nebuloso nesse sentido, vendo de fora hoje, parece q piorou com jsf).
Já faz quase um ano q mexi com VRaptor, na época, duas coisas pesaram bem a favor do .Net MVC:
IDE: acho q ainda pesa (no java em geral), se vc pegar um projeto .Net vai conseguir abrir em qq VisualStudio, na pior vai ter q importar as bibliotecas extras mas sem preocupação de compatibilidade.
Ajax/JSON: a comunicação no .Net é suave, na época com VRaptor não consegui fazer um parser de retorno de objeto direto do back pro front usando o padrão do framework (um bug, a recomendação era uma solução de fora - partindo pra colcha de retalhos).
Quanto ao custo pro desenvolvedor, entre as plataformas é o mesmo, tudo free, sendo q a versão free/light do VisualStudio não tem uns recursos gráficos e tals, mas permite vc fazer tudo na mão (pra quem desenvolve ou já desenvolveu com java, isso não é problema, pelo contrário, vantagem pela IDE mais leve ;). De qq forma as licenças são baratas para desenvolvedores.
Não troco hoje .Net por Java, mas se tiver que mexer com Java, com certeza usarei VRaptor
[quote=pgnt]Migrei de Java pra .Net por causa do .Net MVC.
Já tive q voltar pra Java num projeto e usei VRaptor pq trabalha sobre o mesmo paradigma do .Net MVC: Convention Over Configuration, quer dizer q vc não precisa ficar gerenciando o ambiente do projeto/desenvolvimento com XMLs, annotations, etc, vc altera a exceção, não fica cuidando do q é regra qdo se trata de desenvolvimento web. Só isso por si já é um grande ganho em produtividade e tempo pra focar no negócio (uma pena q o Java em geral tenha ido pra um caminho nebuloso nesse sentido, vendo de fora hoje, parece q piorou com jsf).
Já faz quase um ano q mexi com VRaptor, na época, duas coisas pesaram bem a favor do .Net MVC:
IDE: acho q ainda pesa (no java em geral), se vc pegar um projeto .Net vai conseguir abrir em qq VisualStudio, na pior vai ter q importar as bibliotecas extras mas sem preocupação de compatibilidade.
Ajax/JSON: a comunicação no .Net é suave, na época com VRaptor não consegui fazer um parser de retorno de objeto direto do back pro front usando o padrão do framework (um bug, a recomendação era uma solução de fora - partindo pra colcha de retalhos).
Quanto ao custo pro desenvolvedor, entre as plataformas é o mesmo, tudo free, sendo q a versão free/light do VisualStudio não tem uns recursos gráficos e tals, mas permite vc fazer tudo na mão (pra quem desenvolve ou já desenvolveu com java, isso não é problema, pelo contrário, vantagem pela IDE mais leve ;). De qq forma as licenças são baratas para desenvolvedores.
Não troco hoje .Net por Java, mas se tiver que mexer com Java, com certeza usarei VRaptor
abs
[/quote]
Sobre JSF sempre falo isso, infelizmente a comunidade Java e a própria dona do Java valoriza muito o caminho nebuloso do component based. Mas não é por ser padrão da Oracle que vamos usar essas soluções nebulosas para Java, preferindo o Spring Mvc por exemplo ou no seu caso VRaptor.
Pois é, recurso gráfico para desenhar pagina hoje não tem necessidade, só atrapalha devido a complexidade e dinamismo atual da usabilidade web. Grid systems ajudam muito a layoutar sem editor visual.
Sobre o ‘padrão Oracle’, caímos ainda numa outra discussão além das plataformas, q remontam ao interesses das grandes em vender tecnologia.
Java sempre teve o mainstream no MVC (jsp e servlets como DNA), aí, vem a Oracle, joga todos esses anos de aprimoramento pra debaixo do tapete empurrando um paradigma orientado a componente (será q já não vimos isso - webforms?! - em algum lugar? rs) pra ganhar em vendas de licenças (da sua IDE por ex), cursos, consultorias, etc…
Saudades da SUN, q era uma GRANDE empresa em todos os sentidos…
[quote=pgnt]Sobre o ‘padrão Oracle’, caímos ainda numa outra discussão além das plataformas, q remontam ao interesses das grandes em vender tecnologia.
Java sempre teve o mainstream no MVC (jsp e servlets como DNA), aí, vem a Oracle, joga todos esses anos de aprimoramento pra debaixo do tapete empurrando um paradigma orientado a componente (será q já não vimos isso - webforms?! - em algum lugar? rs) pra ganhar em vendas de licenças (da sua IDE por ex), cursos, consultorias, etc…
Saudades da SUN, q era uma GRANDE empresa em todos os sentidos…
[/quote]
Acho q ta tendo uma confusão com MVC e Action Based x Component Based, JSF é MVC.
Saldades da SUN? Foi na época da Sun que criaram o JSF.
Concordo quando se fala que a questão melhor, produtividade, etc, depende muito mais dos requisitos…
Embora no geral, a maior parte dos requisitos de sistema podem ser atendidos pelas 2 plataformas pois são as mais usadas no mundo (dahhhhnnnn)
Java tem um leque maior de opções, ferramentas, frameworks, etc etc etc. Isso pode ser uma vantagem ou desvantagem, depende do ponto de vista.
Java é mais portável que .NET, mesmo considerando o Mono. Hoje não tem nada mais facil e barato de ter a tão sonhada multi-plataforma do que Java, embora isso tenha a ver com os requisitos, pois há casos que uma simples linguagem de script como PHP que também é multi-plataforma, atendem perfeitamente bem e de forma mais simples, facil e barata.
Ter numa empresa uma salada de tecnologias, usar Java para algumas coisas e .NET para outras tem suas vantagens e desvantagens, a principal vantagem que vejo é que usar a tecnologia mais produtiva para determinado requisito pode ser mais barato no começo, mas minha opinião é que a longo prazo isso pode vir a custar caro. Sinto isso na pele hoje pois é muito difícil contratar um profissional que sabe Java, .NET, PHP, Visual Basic 6 e ainda por cima Genexus.
Costumo dizer que o Java é mais rapido e o .NET mais leve. Ser leve é rodar com menos recursos. Ser rápido é responder rápido custe o que custar.
Numa máquina com 512MB de RAM, dependendo do REQUISITO (novamente) o .NET pode funcionar muito melhor que o Java, o PHP então nem se fala. Dependendo da máquina e do requisito pode ser inviável implementar em .NET (já trabalhei em projetos que migraram de .NET para Java exatamente por causa da performance, mas pode ter certeza que eram projetos incomuns).
Vraptor é bem parecido que ASP MVC. Eu particularmente gosto mais de Vraptor. Também gosto mais de eclipse do que de visual studio. Também gosto mais de linux do que de windows. Também gosto mais de pizza de mussarela do que de calabresa. De VW GOL do que GM CELTA, etc. Mas isso é gosto pessoal e não deve ser levado em conta em projetos profissionais.
Só um adendo quanto às IDE’s. O Visual Studio com certeza é muito bom e Eclipse e NetBeans (gratuitas) não chegam nem perto. Agora IDE paga para Java temos o Intellij IDEA que é excelente e dá um banho em Eclipse e Netbeans.
Não conheço Asp.NET MVC, mas acho o VRaptor muito bom. Melhor que o Spring MVC (que também é bom). Se já tiveram problemas com parse de json/xml com certeza já foi resolvido. E você ainda pode criar seus próprios parser’s usando a biblioteca que quiser, e isso sem nenhuma gambiarra é da natureza do VRaptor poder sobrescrever seus comportamentos.
O que mais gosto no VRaptor é que ele é muito simples de usar, configurar e aprender. Qualquer um que conheça Servlets ou algum framework Java MVC vai aprende-lo rápido.