Чтение онлайн

на главную - закладки

Жанры

Обработка баз данных на Visual Basic®.NET

Прайс Кевин Т.

Шрифт:

 Dim с As New SqlCommand("exec sp_GetCustomersOrders", conn)

 conn.Open

 Dim dReader As SqlDataReader = _

cmd.ExecuteReader(CommandBehavior.CloseConnection)

 While dReader.Read

Response.Write(dReader.GetString(0))

Response.Write(" " & dReader.GetString(1))

Response.Write(" " & dReader.GetDateTime(2))

Response.Write("<BR>")

 End While

 dReader.Close

 conn.Close

End Sub

(Учтите, что для работы этого приложения в базу данных Novelty должна быть включена хранимая процедура sp_GetCustomersOrders, как описывается в главе 3, "Знакомство с SQL Server 2000". — Прим. ред.)

С помощью хранимых процедур, как правило, удается значительно повысить производительность работы Web-приложений с базами данных. Дело в том, что хранимые процедуры компилируются на сервере баз данных и выполняются гораздо быстрее по сравнению с динамически создаваемыми запросами. В листинге 11.1 команда SELECT должна интерпретироваться перед каждой операцией извлечения данных из базы данных SQL Server. Поэтому компилированные версии Web-страницы и хранимой процедуры выполняются гораздо быстрее. В аспекте повышения производительности эти особенности технологии ASP.NET и платформы .NET Framework являются их несомненным преимуществом.

Резюме

В данной главе представлены основные сведения о способах доступа к SQL Server с помощью технологии ASP.NET. Здесь показано, как извлекаются данные на основе динамических запросов и хранимых процедур без ручного кодирования механизма отображения данных в объекте DataGrid. В этой главе также упоминается промежуточный уровень, который более подробно описывается в главе 12, "Web-службы и технологии промежуточного уровня".

Вопросы и ответы

К каким базам данных можно осуществлять доступ с помощью технологии ASP.NET?

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

Почему для извлечения данных не используется XML-анализатор?

XML-анализатор предназначен для извлечения данных из элементов структуры, а в технологии ADO.NET предусмотрены функции анализа данных, которые имеют как формат XML, так и собственный формат базы данных. Кроме того, XML-анализатор не используется для повышения производительности.

ГЛАВА 12

Web-службы и технологии промежуточного уровня

Вероятно, многие читатели или еще не работали с компонентами промежуточного уровня, или имеют опыт работы с приложениями, которые включают только Web-сервер и сервер баз данных, где большая часть прикладной логики содержится в ASP-страницах, а в базе данных хранится только используемая информация. Организацию системы, при которой прикладная логика находится на промежуточном уровне или распределена среди нескольких уровней, принято было называть канализацией (plumbing). В такой системе прикладная логика предоставляет пользователю все необходимые данные и службы, но полностью скрыта от него.

В течение многих лет такая "канализация" реализовывалась с помощью DLL-файлов на языке Visual Basic или Visual C++. Используемый код имел вид откомпилированного объекта, который можно было применять совместно, повторно или удаленно. Наиболее распространенным примером частого повторного использования кода являются объявления объектов ADODB.Connection и ADODB.Recordset, которые принимают строку подключения и запрос и возвращают результирующий набор записей. Эту логику можно упаковать в виде функции, принимающей в качестве параметров строку подключения и запрос, а возвращающей результирующий набор записей. Теоретически этот способ просто прекрасен, но в реальной ситуации возникают проблемы с контролем версий, удаленным доступом и общим недопониманием в среде разработчиков.

Компанией Microsoft достигнут невероятный прогресс в развитии промежуточного уровня в рамках платформы .NET Framework. Она открыла низкоуровневые библиотеки для всех языков программирования в среде VS.NET. В результате разработчики на языке Visual Basic получили гораздо более удобный и простой способ доступа к потокам и маршалингу для более эффективного управления производительностью. Следующим крупным шагом вперед было введение контроля версий на стороне сервера. Это позволяет хранить на одном компьютере проектируемую и рабочую версии кода без конфликтов между ними. Серверный контроль версий происходит благодаря тому, что на платформе .NET для их хранения используются разные каталоги, а не параметры системного реестра. Нельзя не упомянуть здесь и Web-службы. Хотя в эпоху интенсивного развития Internet эту технологию нельзя назвать совершенно новой, все же Web-службы, вероятно, являются наиболее перспективным путем развития идеологии распределенных вычислений. В данной главе рассматриваются механизмы работы промежуточного уровня и описываются способы его реализации.

Применение промежуточного уровня для презентационной логики

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

В Visual Basic .NET предусмотрена удобная встроенная функция IsDate для управления процессами проверки правильности формата введенной даты. Она возвращает логическое значение, которое определяет успешное или неудачное преобразование переданной ей информации в корректный формат даты. Рассмотрим подробнее эту функцию на более высоком уровне.

Создадим Web-форму datecheck.aspx с помощью шаблона ASP.NET Web Application среды Visual Studio .NET. В данной Web-форме будут располагаться только два серверных элемента управления: текстовое поле и кнопка. После щелчка на кнопке введенная в текстовом поле информация передается серверу, на котором выполняется функция Is Date. Затем результат выполнения функции передается обратно Web-форме. В листинге 12.1 приводится вспомогательный код данной Web-формы datecheck.aspx.vb, а в листинге 12.2 — код самой Web-формы datecheck.aspx.

ЛИСТИНГ 12 1. Вспомогательный код Web-формы datecheck.aspx.vb

Public Class datecheck

 Inherits System.Web.UI.Page

 Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox

 Protected WithEvents Button1 As System.Web.UI.WebControls.Button

#Region " Web Form Designer Generated Code "

 ' Этот код создан конструктором Web-форм.

 <System.Diagnostics.DebuggerStepThrough> Private Sub _

Поделиться:
Популярные книги

Три Меченосца. Книга первая. Желтая сталь алфейнов

Маягин Владимир
Хроники Гэмдровса
Фантастика:
фэнтези
эпическая фантастика
героическая фантастика
боевая фантастика
6.33
рейтинг книги
Три Меченосца. Книга первая. Желтая сталь алфейнов

Черный Маг Императора 6

Герда Александр
6. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
7.00
рейтинг книги
Черный Маг Императора 6

Газлайтер. Том 5

Володин Григорий Григорьевич
5. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 5

Язычник

Мазин Александр Владимирович
5. Варяг
Приключения:
исторические приключения
8.91
рейтинг книги
Язычник

Рядовой. Назад в СССР. Книга 1

Гаусс Максим
1. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Рядовой. Назад в СССР. Книга 1

Убивать, чтобы жить

Бор Жорж
1. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.25
рейтинг книги
Убивать, чтобы жить

Афганский полигон

Кулаков Сергей Федорович
Спецназ. Группа Антитеррор
Детективы:
боевики
6.17
рейтинг книги
Афганский полигон

#НенавистьЛюбовь

Джейн Анна
Любовные романы:
современные любовные романы
6.33
рейтинг книги
#НенавистьЛюбовь

Тринадцатый II

NikL
2. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.60
рейтинг книги
Тринадцатый II

Политолог

Проханов Александр Андреевич
Проза:
современная проза
5.20
рейтинг книги
Политолог

Иисус неизвестный

Мережковский Дмитрий Сергеевич
Научно-образовательная:
философия
4.00
рейтинг книги
Иисус неизвестный

Плацдарм

Астафьев Виктор Петрович
2. Прокляты и убиты
Проза:
современная проза
7.50
рейтинг книги
Плацдарм

Наследие Маозари 3

Панежин Евгений
3. Наследие Маозари
Фантастика:
рпг
аниме
5.00
рейтинг книги
Наследие Маозари 3

Гримуар тёмного лорда I

Грехов Тимофей
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Гримуар тёмного лорда I