Autores: Giuvane Conti e Everton Coimbra de Araújo
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.
...Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.