On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Построение интерактивных WEB-приложений

Кен Спенсер

Самый быстрый и самый простой способ создать WEB- приложение - это использовать всю гамму новых инструментальных средств, в которую входят: Информационный сервер Интернет, IIS (Internet Information Server), Активные серверные страницы, ASP (Active Server Pages), Объекты данных ActiveX, ADO (ActiveX Data Objects), и, конечно, Объектная модель для сценариев, SOM (Scripting Object Model). Если добавить к ним уже зарекомендовавшее себя средство автоматизации разработки VID (Visual InterDev), то получим мощный набор технологий, применимый для построения любых приложений.

Этот инструментарий предлагает множество различных способов построения приложений. В целях демонстрации одного подхода к построению приложений, управляемых данными, автор данной статьи создал простое приложение, работающее с базой данных Pubs, которая входит в качестве учебного примера в поставку SQL Server. Созданная автором страница извлекает из базы данных список заголовков книг и помещает его таблицу HTML. После этого пользователь получает возможность выбрать нужный заголовок, просмотреть, и при необходимости отредактировать его, или же обновить данные для заголовка.

Для построения мощного приложения с хорошей производительность можно применять ADO или VID. Прежде чем приступить к работе, следует познакомиться с некоторыми аспектами разработки высокопроизводительных WEB- приложений. Прежде всего, надо использовать все имеющиеся в вашем распоряжении средства, потому что такой инструментарий как VID делает разработку приложений быстрой и несложной. Хранимые процедуры обеспечивают более быстрое функционирование приложений и снижают нагрузку на сервер баз данных.

Рассмотрим пример приложения, чтобы понять, когда, как и какой инструментарий следует применять. Первые шаги в построении такого тренировочного приложения - это создание двух хранимых процедур, которые обеспечат выполнение обработки данных, необходимой для правильного функционирования приложения. Автор программировал хранимые процедуры с помощью Visual Database Tools. Первая хранимая процедура называется RetrieveAllTitles и осуществляет выборку всех строк из таблицы Titles:

CREATE Procedure RetrieveAllTitles
AS SELECT * FROM Titles

Вторая хранимая процедура, RetrieveTitle, производит поиск одной строки из таблицы Titles. Она представляет собой следующую процедуру:

CREATE Procedure RetrieveTitle (@title_id char(6))
AS SELECT * FROM Titles WHERE title_id = @title_id

Следующим логическим шагом в построении приложения является написание функций сценария для выполнения работы ADO. Эти функции можно протестировать как логические блоки кода и после этого добавить в приложение. Прежде всего, как показано в листинге 1, создается файл .asp, который затем открывается в редакторе VID Design Editor.

Как продемонстрировано меткой А листинга 1, функция RetrieveAllTitles запускает хранимую процедуру RetrieveAllTitles. Она, в свою очередь, извлекает из таблицы все строки заголовков и возвращает их в виде массива для создания набора данных.

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

<% dim aTitles
   aTitles - RetrieveAllTitles()
   for i = 0 to ubound(aTitles)
   response.write 'TitleId = '   &
   <%=aTitles(i,0)%> & '<br>'
Next
%>

Если теперь посмотрим на страницу браузера, то увидим на ней простой список идентификаторов названий для каждой записи.

После того как выяснилось, что взаимодействующий с базой данных программный код функционирует правильно, можно легко построить оставшуюся часть приложения. Прежде всего откроем страницу в редакторе VID Design Editor и добавим на страницу новую таблицу HTML. Для этого в меню Таблицы (Tables) следует выбрать Добавить таблицу (Insert Table). Создадим новую таблицу состоящую из двух строк и четырех столбцов и нулевым размером границы. Эта таблица будет содержать на странице данные.

Метод Взять строки (GetRows) объекта Набор записей (Recordset) извлекает записи из набора и помещает их в массив. Применение этого метода требует особой осторожности, так как если запрос возвращает большое число записей, то легко занять излишне много памяти сервера. Чтобы избежать этого, можно передать массив, и затем использовать его в приложении несколько иначе, после того как объект Набор записей (Recordset) будет уничтожен в последней строке функции.

На следующем шаге разработки вставьте код, начинающийся с метки В листинга 1, сразу после первой строки таблицы. Напомним что первая строка содержит заголовки столбцов таблицы. Код ASP метки В организует цикл, в котором элементы данных извлекаются из массива и помещаются в соответствующие ячейки таблицы.
Экран 1.Просмотр в браузере результатов работы страницы в виде простой таблицы HTML, связанной с детальной страницей.

В первом столбце таблицы строится гиперссылка по идентификатору заголовка title_id для связи cо страницей TitleDetail.asp, содержащей детальную информацию. Такая связь позволяет пользователю простым щелчком мыши на заголовке заинтересовавшей его книги получить о ней более подробные сведения. Теперь опять следует протестировать страницу, просмотрев ее в браузере. Она должна иметь такой же вид, какой изображен на экране 1.

Затем следует создать страницу TitleDetail.asp и открыть ее в редакторе источников (Source). В данном приложении для управления некоторыми событиями применяется объект Страница (PageObject), входящий в стандартный набор инструментальных средств Toolbox. Вытяните его из инструментария и разместите на странице после таблицы. Менять какие-либо свойства этого объекта не требуется.

Настал черед добавить код, обрабатывающий события, на которые создаваемое приложение должно реагировать. Откройте схему сценария (Script Outline), щелкнув на его ярлычке под Инструментарием (Toolbox). Если ярлычок схемы сценария не появляется, то нажмите Ctrl + Alt + S. Раскройте пункт События и Объекты сервера (Server Objects and Events), выберите из появившегося набора объект Данная страница (ThisPage), раскройте его тоже и, наконец, дважды щелкните на событии входа (onenter). Такая последовательность действий приведет к тому, что на вашу страницу добавится блок обработки события входа, как показано на экране 2.
Экран 2. Добавление на страницу блока обработки события входа.

Событие входа наступает при каждой загрузке страницы. Это событие позволяет разработчику ввести начальный код работы со страницей и производить контроль исполнения кода при загрузке страницы. Введите код, помещенный у метки А на листинге 2. Убедитесь в том, что вы поместили определения переменных перед началом блока кода обработки события входа. Такое размещение выводит переменные за границы блока, тем самым делая их общедоступными.

Код события входа исполняет функцию Найти заглавие (RetrieveTitle), затем использует полученный массив для заполнения текстовых элементов страницы. Функция Является Массивом (IsArray), входящая в состав VBScript, позволяет протестировать массив до того, как пытаться получить к нему доступ из вашего кода. Подобный тест предотвращает ошибки прогона, возникающие в том случае, когда возвращаемое значение не представляет собой массив. Когда функция Найти заглавие (RetrieveTitle) не находит ни одной строки, удовлетворяющей условию, возвращаемое ею значение не является массивом. Предлагаемый код дает возможность отслеживать подобные факты.

Теперь введем код, позволяющий искать детальную информацию (см. метку А листинга 2). Функция Найти заглавие (RetrieveTitle) берет в качестве параметра идентификатор заглавия, TitleId, и возвращает в массиве одно заглавие. Функция Найти заглавие (RetrieveTitle) запускает одноименную хранимую процедуру для создания набора записей. Следующим шагом добавьте код функции Найти заглавие (RetrieveTitle), приведенный за меткой А на листинге 2.

Пришло время добавить на страницу, содержащую данные, управляющие элементы, чтобы обеспечить корректное взаимодействие с пользователем. Рассматриваемое приложение для предоставления пользователям более комфортного интерфейса применяет несколько новых управляющих элементов из состава VID 6, используемых во время проектирования. Управляющие элементы проектировщика базируются на SOM и предоставляют разработчикам приложений развитую модель сценариев с богатыми возможностями.

Прежде всего, первой ячейке каждой строки таблицы следует присвоить заголовки поля: Идентификатор, Название, Тип и Стоимость (Title Id, Title, Type, Price). Затем выберите в Инструментарии (Tools) управляющий элемент периода проектирования Текстовое окно (Textbox) и поместите его во вторую ячейку первой строки. Ответьте утвердительно, чтобы активизировать подсказки SOM. Откройте свойства текстового окна и свойству Название (Name) присвойте значение txtTitleId. Установите значения свойств Ширина (Width) и Максимальная ширина (Maximum width) равными 14, после чего закройте свойства.

Аналогичным образом поместите текстовое окно из инструментария во вторую ячейку второй строки. Откройте его свойства и присвойте значение txtTitle свойству Название (Name). Свойства Ширина (Width) и Максимальная ширина (Maximum width) следует установить равными 61. Затем закройте свойства этого окна. Точно так же разместите текстовое окно во второй ячейке третьей строки. Его свойство Название (Name) должно иметь значение txtType, а свойствам свойств Ширина (Width) и Максимальная ширина (Maximum width) надо присвоить значение 14.

Наконец, еще одно текстовое окно периода проектирования необходимо поместить из инструментария во вторую ячейку четвертой строки. Открыв его свойства, следует названию сообщить значение txtPrice, а ширину и максимальной ширину установить равными 14. После этого не забудьте закрыть окно свойств.
Экран 3. Показ страницы с детальными сведениями из TitleDetail.asp.

Для завершения страницы следует взять файл Title.asp из Проводника проекта (Project Explorer) и поместить его на страницу после таблицы. Этим действием создается связь, направленная от детальной страницы обратно к основной странице. Отредактировать текст связи можно в редакторе Источников (), для этого следует переключиться на него и внести там необходимые поправки. Когда все изменения будут сделаны, просмотрите Title.asp и щелкните мышью на любом значении Title Id. При этом произойдет обращение к детальным сведениям для выбранного идентификатора, и ваша страница должна будет походить на страницу, изображенную на экране 3.

Теперь вы и сами убедились в том, насколько просто пользоваться IIS (для исполнения кода ASP), а также ASP, ADO и новыми SOM и VID 6 при создании небольшого WEB- приложения. Вы увидели, с какой легкостью программа обработки событий, приведенная на листинге 2, прячет от постороннего взгляда содержащиеся в ней коды и триггеры. И в завершение, вы поняли, что модель событий SOM открывает новую эру в проектировании WEB-приложений и делает процессы построения и управления приложениями намного удобнее.



Литература по Internet