ADO.NET

ADO.NET (ActiveX Data Object для .NET) — технология, предоставляющая управление данными, хранящимися в базе данных или других источниках (Microsoft SQL Server, Microsoft Access, Microsoft Excel, Microsoft Outlook, Microsoft Exchange, Oracle, OLE DB, ODBC, XML и текстовые файлы)[1], основанных на платформе .NET Framework. Эта технология входит в состав .NET Framework 2.0 и представляет собой набор библиотек[2]. В отличие от технологии ADO, которая была в основном предназначена для тесно связанных клиент-серверных систем, ADO.NET больше нацелена на автономную работу с помощью объектов DataSet. Объекты DataSet представляют собой локальные копии взаимосвязанных таблиц данных, каждая из которых содержит набор строк и столбцов. Объекты DataSet позволяют вызывающей сборке (наподобие веб-страницы или программы, выполняющейся на настольном компьютере) работать с содержимым DataSet, изменять его, не требуя подключения к источнику данных, и отправлять обратно блоки изменённых данных для обработки с помощью соответствующего адаптера данных. Фундаментальное различие между ADO и ADO.NET состоит в том, что ADO.NET является управляемой кодовой библиотекой, и, значит, подчиняется тем же правилам, что и любая управляемая библиотека. Типы, составляющие ADO.NET, используют протокол управления памятью CLR и принадлежат к той же системе типов (классы, интерфейсы, перечисления, структуры и делегаты), и доступ к ним возможен с помощью любого языка .NET. Классы ADO.NET находятся в сборке System.Data.dll.

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

Технология ADO.NET построена так, чтобы изолировать программиста от изучения структур баз данных разных производителей, представляя поставщиков баз данных (data provider), которые инкапсулируют механизм работы с конкретной СУБД, что позволяет создавать адаптеры для любой СУБД и полностью использовать её особенности. Сделана такая абстракция для того, чтобы использовать одинаковые типы данных для работы с различными источниками данных, иметь общий подход (универсализацию) для работы с базами данных разных производителей, чтобы технология ADO.NET поддерживалась CLR[3].

Подключаемый уровень

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

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

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

Автономный уровень

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

Entity Framework

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

См. также

Примечания

  1. Б. Гамильтон. ADO.NET сборник рецептов. Для профессионалов. — СПб.: Питер, 2005. — 576 с. — ISBN 5-469-00239-X.
  2. Сеппа Д. Microsoft ADO.NET. — Москва: Издательско-торговый дом «Русская редакция», 2003. — 640 с. — ISBN 5-7502-0223-2.
  3. Вилдермьюс Шон. Практическое использование ADO.NET, доступ к данным в Internet. — Москва: Вильямс, 2003. — 288 с. — ISBN 5-8459-0450-1.

Литература

  • Сахил Малик. 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.

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.