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

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

Жанры

Обработка баз данных на 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 _

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

Личник

Валериев Игорь
3. Ермак
Фантастика:
альтернативная история
6.33
рейтинг книги
Личник

Золушка вне правил

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.83
рейтинг книги
Золушка вне правил

Сколько стоит любовь

Завгородняя Анна Александровна
Любовные романы:
любовно-фантастические романы
6.22
рейтинг книги
Сколько стоит любовь

Невольница князя

Мун Эми
Любовные романы:
эро литература
5.00
рейтинг книги
Невольница князя

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Князь

Шмаков Алексей Семенович
5. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
5.00
рейтинг книги
Князь

Старое поместье Батлера

Лин Айлин
Фантастика:
историческое фэнтези
5.00
рейтинг книги
Старое поместье Батлера

Чужбина

Седой Василий
2. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужбина

Часовое сердце

Щерба Наталья Васильевна
2. Часодеи
Фантастика:
фэнтези
9.27
рейтинг книги
Часовое сердце

Вторая жизнь Арсения Коренева книга третья

Марченко Геннадий Борисович
3. Вторая жизнь Арсения Коренева
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вторая жизнь Арсения Коренева книга третья

Архонт

Прокофьев Роман Юрьевич
5. Стеллар
Фантастика:
боевая фантастика
рпг
7.80
рейтинг книги
Архонт

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Развод с миллиардером

Вильде Арина
1. Золушка и миллиардер
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Развод с миллиардером

Лучший из худших-2

Дашко Дмитрий Николаевич
2. Лучший из худших
Фантастика:
фэнтези
5.00
рейтинг книги
Лучший из худших-2