Arquitetura ADO.NET

O processamento de dados tradicionalmente se baseia principalmente em um modelo de duas camadas baseado em conexão. Como o processamento de dados usa cada vez mais arquiteturas multicamadas, os programadores estão mudando para uma abordagem desconectada para fornecer melhor escalabilidade para seus aplicativos.

Componentes ADO.NET

Os dois principais componentes do ADO.NET para acessar e manipular dados são os provedores de dados do .NET Framework e o DataSet.

Provedores de dados do .NET Framework

Os Provedores de Dados do .NET Framework são componentes que foram explicitamente projetados para manipulação de dados e acesso rápido, somente encaminhamento e somente leitura aos dados. O Connection objeto fornece conectividade a uma fonte de dados. O Command objeto permite o acesso a comandos de banco de dados para retornar dados, modificar dados, executar procedimentos armazenados e enviar ou recuperar informações de parâmetros. O DataReader fornece um fluxo de dados de alto desempenho da fonte de dados. Finalmente, o DataAdapter fornece a ponte entre o DataSet objeto e a fonte de dados. O DataAdapter usa Command objetos para executar comandos SQL na fonte de dados para carregar os DataSet dados com e reconciliar as alterações feitas nos dados na DataSet parte de volta para a fonte de dados. Para obter mais informações, consulte Provedores de dados do .NET Framework e Recuperando e modificando dados no ADO.NET.

O conjunto de dados

O ADO.NET DataSet é explicitamente projetado para acesso a dados independentemente de qualquer fonte de dados. Como resultado, ele pode ser usado com várias e diferentes fontes de dados, usado com dados XML ou usado para gerenciar dados locais para o aplicativo. O DataSet contém uma coleção de um ou mais DataTable objetos que consistem em linhas e colunas de dados, e também informações de chave primária, chave estrangeira, restrição e relação sobre os dados nos DataTable objetos. Para obter mais informações, consulte DataSets, DataTables e DataViews.

O diagrama a seguir ilustra a relação entre um provedor de dados .NET Framework e um DataSetarquivo .

ADO.Net graphic
ADO.NET arquitetura

Escolhendo um DataReader ou um DataSet

Quando você decidir se seu aplicativo deve usar um DataReader (consulte Recuperando dados usando um DataReader) ou um DataSet (consulte DataSets, DataTables e DataViews), considere o tipo de funcionalidade que seu aplicativo requer. Use a DataSet para fazer o seguinte:

  • Armazene dados em cache localmente em seu aplicativo para que você possa manipulá-los. Se você só precisa ler os resultados de uma consulta, a DataReader é a melhor escolha.

  • Dados remotos entre camadas ou de um XML Web Service.

  • Interaja com dados dinamicamente, como vincular a um controle do Windows Forms ou combinar e relacionar dados de várias fontes.

  • Execute um processamento extensivo de dados sem exigir uma conexão aberta com a fonte de dados, o que libera a conexão para ser usada por outros clientes.

Se você não precisar da funcionalidade fornecida pelo DataSet, poderá melhorar o desempenho do seu aplicativo usando o DataReader para retornar seus dados de maneira somente encaminhamento e somente leitura. Embora o DataAdapter use o DataReader para preencher o conteúdo de um DataSet (consulte Preenchendo um DataSet de um DataAdapter), usando o , você pode aumentar o DataReaderdesempenho porque você salvará a memória que seria consumida DataSetpelo , e evitará o processamento necessário para criar e preencher o conteúdo do DataSet.

LINQ para DataSet

O LINQ to DataSet fornece recursos de consulta e verificação de tipo em tempo de compilação sobre dados armazenados em cache em um objeto DataSet. Ele permite que você escreva consultas em uma das linguagens de desenvolvimento do .NET Framework, como C# ou Visual Basic. Para obter mais informações, consulte LINQ to DataSet.

LINQ para SQL

O LINQ to SQL oferece suporte a consultas em um modelo de objeto mapeado para as estruturas de dados de um banco de dados relacional sem usar um modelo conceitual intermediário. Cada tabela é representada por uma classe separada, acoplando firmemente o modelo de objeto ao esquema de banco de dados relacional. O LINQ to SQL traduz consultas integradas à linguagem no modelo de objeto em Transact-SQL e as envia para o banco de dados para execução. Quando o banco de dados retorna os resultados, o LINQ to SQL converte os resultados novamente em objetos. Para obter mais informações, consulte LINQ to SQL.

ADO.NET Entity Framework

O ADO.NET Entity Framework foi projetado para permitir que os desenvolvedores criem aplicativos de acesso a dados programando em um modelo de aplicativo conceitual em vez de programar diretamente em um esquema de armazenamento relacional. O objetivo é diminuir a quantidade de código e manutenção necessária para aplicativos orientados a dados. Para obter mais informações, consulte ADO.NET Entity Framework.

Serviços de dados WCF

WCF Data Services é usado para implantar serviços de dados na Web ou em uma intranet. Os dados são estruturados como entidades e relações de acordo com as especificações do Modelo de Dados de Entidade. Os dados implantados neste modelo são endereçáveis pelo protocolo HTTP padrão. Para obter mais informações, consulte WCF Data Services 4.5.

XML e ADO.NET

ADO.NET aproveita o poder do XML para fornecer acesso desconectado aos dados. ADO.NET foi projetado lado a lado com as classes XML no .NET Framework; ambos são componentes de uma única arquitetura.

ADO.NET e as classes XML no .NET Framework convergem no DataSet objeto. O DataSet pode ser preenchido com dados de uma fonte XML, seja um arquivo ou um fluxo XML. O DataSet pode ser escrito como XML compatível com W3C (World-Wide Web Consortium) que inclui seu esquema como esquema XSD (XML schema definition language), independentemente da fonte dos dados no DataSet. Devido ao formato de serialização nativo do DataSet é XML, ele é um excelente meio para mover dados entre camadas, tornando-se a DataSet escolha ideal para a comunicação remota de dados e contexto de esquema de e para um XML Web Service. Para obter mais informações, consulte Documentos e dados XML.

Consulte também