Revista MSDN Magazine Edição 16 - Utilizando Reflection no .NET Framework

Artigo Originalmente Publicado na MSDN Magazine Edição 16

Clique aqui para ler todos os artigos desta edição

 

Utilizando Reflection no .NET Framework

por Leandro Carvalho

Este artigo discute

Este artigo usa as seguintes tecnologias:

·Biblioteca Reflection do .NET Framework

·Vínculo automático entre as camadas de dados, interface e negócio

C# e MS-Access

 

Download:

reflection.zip (175KB)

Chapéu

C#

 

 

 

Reflection é uma biblioteca do .NET Framework que disponibiliza para os desenvolvedores desmembrar as características (atributos, métodos, interface, campos e construtores) de um objeto através do seu tipo. Esta prática e cômoda biblioteca é a chave que oferece a possibilidade de implementarmos a codificação necessária para manter a persistência automática entre as camadas de dados (tabelas), de negócio (classes) e interface (formulários) em nossos sistemas.

 

Projeto de exemplo em três camadas

Há muito que os desenvolvedores vêm trabalhando uma forma para aumentar a produtividade e padronizar o processo de desenvolvimento de sistemas. Um bom exemplo é a utilização dos application blocks. Entretanto, algumas tarefas repetitivas continuam em nosso dia-a-dia de desenvolvimento de sistemas. Uma delas é o processo de capturar as informações que estão em um formulário, carregá-los nas classes de negócio e depois gravar/excluir/atualizar em um banco de dados. Feito isto, o processo inverso (dados para classes de negócios, classes de negócios para controles do formulário) deve ser implementado. Como este processo é encontrado facilmente em sistemas, então, porque não termos um código padrão que permita a simplificação desse processo?

Hoje o .NET Framework já disponibiliza uma série de recursos que já fazem este vínculo automático. Um deles é o uso de Databind, porém este recurso nos obriga a configurar campo-a-campo, atributo-a-atributo da aplicação. É em busca de uma forma mais simples e única, que possa ser utilizada por todos os aplicativos, é que iremos nos aventurar através da biblioteca de Reflection, onde mostrarei como será possível vincular os dados de uma tabela aos atributos de uma classe de negócio, e estes atributos, aos controles do formulário (Interface) e vice-versa.

Para isso, iremos criar uma classe de controle que fará este vínculo automático. Esta classe deverá ser herdada por todas as classes de negócio, evitando que o desenvolvedor tenha que se preocupar em escrever este vínculo campo-a-campo, atributo-a-atributo no código fonte.

Veja um exemplo de um cadastro de usuário onde utiliza-se o Reflection para aumentar a produtividade no desenvolvimento de sistemas.

Camada de Dados (Figura 1): tabela chamada Clientes com os seguintes campos:

 

   Figura 1 - Estrutura da tabela de clientes

 

Camada de Negócio: será representada por uma classe chamada cliente (Figura 2 e
Listagem 1
). Seus atributos terão o mesmo nome e o tipo de dados dos campos da tabela. Isto se deve ao fato que o vínculo, entre a tabela e a classe de negócio, será feito de uma forma automática, através das funções encontradas na biblioteca de Reflection.

 

Figura 2: Estrutura da classe cliente.

 

Nesta classe teremos dois métodos básicos:

Ler – onde será possível ler os dados do banco e atribuí-los aos atributos da classe;

Gravar – onde será feita a inserção ou atualização dos atributos da classe para o banco de dados.

 

Além dos atributos, serão definidas duas constantes:

NomeDaTabela – Nome da tabela que representa o nosso objeto no banco de dados;

CampoPK – Nome da Chave primária na tabela.

 

Listagem 1 – código da classe Cliente

public class Cliente: Controle.BaseClass" [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados