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, 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!