quarta-feira, 6 de agosto de 2008

Componente de Acesso Dados

O componente de acesso dados já disponibiliza recurso para gravação de objetos. E atualmente está em teste a versão com os métodos carregar objetos e listar objetos.
No entanto o método para carregar objetos só carrega propriedades de tipo primitivo do C# (int, string, ...) e para a orientação a objeto isso é uma barreira.
As classes se relacionam e portanto instanciamos objetos dentro de outros objetos. O grande desafio está em controlar essa recursividade nos relacionamentos.
Um forma de controle seria carregar os objetos sob demanda. No entanto isso gera outro problema de performance com o banco de dados qdo precisamos carregar uma lista de objetos.
Por exemplo: Preciso de uma listagem de produtos que me retorne idf, nome e descrição de categoria. O idf e o nome são atributos de tipo primitivo, int e string respectivamente, no entanto a descrição de categoria está em outro objeto, portanto cada produto da listagem vai fazer uma chamada de banco para carregar a sua categoria.
Quem sabe tratar a recursividade em apenas dois niveis seja uma idéia interessante mas também não atende a todos os casos.
Acho que esse assunto pode render e o componente de acesso dados pode reduzir ainda mais os custos de implementação dos objetos.

1 comentários:

Andre disse...

Bom uma idéia seria manter o retorno da consulta SQL no formato dos objetos.

Segue um exemplo de um cenário onde um objeto carregado deverá ser os dados básicos de uma pessoa e a cidade de nascimento.

Retorno do SQL:

- Pessoa_Idf
- Pessoa_Nome
- Pessoa_Cidade_Idf
- Pessoa_Cidade_Nome

Com base nos itens retornados o objeto poderá ser carregado e também carregar os objetos relacionados (Cidade).

O maior problema desse método é a necessidade de que o banco conheca a estrutura de objetos que ele vai carregar, ou seja, está errado.

[]s

by TemplatesForYouTFY
SoSuechtig, Burajiru