Usuário com melhor resposta
Dúvida - Arquiteturas e padrões para Obtejo / Relacional

Pergunta
-
Caros amigos do Grupo
Uma dúvida recorrente quando se fala em orientação a objeto é sem dúvida sua relação com banco de dados. Deste modo, gostaria da opinião de vocês sobre a melhor arquitetura para um software orientado a objeto utilizando banco de dados relacional.
Sendo mais específico, digamos que eu tenha um banco de dados na 3ª forma normal, onde uma consulta simples terá que ser baseada em 5 ou 6 tabelas, supondo que eu estou utilizando um modelo APL > BL > DAO e tenho um mapeamento das tabelas realizado, onde cada objeto/ tabela esta mapeado com base no famoso mapeamento objeto-relacional. Qual seria a forma mais inteligente de trazer estas informações conjuntas para um Grid, ou mesmo um relatório?
Na forma procedural, enviaríamos uma consulta ao BD fazendo todos os “joins” necessários, e pronto! Retorna um Datatable que vai carregar os dados na apresentação.
Mas como nem tudo são flores, qual seria a melhor maneira em um projeto OO? Mantendo o enfoque no tão sonhado “baixo acoplamento e alta coesão” J
Abraço a todos,
Edson
Respostas
-
Se a busca pelos dados for recorente é interessante criar "Views" ou no banco ou apenas com objetos, assim ficariam de forma agrupados as informações.
Uma boa arquitetura é a DDD que deixa bem definido o que é o dominio.
Tem um post que pode ajudar a definir uma linha de solução: http://blog.aspercom.com.br/2009/08/11/repositorios-ddd/
If was useful mark as answered. Mariano, Paulo T. C.
- Sugerido como Resposta ptcmariano sábado, 19 de maio de 2012 21:49
- Marcado como Resposta Wagner dos Santos VasconcellosModerator quarta-feira, 23 de maio de 2012 10:38
Todas as Respostas
-
Caros amigos do Grupo
Uma dúvida recorrente quando se fala em orientação a objeto é sem dúvida sua relação com banco de dados. Deste modo, gostaria da opinião de vocês sobre a melhor arquitetura para um software orientado a objeto utilizando banco de dados relacional.
Sendo mais específico, digamos que eu tenha um banco de dados na 3ª forma normal, onde uma consulta simples terá que ser baseada em 5 ou 6 tabelas, supondo que eu estou utilizando um modelo APL > BL > DAO e tenho um mapeamento das tabelas realizado, onde cada objeto/ tabela esta mapeado com base no famoso mapeamento objeto-relacional. Qual seria a forma mais inteligente de trazer estas informações conjuntas para um Grid, ou mesmo um relatório?
Na forma procedural, enviaríamos uma consulta ao BD fazendo todos os “joins” necessários, e pronto! Retorna um Datatable que vai carregar os dados na apresentação.
Mas como nem tudo são flores, qual seria a melhor maneira em um projeto OO? Mantendo o enfoque no tão sonhado “baixo acoplamento e alta coesão” J
Abraço a todos,
Edson
-
Se a busca pelos dados for recorente é interessante criar "Views" ou no banco ou apenas com objetos, assim ficariam de forma agrupados as informações.
Uma boa arquitetura é a DDD que deixa bem definido o que é o dominio.
Tem um post que pode ajudar a definir uma linha de solução: http://blog.aspercom.com.br/2009/08/11/repositorios-ddd/
If was useful mark as answered. Mariano, Paulo T. C.
- Sugerido como Resposta ptcmariano sábado, 19 de maio de 2012 21:49
- Marcado como Resposta Wagner dos Santos VasconcellosModerator quarta-feira, 23 de maio de 2012 10:38
-
Oi Paulo,
Obrigado pela resposta. Andei lendo sobre a arquitetura DDD e achei realmente bastante adequada, todavia, minha dúvida é um pouco mais técnica. Basicamente, se eu não utilizar views, como eu obtenho o conjunto de dados na camada de apresentação? Supondo que tenho uma arquitetura 3 camadas (APP+negócio+persistência)
Ex. No caso de um carregamento de um grid ou relatório na camada de apresentação, o que devo retornar das camadas inferiores? Como esta consulta seria realizada (SQL)? como se daria o carregamento do grid na APP? (lembrando que se trata de uma consulta que envolve muitas tabelas)
Um abraço e muito obrigado,
Edson