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

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

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

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

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

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

DataSet

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

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

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

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

Если вы решите, следует ли использовать DataReader приложение (см. раздел "Извлечение данных с помощью DataReader") или DataSet (см. раздел "Наборы данных", "DataTables" и "DataViews"), рассмотрите тип необходимых функций приложения. DataSet предназначен для выполнения следующих задач.

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

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

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

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

Если функциональность, предоставляемая классом DataSet, не нужна, можно повысить производительность приложения, используя класс DataReader для возврата данных в однопроходном режиме только для чтения. DataAdapter Хотя используется DataReader для заполнения содержимого DataSet объекта (см. заполнение набора данных из DataAdapter), с помощью 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

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

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-документы и данные.

См. также