Frameworks ou Templates Engine?

Olá pessoal! :o
Programo em JAVA a menos de um ano utilizando Servlets/JSP e JDBC para desenvolver projetos de websites dinâmicos, porém agora que estou amadurecendo nesta deliciosa tecnologia, deparei-me com outras opções a abordagem JSP porem não as entendi muito bem.
Pude ver no site Jakarta, no site do GUJ e nas várias mensagens do forúm que existem os Frameworks ou Templates Engines para desenvolvimento web, gostaria de entender melhor no que refere as ferramentas abaixo:

  • Struts;
  • Turbine/Torque;
  • Velocity;
  • Tapestry;

Qual a diferença entre Framework e Template Engine?
Quem faz o que? Possuem funcionalidades diferentes ou servem para o mesmo propósito?
Estas ferramentas possibilitam desenvolver MVC?
O que é Model 2 approach? é diferente de MCV?
Qual delas é mais recomendada para iniciar um aprendizado?

Conto com a opnião de vocês a respeito! Poderiamos até sugerir um tutorial para o GUJ sobre esta questão (Frameworks/Templates Engine), o que acham?

Luciano de Almeida Castilho
ICQ Number: 9006220

“O poder de uma civilização não está em promover
a guerra, mas em manter a paz” (Gene Roddenberry)

Vamos por partes então…

Framework é uma estrutura pronta que serve para você criar toda a sua aplicação. Struts é uma framework baseada em MVC, aí você vai criando o seu código para lógica de negócio (actions), visualização, etc e adaptando dentro dela, utilizando seus recursos. Normalmente as frameworks provêm uma ou mais classes de controller para fazer essa parte de ver que classe chamar a partir de uma determinada requisição do usuário, etc., além de várias outras coisas úteis para facilitar seu desenvolvimento.
Template Engine já está mais relacionado a parte de visualização. Ao invés de usar JSP a página é criada dinamicamente por servlets mesmo através desta template engine. Tem um tutorial sobre Velocity aqui no GUJ, em que você pode entender melhor como isso funciona.
A diferença do model 2 para o model 1 é que no 1 o processamento das requisições acaba ficando no próprio JSP e no 2 você tem uma estrutura com as camadas mais definidas, usando controllers. Você pode ver uns diagramas comparando ambos no artigo Servlets and JSP Pages Best Practices, do site da Sun.

Sobre qual aprender primeiro, acho que o ideal é entender pra que serve exatamente cada um e aí se aprofundar no que achar mais adequado para suas necessidades.

Completando a Bani

Struts - framework q faz o papel do Controller no MVC
Tapestry - framework que faz papel de Controller e de View, ja que tem seu proprio sistema de template
Torque - framework apra persistencia de objetos em banco de dados (Model)
Velocity - template engine, cuida do View e da um PAU no JSP.
Turbine - superhyperframework, que mistura torque (ou ojb) com struts e velocity, fazendo o MVC completo. Voce ainda pode mudar algum desses componentes. Eh um projeto ENORME.

Só pra completar um pouquinho mais, já que esse é um tópico bem legal, alguém fale um pouco sobre o OJB do grupo Jakarta. Esse projeto também cuida da persistencia de objetos em banco de dados como o torque? Por que usar um ou outro? Ou então se são diferentes explica pra gente! :slight_smile:

[]'s

OJB rlz…
O pessoal do javafree vai usar ele para persistencia de dados no novo nuke

O OJB é um framework para persistência de objetos assim como o Torque.

O que existe de diferênte é que o OJB segue as especificações JDO da SUN.

Gostaria de agradecer ao pessoal que postou suas opniões no tópico.
Agora estou entendendo melhor quem é o que em relação as referidas ferramentas.
Valeu pessoal!

Luciano