Oi, alguém pode dar uma explicação entre pró e contras (aplicabilidade) dos demais tipos MVC ditos na aula?
(Java) VRaptor Spring
(Ruby) Rails
(Python, acrescentei esse) Django
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Oi, alguém pode dar uma explicação entre pró e contras (aplicabilidade) dos demais tipos MVC ditos na aula?
(Java) VRaptor Spring
(Ruby) Rails
(Python, acrescentei esse) Django
Oi Bernardo, tudo bem ?
No mundo Java temos uma série de frameworks MVC interessantes.
Entre eles Spring MVC, JSF, VRaptor, Struts entre outros.
Spring MVC: O líder do mercado hoje (bem na frente do próprio JSF, que faz parte da especificação Java EE). Projeto de longa data que nasceu integrado de maneira transparente com o Spring Framework (container de injeção de dependências muito utilizado no mundo java). Implementação MVC tradicional (baseada em ações e não manutenção de estado entre views) de muita qualidade. Tem uma separação clara e de facil entendimento em camadas, com muitas facilidades a mais providas, como módulos de validação, conversão, cache etc, tudo com muita transparência, facilidade de configuração e de escrita de código. Não a toa lidera como um dos principais frameworks do mercado.
JSF: Implementação MVC da especificação Java EE. Difere bastante do Spring MVC, VRaptor etc por ser baseado em componentes e na manutenção do estado das informações entre as interações da aplicação (MVC component based). É bem utilizado em aplicações que possuem views muito densas, onde não é interessante que cada interação desencadeie uma nova atualização de um grande conjunto de informações desnecessariamente (em geral sistemas admin, que se assemelham a ERPs em alguns aspectos, sistemas que se assemelham a programação desktop na web, etc). Tem como (talvez) ponto negativo um código um pouco burocrático e mais pesado em alguns aspectos.
VRaptor: Criado na USP, mantido hoje pela Caelum e diversos outros contribuidores é uma implementação MVC action based (assim como Spring MVC) que visa agilidade, baseado em uma série de convenções sobre estrutura de projeto, código e configuração básica.
Struts: Foi o pioneiro nesse mundo. Primeiro framework a prover uma servlet controladora genérica e reutilizável entre diversos projetos. Ainda usado em projetos (em sua maioria legados). Por ser o precursor deteve a maior parte do mercado, mas com o crescimento da linguagem perdeu espaço a partir da concorrência principalmente do Spring MVC que evoluiu alguns de seus conceitos com as novas possibilidades que o Java veio trazendo a cada nova versão.
Ambos tem suas peculiaridades sobre a implementação do padrão arquitetural MVC, seus pontos fracos e fortes em cada cenário, etc.
Deixo pro pessoal complementar com as soluções citadas no tópico que não estão no mundo Java =P e até mesmo sobre os frameworks abordados.
Espero ter ajudado. Abraço!