Опубликован: 25.09.2008 | Доступ: свободный | Студентов: 3223 / 516 | Оценка: 4.32 / 3.98 | Длительность: 18:50:00
ISBN: 978-5-94774-991-5
Лекция 10:

Использование баз данных в приложениях ASP.NET

< Лекция 9 || Лекция 10: 12345678910

Краткие итоги

Деятельность большинства Web-приложений основывается на работе с данными - извлечении, отображении и модификации. Основным источником данных в большинстве современных приложений служит база данных. Поэтому вопросы организации взаимодействия приложения с базой данных является весьма актуальными.

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

Программная модель ADO.NET полностью соответствует объектно-ориентированным принципам. Она содержит объекты, необходимые для подключения к источнику данных, исполнения команд SQL, предназначенных для извлечения данных из источника, а также добавления их и внесения изменений, организации транзакций, создания виртуальных таблиц и заполнения их данными, извлеченными из источника. Очень важным элементом ADO.NET являются поставщики данных. Поставщик данных представляет собой набор классов, предназначенных для взаимодействия с хранилищем данных определенного типа. Использование поставщиков делает ADO.NET чрезвычайно гибкой и расширяемой моделью доступа к данным: для организации доступа к новому источнику данных достаточно создать соответствующего поставщика. При использовании источника данных ADO.NET сама задействует соответствующего поставщика данных для организации доступа к данным, хранящимся в нем. При использовании приложения, использующего доступ к данным, необходимо сперва попытаться найти "родного" поставщика данных для .NET. Если такового нет, можно воспользоваться другими технологиями, например OleDb, предоставляющей широкий выбор драйверов для различных источников данных.

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

При организации взаимодействия Web-приложения с базой данных нужно использовать определенный сценарий, который предусматривает установку соединения с базой данных, выполнение SQL-запросов, отключение от источника данных, перенос изменений из отсоединенного набора данных в БД при необходимости. Соединение с базой данных осуществляется с использованием строки подключения, содержащей все необходимые параметры соединения. Строку подключения можно хранить как в тексте программы, так и во внешнем файле, что является предпочтительным. В качестве такого файла очень часто используется web.config.

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

Для обслуживания соединения с базой данных расходуются ресурсы компьютера, на котором выполняется Web-приложение. В связи с этим рекомендуется открывать соединение как можно позже, а закрывать как можно раньше, сразу после того, как все необходимые действия с объектами базы данных были выполнены. Программный код взаимодействия с базой данных необходимо строить таким образом, чтобы открытое соединение закрывалось при любом исходе соединения с ней.

ADO.NET поддерживает выполнение двух типов команд, написанных на языке SQL: прямой оператор языка и хранимая процедура. Для выполнения запросов, осуществляющих возврат данных в основную программу для их последующей обработки, а также запросов, предназначенных для вставки, изменения, удаления записей, применяются разные методы объекта Command.

Обращение к полям таблицы может происходить как по имени, так и с помощью индекса.

В ADO.NET существует несколько мощных классов, предназначенных для вывода информации на экран. Одним из самых сложных классов, который предоставляет большое количество возможностей по отображению данных, извлекаемых из БД, является класс GridView.

При взаимодействии Web-приложения с базой данных в реальных условиях очень часто возникает необходимость динамического формирования SQL-запроса с последующим его исполнением. Это может быть достигнуто несколькими способами. Наиболее предпочтительными из них являются использование параметризованных команд и хранимых процедур.

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

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

Для автоматизации отображения данных в элементе управления без использования программирования необходимо использовать привязку и отображение данных. Большинство элементов управления ASP.NET поддерживают привязку данных. Различают привязку данных с одним и с множественным значением. Помимо применения программного кода для осуществления привязки данных Visual Studio 2005 позволяет осуществлять привязку с использованием визуальных средств.

Использование баз данных очень часто требует фильтрации и сортировки данных. Для этих целей в ASP.NET предназначен объект DataView. Этот класс снабжен возможностью фильтрации и сортировки отображаемых данных, причем эти режимы никак не затрагивают реальные данные.

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

В сложных профессиональных приложениях код доступа к базе данных не встраивается в само приложение, а инкапсулируется в отдельный выделенный класс. Для выполнения операции с базой данных приложению необходимо создать экземпляр этого класса и вызвать соответствующий метод. Особое значение при организации взаимодействия объектного приложения с базой данных имеет организация взаимодействия объектов с реляционными таблицами БД.

< Лекция 9 || Лекция 10: 12345678910