segunda-feira, 22 de janeiro de 2007

Acesso a dados de forma não acoplada com ObjectDataSource

Neste post vou falar de um componente muito interessante que eu conheci semana passada estudando ASP.NET: o ObjectDatasource.

Este objeto funciona da mesma maneira que eu SqlDatasource: é conectado no WebForm que vai usar os dados e faz as operações do banco de dados. Mas o SqlDataSource deixa nossa interface totalmente acoplada à camada de dados. porque é diretamente conectado ao banco de dados e leva inclusive comandos SQL na camada de apresentação; com certeza não é a melhor opção.

Este componente ObjectDataSource nos permite, em vez de conectar diretamente à base de dados, conectar com algum objeto de negócio criado por nós na camada lógica de negócio e selecionar métodos implementados por nós no nosso objeto de negócio para implementar as operações de select, insert, update e delete, inclusive com parâmetros.
Outra coisa interessante sobre este objeto é que não é obrigatório definir operações que nós não vamos usar: se nossa página for apenas de consulta não precisamos configurar métodos de insert, update e delete.

O método que representa o select pode retornar um DataSet ou um DataTable e pode ter parâmetros ou não; os métodos que representam o insert, update e o delete devem ter os parâmetros que representam os campos da tabela que serão afetados na operação.

Vou dar um exemplo básico dos métodos do objeto de negócio para usarmos o ObjectDataSource. Nossa tabela de exemplo será chamada Usuarios e os campos serão:

UsuarioID int,
Nome string,
Email string,
Login string,
Senha string.

nossos métodos devem ter as seguintes assinaturas:


select:
public DataSet Selecionar() {
// implementação...
}

insert:
public void Incluir(int UsuarioID, string Nome, string Email, string Login, string Senha) {
// implementação...
}

update:
public void Alterar(int UsuarioID, string Nome, string Email, string Login, string Senha) {
// implementação...
}

delete:
public void Delete(int UsuarioID) {
// implementação...
}


Os parâmetros dos métodos devem ter o mesmo nome e tipo dos campos retornados pelo método do select, pois o ObjectDataSource usa estes campos como valores dos parâmetros para as demais operações.

É isso aí. Espero que tenha ajudade e até a próxima.

Nenhum comentário:

Postar um comentário

 
BlogBlogs.Com.Br