| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/05/2008 06:47:05
|
fbarreto
JavaChild
![[Avatar]](/images/avatar/f386f35a4c15acb710fd7bf4f00110a3.jpg)
Membro desde: 17/01/2008 15:51:40
Mensagens: 143
Localização: Sao Paulo-SP
Offline
|
Ola bom dia pessoal,estou trabalhando em um projeto que utiliza MVC,DAO,JSF,Hibernate minha duvida é a seguinte,Quantas camadas possui meu Sistema?
MVC-3
DAO é uma camada?
O contexto de Persistencia do hibernate é uma camada?
Obrigada pessoal,aguardo respostas.
|
fernanda barreto
orkut = http://www.orkut.com/Scrapbook.aspx?uid=6636644145253112548 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/05/2008 07:46:16
|
fnandos
JavaEvangelist
![[Avatar]](/images/avatar/a5287c074a4729ea3521dfe8eec6f83e.jpg)
Membro desde: 18/02/2008 10:57:42
Mensagens: 317
Localização: Santa Catarina
Offline
|
DAO é seu model do MVC, já o JSF é seu view e o hibernate faz parte do controller que processa as requisições feitas na view utilizando as regras do definidas no model, portanto três camadas.
This message was edited 1 time. Last update was at 12/05/2008 07:53:29
|
Quando saci entra na briga todo chute vira voadora! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/05/2008 08:14:37
|
horacio_barros
JavaChild
Membro desde: 13/03/2008 08:19:18
Mensagens: 108
Localização: BELO HORIZONTE - MG
Offline
|
No seu caso, o MODEL sera seu banco de dados, HIBERNATE é
o seu Controller e JSF e' sua VIEW ..
Portanto, 3 camadas.
|
Horácio Barros
Desenvolvedor / SCJP 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/05/2008 08:18:45
|
tnaires
GUJ Master
![[Avatar]](/images/avatar/5f6371c9126149517d9ba475def53139.png)
Membro desde: 22/12/2003 08:05:58
Mensagens: 1678
Localização: Porto Alegre/RS - Natal/RN
Offline
|
Não, não.
O JSF faz o papel de view e de controller nesse caso. Hibernate, DAOs, tudo isso pertence ao seu model. O modelo é tudo aquilo que representa o estado da sua aplicação. Porém, com isso não dá pra saber quantas camadas seu sistema possui.
Ultimamente ( graças ao Phillip Calçado ), a seguinte frase tem sido repetida como um mantra aqui no GUJ: MVC != CAMADAS!
Principal fonte: http://fragmental.com.br/wiki/index.php?title=MVC_e_Camadas
Abraços
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/05/2008 08:48:42
|
Leonardo3001
GUJ Ranger
Membro desde: 04/07/2007 18:28:58
Mensagens: 975
Offline
|
A língua portuguesa é muito traiçoeira para certas definições. Uma delas é a tradução para "design patterns", que fica "padrões de projeto". Na lingua inglesa, "pattern" significa um modelo que se pode segui-lo ou imitá-lo, mas a palavra "padrão", na nossa língua, está mais próxima de "standard" na língua inglesa, que significa um conjunto de métricas que confere qualidade. Com isso as pessoas encaram "design patterns" como se fosse "design standards", fazendo com que as pessoas o utilizem demasiadamente achando que com isso se está garantindo qualidade.
Camadas é outra palavra traiçoeira. Tanto "tier" quando "layer" significam camada na nossa língua, porém, tier é uma divisão interprocessos ou intermáquinas, enquanto layer é simplesmente uma divisão lógica no sistema (ou seja, eu posso ter vários layers em um único tier).
Considerando isso acima, posso afirmar com toda certeza que seu sistema tem três tiers: um tier é o browser do usuário, outro tier é o "war" no seu servidor de aplicações, e o último tier é a base de dados.
Entretanto, não posso dizer ao certo quantos layers seu sistema possui, principalmente porque arquitetos adoram subdividir em demasia o tier "do meio", mas posso lhe dar algumas orientações:
Não confunda MVC com camadas (tier ou layer), são coisas meio distintas. No seu caso, a VIEW são as páginas, o CONTROLLER são o faces-config.xml, os managed beans e o servlet que processa requisições Faces, e o MODEL é todo o resto, incluindo DAOs e contexto de persistência.
DAO é considerado um layer.
O contexto de persistência é algo que é invisível à sua aplicação. Não sei dizer ao certo, mas não o consideraria uma layer.
Hibernate não tem nada a ver com controller, ele processa objetos de domínio, ou seja, do model.
É isso.
|
Leonardo Veríssimo
-------------------------------------------------
Objectzilla |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/05/2008 08:54:48
|
tnaires
GUJ Master
![[Avatar]](/images/avatar/5f6371c9126149517d9ba475def53139.png)
Membro desde: 22/12/2003 08:05:58
Mensagens: 1678
Localização: Porto Alegre/RS - Natal/RN
Offline
|
Excelente explicação do Leonardo3001.
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/05/2008 08:59:18
|
fbarreto
JavaChild
![[Avatar]](/images/avatar/f386f35a4c15acb710fd7bf4f00110a3.jpg)
Membro desde: 17/01/2008 15:51:40
Mensagens: 143
Localização: Sao Paulo-SP
Offline
|
Mto Obrigada pela explicacao pessoal bjos.
|
fernanda barreto
orkut = http://www.orkut.com/Scrapbook.aspx?uid=6636644145253112548 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2008 16:44:48
|
seuparada
HelloWorld
Membro desde: 10/08/2007 18:28:23
Mensagens: 11
Offline
|
Olá a todos,
pra mim uma camada existe para desempenhar um papel bem definido dentro da aplicação, como por exemplo persistir os objetos de negócio de um sistema, ou realizar a integração com outros sistemas legados, etc. Cada uma dessas camadas pode ser composta por um ou mais componentes que vão trabalhar juntos para atender os objetivos da mesma.
Acredito que a maioria dos sistemas cai naquela definição clássica de 3 camadas: Apresentação, Negócio e Persistência e que eu vejo é que existem muitas tecnologias, frameworks, patterns, etc. para serem utilizados no desenvolvimento das camadas. Struts, JSF, Swing e SWT são exemplos de tecnologias para desenvolvimento da Apresentação, enquanto Hibernate, XStream e TopLink são para a persistência... há inúmeros outros exemplos que se eu for citar vou passar o dia todo
Na verdade nem sei o quanto esses conceitos de camadas mudaram/evoluiram... alguém pode comentar sobre esses conceitos que falei ?
|
André Paschoal |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2008 19:03:51
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Leonardo3001 wrote:
 DAO é considerado um layer.
Não. DAO é um padrão que vive dentrod a Camada de Persistência.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2008 19:22:43
|
baudamix
JavaTeenager
![[Avatar]](/images/avatar/396695e64b47b6de6069029adaa04f47.jpg)
Membro desde: 14/02/2008 10:03:33
Mensagens: 153
Localização: São Paulo
Offline
|
seuparada como o Leonardo3001 em português a plvr camadas serve para explicar a msm coisa que tier e layer, a diferença entre eles é simples tier são separações fisicas e layer são separações logicas. ex.: na sua aplicação vc pode ter um servidor de HTTP(ApacheHTTP) para receber as chamadas em um tier um Servidor de Aplicação(Tomcat) q seria nosso segundo tier e um bancoDados em outro servidor separado isso eu chamaria de 3tier um exemplo mais comum é vc desenvolvendo tomcat+banco 2tier que podem estar no msm maquina. Agora com MVC estamos falando de layer's inicialmente separamos em três camadas se falarmos da arquitetura/padrão MVC e para por ai 3layer. Os frameworks em geral fazem a parte Viem e Controller agora o Model é vc que trabalha e ai pode ter N layer na sua aplicação ex.: na Classe que recebe os parâmetros do JSP(ex. Action do struts uo bean do JSF) vc pode usar um Delegate para acessar os Hibernate/DAO/TopLink/repositorio só ai vc tem 5layer JSP>controler>Action>delegate>percistencia, esse layer são infra-estrutura, dominio do negocio, camadas da aplicação entende... Resumindo se vc fala de MVC temos três camadas o resto da salada é camadas da aplicação q geralmente estão dentro de model(MVC). abr
This message was edited 2 times. Last update was at 26/05/2008 19:26:44
|
[BauDaMix] |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2008 22:17:50
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
baudamix wrote:
Agora com MVC estamos falando de layer's inicialmente separamos em três camadas se falarmos da arquitetura/padrão MVC e para por ai 3layer.
[...]
Resumindo se vc fala de MVC temos três camadas o resto da salada é camadas da aplicação q geralmente estão dentro de model(MVC).
MVC e Camadas são coisas diferentes. MVC não implica em Camadas, Camadas não implica em MVC.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2008 22:28:30
|
baudamix
JavaTeenager
![[Avatar]](/images/avatar/396695e64b47b6de6069029adaa04f47.jpg)
Membro desde: 14/02/2008 10:03:33
Mensagens: 153
Localização: São Paulo
Offline
|
sim, camadas não são MVC, mas em MVC nós sempre vamos encontrar camadas nem que sejam duas como Java Swing....
Agora com MVC estamos falando de layer's inicialmente separamos em três camadas se falarmos da arquitetura/padrão MVC e para por ai 3layer
eu só usei como exemplo uma vez que estávamos falando camadas (tier e layer)
|
[BauDaMix] |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2008 22:31:31
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
baudamix wrote:sim, camadas não são MVC, mas em MVC nós sempre vamos encontrar camadas nem que sejam duas como Java Swing....
Não. Eu posso não ter qualquer divisão em Camadas e ter MVC. Muita gente cria aplicações em Swing assim, aliás, com os XxxModel da vida que fazem consultas ao banco, executam regras de negócio e escrevem log ao mesmo tempo. VOcê ainda tem um Model só que ele não está numa Camada de Negócios como se esperaria.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/05/2008 08:20:01
|
seuparada
HelloWorld
Membro desde: 10/08/2007 18:28:23
Mensagens: 11
Offline
|
Calçado,
então segundo as conversas que se seguiram, a idéia de camadas que falei anteriormente está no caminho correto ?!
|
André Paschoal |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/05/2008 08:33:51
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Sim, exceto que o XStream serve para muito mais que persistência.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
|
|