Поделиться через


Архитектура ADO.NET

Обработка данных традиционно полагалась в основном на двухуровневую модель, основанную на сетевом соединении.Так как при обработке данных все больше используется многоуровневая архитектура, программисты переходят на метод, не использующий подключение, чтобы обеспечить лучшую масштабируемость для их приложений.

Компоненты ADO.NET

Двумя основными компонентами ADO.NET 3.0 для доступа к данным и их обработки являются поставщики данных .NET Framework и DataSet.

Поставщики данных .NET Framework

Поставщиками данных .NET Framework являются компоненты, которые специально сконструированы для обработки данных и быстрого, однопроходного доступа к данным только для чтения.Объект Connection обеспечивает обмен данными с источником данных.Объект Command позволяет обращаться к командам базы данных для возврата данных, изменения данных, выполнения хранимых процедур и передачи или получения сведений о параметрах.DataReader обеспечивает высокопроизводительный поток данных из источника данных.Наконец, DataAdapter предоставляет мост между объектом DataSet и источником данных.DataAdapter использует объекты Command для выполнения команд SQL на источнике данных для загрузки DataSet с данными и согласования изменений данных, выполненных в DataSet, вновь с источником данных.Дополнительные сведения см. в разделах Поставщики данных .NET Framework (ADO.NET) и Получение и изменение данных в ADO.NET.

DataSet

Класс DataSet в ADO.NET специально сконструирован для доступа к данным независимо от источника данных.Поэтому он может быть использован со многими и разными источниками данных, с XML-данными или для управления данными, локальными для приложения.DataSet содержит коллекцию одного или нескольких объектов DataTable, состоящих из строк и столбцов данных, а также первичный ключ, внешний ключ, ограничение и связанные сведения о данных в объектах DataTable.Дополнительные сведения см. в разделе Объекты DataSet, DataTable и DataView (ADO.NET).

Следующая схема иллюстрирует связь между поставщиком данных .NET Framework и DataSet.

Архитектура ADO.NET

График поставщика данных

Выбор между DataReader или DataSet

При решении вопроса о том, должно ли приложение использовать DataReader (см. в разделе Извлечение данных с помощью DataReader (ADO.NET)) или DataSet (см. Объекты DataSet, DataTable и DataView (ADO.NET)), следует рассмотреть тип функциональности, который необходим для приложения.DataSet предназначен для выполнения следующих задач.

  • Локальное кэширование данных в приложении для последующей обработки.Если нужно только считывать результаты запроса, класс DataReader подходит наилучшим образом.

  • Удаленное взаимодействие с данными между уровнями или от веб-службы XML.

  • Динамическое взаимодействие с данными, например привязка к элементу управления Windows Forms или комбинирование и связывание данных из нескольких источников.

  • Выполнение интенсивной обработки, не требующей открытого соединения с источником данных, что освобождает соединение для использования другими клиентами.

Если функциональность, предоставляемая классом DataSet, не нужна, можно повысить производительность приложения, используя класс DataReader для возврата данных в однопроходном режиме только для чтения.Хотя класс DataAdapter использует класс DataReader для заполнения содержимого DataSet (см. раздел Заполнение DataSet из DataAdapter (ADO.NET)), путем применения класса DataReader можно повысить производительность, т.к. будет экономиться память, которую потреблял бы объект DataSet, и избежать обработки, необходимой для создания и заполнения содержимого DataSet.

LINQ to DataSet

Технология LINQ to DataSet предоставляет возможности выполнения запросов и проверки типов во время компиляции для данных, кэшированных в объекте DataSet.Эта технология позволяет писать запросы на одном из языков .NET Framework, например C# или Visual Basic.Дополнительные сведения см. в разделе LINQ to DataSet.

LINQ to SQL

LINQ to SQL поддерживает запросы к модели объектов, сопоставленной со структурами данных реляционной базы данных, без использования промежуточной концептуальной модели.Каждая таблица представляется отдельным классом; таким образом, модель объектов тесно привязывается к схеме реляционной базы данных.LINQ to SQL преобразует запросы LINQ из модели объектов в язык Transact-SQL и передает их в базу данных для выполнения.При возврате результатов базой данных LINQ to SQL преобразует результаты обратно в объекты.Дополнительные сведения см. в разделе LINQ to SQL.

Платформа ADO.NET Entity Framework

Платформа ADO.NET Entity Framework разработана, чтобы разработчики могли создавать приложения для доступа к данным путем программирования по концептуальной модели приложения, а не по реляционной схеме хранения.Ее целью является уменьшение объема кода и затрат на сопровождение приложений, ориентированных на обработку данных.Дополнительные сведения см. в разделе ADO.NET Entity Framework.

Службы WCF Data Services

Службы данных WCF используется для развертывания служб данных в Интернете или интрасети.Данные структурируются как сущности и отношения согласно спецификациям модели EDM.Данные, развертываемые в данной модели, адресуются по стандартному протоколу HTTP.Дополнительные сведения см. в разделе WCF Data Services.

XML и ADO.NET

ADO.NET использует возможности XML для предоставления доступа к данным без сетевого соединения.Разработка ADO.NET производилась одновременно с XML-классами платформы .NET Framework; оба они являются компонентами одной архитектуры.

ADO.NET и классы XML в .NET Framework сходятся в объекте DataSet.Объект DataSet может заполняться данными из XML-источника, будь то файл или поток XML-данных.Объект DataSet может быть записан в виде XML-кода, соответствующего спецификациям консорциума W3C, который включает в себя схему в виде XSD, независимо от источника данных, находящихся в DataSet.Так как в DataSet собственным форматом сериализации является XML, он является отличным способом перемещения данных между уровнями. Это делает DataSet оптимальным решением для удаленного взаимодействия с контекстом данных и схемы как в направлении к веб-службе XML, так и в обратном направлении.Дополнительные сведения см. в разделе XML-документы и данные.

См. также

Другие ресурсы

Общие сведения об ADO.NET