Artigo do tipo Tutorial
Autores: Giuvane Conti e Everton Coimbra de Araújo
Conhecendo a arquitetura ADO.NET
Toda plataforma de desenvolvimento possui uma API específica para ligar com o acesso a dados, no caso do .NET esta API é o ADO.NET que encapsula todas as classes necessárias para realizarmos a comunicação de nossa aplicação com uma base de dados nos fornecendo mecanismos de conexão com a mesma além da possibilidade de execução de operações como inserção, atualização, deleção e consulta de dados através de instruções SQL.

Este artigo apresenta o conceito, a arquitetura, as principais interfaces e providers da tecnologia ADO.NET, apresentando as principais classes e métodos que podemos utilizar para interagir com bases de dados nos nossos sistemas. Além disso, apresentamos ainda a conexão do ADO.Net com o SQL Server e uma implementação do pattern DAO. Na parte prática teremos a implementado um exemplo simples envolvendo Pedido e Itens de Pedido utilizando um DAO com classes ADO.Net para realizar as operações na base de dados.


Em que situação o tema é útil
O ADO.NET é útil em qualquer sistema que necessite de uma conexão com um banco de dados para manipulação de dados como inserir, editar, deletar e buscar, ou seja, operações CRUD. Além disso, o uso direto das classes do ADO.NET é mais rápido do que o uso de frameworks ORM, fazendo com que em aplicações críticas o mesmo possa se tornar um diferencial para a performance da mesma.

ADO.NET é a biblioteca utilizada pela Microsoft para acesso a bases de dados na plataforma .NET, podendo ser utilizado com qualquer linguagem de programação que tenha acesso a esta plataforma.

No pacote de tecnologias do ADO.NET existem classes que auxiliam a aplicação deste em projetos que utilizem a plataforma .NET e dentro deste contexto alguns dos recursos que se destacam são as interfaces disponíveis, suas respectivas implementações concretas e seus providers, que são os provedores específicos para cada fonte de dados que pode ser utilizada, por exemplo, o ADO.NET disponibiliza providers para conexão com SQL Server, MySQL, FireBird, Oracle, Sybase, Access, XML, dentre outros.

Existem algumas bibliotecas e recursos que realizam as operações disponíveis no ADO.NET de forma mais fácil tirando proveito de todo o conteúdo disponível pelo ADO.NET e facilitando a vida do programador aumentando a produtividade, como é o caso da biblioteca Entity Framework, que é parte integrante do pacote ADO.NET e do conjunto de recursos oferecidos pelo LINQ. Além destas tecnologias, ainda é possível implementar um conceito de programação chamado DAO Genérico, baseado nestas tecnologias, onde as operações CRUD (Create, Read, Update e Delete) podem ser aplicadas para qualquer classe que represente uma tabela do banco de dados dentro de um projeto, facilitando ainda mais a vida do programador.

Neste artigo será criado um exemplo prático, de controle de Pedido e Itens de Pedido, utilizando o conceito de DAO sendo implementado com base nas classes do ADO.NET utilizando o provider de conexão com o SQL Server.

O que é o ADO.NET ?

O ADO.NET é uma evolução do ADO (ActiveX Data Objects) que foi utilizado até o Visual Basic 6, apesar de ter sido construído sem nenhum reaproveitamento da tecnologia ADO, a Microsoft manteve muitos dos conceitos do mesmo no ADO.NET, apesar destes possuírem uma arquitetura totalmente diferente.

O ADO.NET possui diversas características, como por exemplo: interoperabilidade através do uso de XML para intercambio de dados, performance, robustez, escalabilidade com modelo desconectado e produtividade.

Arquitetura, interfaces e classes concretas

A arquitetura do ADO.NET está dividida em dois grupos: Managed Providers (provedores gerenciados) e Content Components (componentes de conteúdo). Os componentes do grupo Managed Providers se encarregam do acesso a dados, porém não armazena os mesmos, fazendo ligação direta com a fonte de dados. Neste grupo temos classes de conexão, transação, execução de comandos (Command) e leitura de dados (DataReader).

Já o grupo de Content Components é responsável por armazenar e manipular os dados em memória, porém eles não sabem de sua origem e nem o que significam, sendo que neste grupo temos as classes DataSet, DataTable, DataRow, DataColumn, etc.

Na Figura 1 é possível ver a representação da arquitetura ADO.NET, onde a parte referente ao DataSet representa os Content Components.

Figura 1. Arquitetura da tecnologia ADO.NET

O grupo Managed Providers possui um conjunto de classes concretas que possuem 5 interfaces principais sendo IDbConnection, IDbCommand e IDbDataReader, IDbDataTransaction e IDbDataAdapter. A partir destas interfaces qualquer fabricante de banco de dados pode criar componentes que implementam as mesmas para permitir o acesso ao seu SGBD, desta forma o ADO.NET pode ser estendido para diversos SGBDs, além de nos permitir construir uma arquitetura abstrata na nossa aplicação, visto que podemos fazer uso das interfaces como referência em nossos projetos. O conjunto de componentes que implementam estas interfaces são como Providers e serão abordados mais adiante neste artigo.

A interface IDbConnection define métodos e propriedades de uma fonte de dados, a propriedade mais importante é um string de conexão com o banco de dados onde são informados os detalhes da conexão como nome do servidor, nome do banco de dados, nome do usuário e senha. Além disso, ela possui os métodos Open() e Close(), que são responsáveis pelo controle de abertura e fechamento da conexão com a base de dados, além disso as classes que implementam a interface IDbConnection trabalham em conjunto com um cache de conexões, permitindo que os métodos Open() e Close() sejam executados rapidamente.

...
Quer ler esse conteúdo completo? Tenha acesso completo