Краткий обзор работы с данными в ASP.NET 2.0

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

Для тех, кто работает с ASP.NET уже несколько лет, также предвидятся изменения при переходе с ASP.NET 1.x к ASP.NET 2.0. К счастью, недостатков будет меньше, чем их могло быть. Те, кто перешел от классического ASP к ASP.NET, без сомнениия, согласятся, что такая перемена была не самой беззаботной. Переход с ASP.NET 1.x к ASP.NET 2.0 будет гораздо спокойнее, поскольку нижележащая основа двух технологий будет той же самой. Тем не менее, ASP.NET 2.0 несет в себе немало изменений.

В данной статье я кратко расскажу о некоторых значительных нововведениях в ASP.NET 2.0 и сфокусируюсь на одном из них - новом и усовершенствованном способе работы с данными на веб-странице ASP.NET 2.0. (На момент написания статьи существовала версия Beta 1 ASP.NET 2.0; технологии, обсуждаемые тут, могут отличаться от финальной версии ASP.NET 2.0.  Вы можете загрузить последнюю версию с сайта http://labs.msdn.microsoft.com/.)

Краткий обзор новых возможностей

При создании ASP.NET 2.0 команда разработчиков ASP.NET фокусировалась на облегчении выполнения обычных задач. Они уделяли внимание тому, на что клиенты больше всего тратят время с ASP.NET, и постарались улучшить эти аспекты. К примеру, наверное, самой распространенной задачей разработчиков ASP.NET является отображение информации из базы данных. Как мы вскоре убедимся, команда ASP.NET как можно более упростила выполнение данной задачи путем создания набора элементов управления источниками данных (DataSource), которые позволяют осуществлять доступ к информации базы данных простым перетаскиванием и без необходимости написания какого-либо кода!

Другим значительным улучшением в области работы с данными является элемент управления ASP.NET GridView. Элемент GridView является следующим поколением элемента DataGrid, при этом разработчикам теперь понадобится потратить меньше усилий для использования требуемой стандартной функциональности. К примеру, создание, сортировка, листание и редактирование GridView в ASP.NET 2.0 не требует никакого кода, в то время как разработчикам, использовавшим ASP.NET 1.x, приходилось писать немало кодов для достижения того же результата посредством DataGrid.

Разработчикам также приходится создавать сайты с поддержкой учетных записей пользователей. Это подразумевает выполнение некоторых действий, таких как написание страниц по созданию учетной записи, авторизация, напоминание о забытом пароле и т.д. Вдобавок, как только пользователь авторизировался, многим сайтам также необходимо ссылаться на информацию о конкретном пользователе. К примеру, при авторизации на сайте банка, в левой части вам предоставляется баланс вашего счета, в то время как в правой вы можете увидеть серию последних транзакций. ASP.NET 2.0 содержит встроенный интерфейс прикладных программ (membership API), благодаря которому вы с легкостью можете создавать новые учетные записи, восстанавливать пароли, авторизировать пользователей, загружать определенные настройки и т.д.

Также вам доступно множество элементов управления относительно общих частей пользовательского интерфейса на сайтах ASP.NET 1.x. К примеру, элемент управления Login, который позволяет осуществить авторизацию без приложения каких-либо усилий. Также есть элемент управления SiteMap, который показывает пользователям их месторасположение в структуре сайта; элемент управления TreeView, Menu и т.д.

Это всего лишь обзор новых возможностей ASP.NET 2.0. Существует множество других нововведений, которые стоит обсудить,  и это касается не только изменений в ASP.NET - Visual Studio .NET  также пережил модернизацию внешнего вида к версии 2.0. Новая версия Visual Studio .NET, названная Visual Studio 2005, представляет более усовершенствованный интерфейс для разработчика. Функциональность IntelliSense в блоках HTML-страниц ASP.NET и в файлах Web.config. Создание нового проекта веб-сайта не создает множество файлов на вашем диске, и даже не создает новую виртуальную директорию в IIS. Visual Studio 2005 теперь использует свой собственный встроенный веб-сервер для локального тестирования ASP.NET-страниц, тем самым исключая необходимость в IIS при разработке ASP.NET-страниц. Visual Studio .NET, помоему мнению,  кажется таким же, как и старая версия Visual Studio, но с поддержкой .NET и возможностью разработки ASP.NET. Visual Studio 2005 на вид и по сути выглядит так, как будто был специально создан для разработки .NET, и, видимо, немало времени было потрачено на обеспечение удобства работы с ASP.NET.

Работа с данными в ASP.NET 2.0

Работа с информацией базы данных в ASP.NET 1.x не сложна, хотя каждый раз, когда вам понадобится получить доступ к коду базы данных, вам нужно будет написать немало строк кода. Данный код частенько повторяется, и опытные разработчики уже давно набили руку. Тем не менее доступ к базе данных все еще требует написания кода, а это занимает время и также может привести к ошибкам.

Хотя, с появлением ASP.NET 2.0  написание кода для работы с базой данных  - дело прошлое, благодаря набору элементов управления, названных DataSourc. Данные элементы управления разработаны для предоставления управления доступа к информации. То есть для того, чтобы получить информацию, к примеру,из базы данных SQL-сервера, вам всего лишь необходимо перетащить соответствующий элемент управления источниками данных (в данном случае элемент управления SqlDataSource) в окно дизайнера (Designer). Выполнив данный шаг, вы можете настроить элемент управления DataSource посредством мастера (Wizard). Вас попросят выбрать тип соединения к базе данных, который вы собираетесь использовать, а также запрос или хранимую процедуру, которую вы собираетесь выполнить. Следующие изображения демонстрируют различные окна в мастере SqlDataSource.

 


В дополнение к указанию выражения SELECT вы также можете использовать DataSource для указания запуска выражений INSERT, UPDATE и DELETE. Элемент управления источником данных (DataSource) всего лишь предоставляет доступ к данным. Для того, чтобы работать с информацией (к примеру, вам нужно отобразить ее на веб-странице) вам необходимо использовать соответствующий элемент управления. Например, элемент управления GridView (улучшенная версия DataGrid в ASP.NET 2.0) может быть использован для отображения, редактирования и удаления информации. Для отображения информации вам всего лишь нужно перетащить элемент GridView на страницу и установить его свойство DataSource  в добавленный SqlDataSource. И это все - не нужно писать никакого кода!

Осуществление доступа к информации различного типа

SqlDataSource - это один из многих элементов управления источником данных (DataSource), доступных в ASP.NET 2.0. SqlDataSource разработан для работы с базами данных, совместимыми с OLE-DB, такие как Microsoft SQL Server. В дополнение, существует AccessDataProvider для работы с базами данных Access, XmlDataSource - для работы с XML данными и ObjectDataSource - для работы с бизнес-объектами и классами уровня доступа к данным, которые содержат логику создания, обновления, удаления и доступа к данным.

Элементы управления SqlDataSource и AccessDataSource достаточно просты в использовании. Оба предоставляют возможность использования мастера, похожего на тот, который показан на предыдущих изображениях. (Мастер для AccessDataSource немного отличается на первом шаге от того, который работает с SqlDataSource; вместо указания строки соединения вас просто попросят выбрать .MDB-файл базы данных Access.) XmlDataSource может интуитивно осуществить доступ ко всему содержимому XML-файла, либо вы можете указать выражение XPath для того, чтобы работать только с определенной частью информации. Вдобавок, XmlDataSource позволяет вам опционально указать файл XSLT , если вы хотите послать сообщение XML-содержимому перед тем, как начать работу с ним.

Доступ к информации напрямую со страницы ASP.NET в большинстве случаев является не самой лучшей идеей. В идеале, вам необходимо разделить приложение на различные уровни: уровень представления (страницы ASP.NET), и уровень доступа к данным (классы, разработанные для работы с информационным массивом), уровень данных (сам информационный массив, хранимые процедуры и модель данных). ObjectDataSource позволит вам декларативно работать с информацией, полученной от объектов среднего уровня. Посредством ObjectDataSource вы можете просто указать тип объекта, который вам необходимо использовать, и названия методов для выборки, вставки, обновления и удаления информации.

Вывод

В данной статье мы рассмотрели некоторые новые возможности ASP.NET 2.0, в частности, новые элементы управления источниками данных (DataSource), благодаря которым вам не придется писать много кода. Для работы с данными в ASP.NET 2.0 вам просто нужно перетащить соответствующий элемент управления DataSource на страницу и пройтись через шаги настройки в мастере, тем самым устанавливая доступ к данным. Как только вы добавите элемент управления DataSource, вы можете использовать другие элементы управления, такие как GridView, для работы с информацией, причем без необходимости написания кода.

На момент написания статьи (Декабрь 2004), ASP.NET 2.0 был все еще на стадии Beta 1. В ноября 2005 года, ASP.NET 2.0 был официально выпущен. Для получения более подробной информации о работе с данными читайте серию статей "Осуществляем доступ и обновление данных в ASP.NET 2.0".

Scott Mitchell