ADO.NET

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

ADO.NET — технология, предоставляющая доступ к данным для приложений, основанных на Microsoft .NET. Является не развитием более ранней технологии ADO, а самостоятельной технологией, частью фреймворка .NET.В отличие от классической ADO, которая была в основном предназначена для тесно связанных клиент-серверных систем, ADO.NET больше нацелена на автономную работу с помощью объектов DataSet. Эти типы представляют локальные копии любого количества взаимосвязанных таблиц данных, каждая из которых содержит набор строк и столбцов. Объекты DataSet позволяют вызывающей сборке (наподобие веб-страницы или программы, выполняющейся на настольном компьютере) работать с содержимым DataSet, изменять его, не требуя подключения к источнику данных, и отправлять обратно блоки измененных данных для обработки с помощью соответствующего адаптера данных.Но, пожалуй, самое фундаментальное различие между классической ADO и ADO.NET сострит в том, что ADO.NET является управляемой кодовой библиотекой, и, значит, подчиняется тем же правилам, что и любая управляемая библиотека. Типы, составляющие ADO.NET, используют протокол управления памятью CLR, принадлежат к той же системе типов (классы, интерфейсы, перечисления, структуры и делегаты), и доступ к ним возможен с помощью любого языка .NET. Классы ADO.NET находятся в сборке System.Data.dll.

Поставщики данных[править | править вики-текст]

От других API, ADO.NET отличает то, что она не взаимодействует с системами управления базами данных напрямую. Вместо этого используются поставщики данных(data provider) которые инкапсулируют механизм работы с конкретной СУБД.Такой подход очень гибок, позволяет создавать адаптеры для любой СУБД и полностью использовать ее особенности.

Подключаемый уровень[править | править вики-текст]

На данном уровне работа базами данных ведется через объекты подключения,объекты чтения данных и поставщика данных предназначенного для нужной СУБД. Для получения данных выполняются следующие шаги.

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

конструктора или через свойство Connection.

  • Вызов метода ExecuteReader () настроенного объекта команды.
  • Обработка каждой записи с помощью метода Read() объекта чтения данных.

Объекты чтения данных предоставляют поток данных,для чтения в прямом направлении.Чтение происходит каждый раз по одной записи.Следовательно объекты чтения обрабатывают только select запросы.Открытие и закрытие подключения к БД полностью возлагается на программиста.

Автономный уровень[править | править вики-текст]

Автономный уровень ADO.NET позволяет отображать реляционные данные с помощью модели объектов в память. Типы данных из System.Data воспроизводят не только отображение строк и столбцов, а также отношения между таблицами, первичные ключи и т.д. Так как отображение данных происходит в память, подключение не занимает времени СУБД, подключаясь и отключаясь автоматически, при чтении и обновлении данных, автономный уровень снимает с программиста лишнюю работу. Но у данного уровня есть недостаток, представьте что требуется считать из БД 20000 записей, и при использовании автономного уровня, все это ляжет в память приложения, не очень разумное использование,здесь на выручку приходит подключаемый уровень который считает все последовательно.

Entity Framework[править | править вики-текст]

Предыдущие уровни ADO.NET все еще привязаны к физической структуре данных. При взаимодействии с данными необходимо помнить схемы таблиц, отношений. Общение с БД осуществляет на языке SQL, что приводит к большому объему кода, так как язык C# сильно отличается от SQL. Entity Framework вывод абстракцию на новый уровень - объектной модели.Теперь отображение происходит на бизнес-объекты приложения, что позволяет работать с данными как с обычными объектами языка. Сущности(еntities) — это концептуальная модель физической базы данных, которая отображается на предметную область. Формально говоря, эта модель называется моделью сущностных данных (Entity Data Model — EDM). Модель EDM представляет собой набор классов клиентской стороны, которые отображаются на физическую базу данных. Тем не менее, нужно понимать, что сущности вовсе не обязаны напрямую отображаться на схему базы данных, как может показаться, исходя из на звания. Сущностные классы можно реструктурировать для соответствия существующим потребностям, и исполняющая среда EF отобразит эти уникальные имена на корректную схему базы данных.

Литература[править | править вики-текст]

  • Сахил Малик Microsoft ADO.NET 2.0 для профессионалов = Pro ADO.NET 2.0. — М.: «Вильямс», 2006. — С. 560. — ISBN 1-59059-512-2.
  • Эндрю Троелсен Язык Программирования С#2010 и платформа .NET 4.0 = PRO C# 2010 AND THE .NET 4 PLATFORM. — 5-е издание. — Москва • Санкт-Петербург • Киев: «Вильямс», 2011. — С. 1392. — ISBN 978-5-8459-1682-2.

Ссылки[править | править вики-текст]