Exam 70-305 and 70-315 DEVELOPING WEB APPLICATIONS WITH MICROSOFT VISUAL BASIC AND MICROSOFT VISUAL Press Сертификационный экзамен 70-305 и 70-315 Разработка Web-приложений на Microsoft Visual ...
-- [ Страница 4 ] --теперь необходимо организовать обработку и регистрацию непредвиденных исключений при помощи об работчика события этой Web-формы. Это позволит:
скрыть от пользователя технические сообщения об ошибках и заменить их более по лезной записать сведения о непредвиденных ошибках в журнал трассировки. Данные журнала использовать как диагностическое средство, чтобы определить, нужно ли обра батывать другие исключения, Обработка непредвиденных исключений с помощью события Error формы Добавьте к коду Web-формы обработчик события обрабатывающий осталь ные исключения, которые возникают на Следующий фрагмент кода сохра няет об исключении в журнале трассировки, создает сообщение об ошиб ке для отображения и выполняет сброс ошибки, чтобы продолжить исполнение при ложения:
Visual Private Sub sender As Object, e As Handles ' Записать сведения об ошибке в журнал трассировки.
"Error event", ' Сохранить текст сообщения об ошибке в переменной состояния Session.
- unexpected error occurred. & "Try your task Сбросить ошибку, Перезагрузить страницу.
End Sub C# private void sender, e) !
// Записать сведения об ошибке в журнал трассировки.
"Error event", // Сохранить текст сообщения об ошибке в переменной состояния Session, = unexpected error occurred. + "Try your task // Сбросить ошибку.
// Перезагрузить страницу.
} 2. обработчик события чтобы он отображал об ошибке, ранее сохраненное в переменной состояния Session. Для этого добавьте к нему код, выделенный в примере полужирным шрифтом:
Visual Basic Private Sub Page_Load(ByVal sender As e As Handles ' Получить соединения и из переменной состояния Session.
= = Заполнить набор данных ContactType.
Заполнить набор данных Contacts.
Связать с данными и списки drpContactTypes и drpState, ' При наличии необработанной ошибки, уведомить о ней.
If о Then Очистить сообщение об ошибке.
= Nothing End If End Sub Visual private void sender, { // Получить соединения и адаптеров из переменной // состояния Session.
= = = // Заполнить набор данных // Заполнить набор данных Contacts, // Связать с данными и заполнить списки и // При наличии необработанной уведомить о ней, != null) = // Очистить сообщение об ошибке.
= null;
Упражнение 3. Создание и просмотр журнала трассировки Код, добавленный в упражнениях 1 и 2, сообщения об ошибках в жур нал трассировки с диагностики непредвиденных ошибок, которые возмож ны во время работы пользователей с приложением. Чтобы получить доступ к про смотру этих нужно включить трассировку и добавить к приложению ссылку для отображения журнала трассировки.
Как обеспечить просмотр журнала трассировки Модифицируйте файл чтобы включить трассировку. Элемент вклю чает трассировку с записью результатов в файл увеличивает число регистри руемых запросов до 20 и разрешает просматривать журнал трассировки с удаленного компьютера:
3. Добавьте к обработчику события SwitchBoard код, управляю отображением ссылки на журнал трассировки:
Visual Basic Private Sub As e As Handles Если трассировка включена, отобразить ссылку трассировки.
If 284 и Глава = End If End Sub Visual C# private Page_Load(object sender, e) { Если трассировка включена, отобразить ссылку if = } Упражнение 4. Организация обработки исключений в других Web-формах В предыдущих упражнениях этого практикума мы разбирали обра ботки исключений шаг за шагом, теперь вам пора сделать это самостоятельно. Вы добавите к Web-формам Calls, и код для обработки ис ключений, чтобы:
обрабатывать любые исключения, при работе с данными, с блоков обработки исключений (см. упражнение 1);
перехватывать и регистрировать непредвиденные исключения при помощи событий Error (см, упражнение 2).
Закончив, сравните свои результаты с приложением Contact которое находится на прилагаемом компакт-диске. Удачи!
Закрепление материала Приведенные ниже вопросы помогут вам лучше усвоить основные темы данной главы.
Если вы не сумеете ответить на вопрос, повторите материал занятия.
Ответы для самопроверки Ч в приложении Вопросы и в конце книги, 1. Почему так важно наличие обработки исключений в готовом приложении?
2. Назовите два способа обработки исключений в Web-приложениях ASP.NET.
3. Расскажите, для чего нужны страницы сообщений об и как их использовать.
4. Объясните пользу трассировки при обработке исключений.
Усложненное программирование с применением Web Forms Занятие Сохранение и извлечение сведений о пользователе Занятие 2. Отправка Занятие 3. Применение фреймов Занятие 4. Применение клиентских сценариев Занятие 5. Использование Web-сервисов В этой главе В этой главе рассказано о том, как решать сложные задачи программирования, которые отнести к какой-то определенной категории. В принципе, мож но создавать и не зная обсуждаемые здесь предметы. Однако, освоив материал занятий из этой главы, вы научитесь решать ряд основных задач Web-программирования Ч без этого ваш арсенал навыков программирования останется неполным, Прежде всего Для изучения материалов этой главы необходимо:
Х уметь создавать Web-приложения с помощью серверных элементов управления и сер верного кода;
Х знать языки сценариев, такие, как Visual Basic Scripting Edition (VBScript) и Если у вас нет опыта использования языков сценариев, перед занятием 4 изучи: е раз делы VBScript Guide или JScript User's Guide справочной системы Studio.
с Web Занятие Сохранение и извлечение сведений о пользователе регистрации пользователей, приходится извлекать регис трационные данные пользователя, когда он снова посещает Web-сайт приложения. На пример, Web-сайты электронных магазинов регистрируют сведения о счетах и товарах, отправленных некоторому пользователю, а затем извлекает эту информацию для заполне ния полей адреса всякий раз, когда этот пользователь размещает новый заказ.
Изучив материал этого занятия, вы сможете:
объяснить, каким образом файлы cookie позволяют идентифицировать пользователей и хранить сведения о них;
сохранять простые или сложные данные на пользовательском компьютере при помощи файлов cookie;
удалять файлы cookie с пользовательского компьютера;
создавать уникальный идентификатор пользователя и хранить его на пользовательском компьютере;
сохранять сведения о пользователях в XML-файлах и извлекать их оттуда при помощи созданного ранее уникального идентификатора Продолжительность занятия Ч около 35 минут.
Идентификация пользователей Web-приложения Web-приложения могут идентифицировать пользователей по имени и паролю, требуя вво дить их при каждом посещении Web-сайта, либо при помощи данных, хранящихся на пользовательских компьютерах в виде файлов cookie. Файлы cookie Ч это небольшие фай лы, записываемые Web-приложением на клиентский компьютер.
Преимущество использования файлов cookie заключается том, что оно делает взаи модействие между клиентом и сервером незаметным для пользователя. При использова нии cookie пользователю не обязательно регистрироваться при каждом посещении Web сайта, его данные просто автоматически появляются, когда они нужны.
Недостаток этого способа в том, что пользователь может запретить браузеру прини мать файлы cookie. Некоторым пользователям не нравится, что Web-сайты хранят на их компьютерах данные, по которым можно отследить их перемещений в Интер нете. Поэтому перед использованием файлов cookie обязательно следует проверить, при нимает ли их клиент.
Есть два метода хранения и извлечения информации о пользователе с помощью фай лов cookie:
все о пользователе хранятся на клиентском компьютере в файле cookie Ч этот способ удобен для хранения несложных сведений о пользователе, которые не нужны для исполнения других задач на сервере;
Х на клиентском компьютере хранится только идентификатор пользователя, необходимый для извлечения сведений из источника данных на сервере, Ч этот вариант оптимален для хранения подробных сведений о пользователе.
Детальному рассмотрению обоих методов посвящены следующие разделы.
и извлечение о..
Хранение сведений о пользователе на клиентском компьютере Чтобы сохранить файл cookie на клиентском компьютере, сделайте следующее.
Проверьте, поддерживает ли клиентский компьютер использование cookie при помощи свойства Cookies объекта Browser.
2. Если эта проверка дала положительный результат, выясните, существует ли файл cookie при помощи набора Cookies объекта 3. Если он не создайте новый файл cookie с помощью класса HttpCookie.
4. Установите значения свойств Value и Expiration объекта, файл cookie.
5. Добавьте объект файла cookie к набору Cookies объекта Эти действия иллюстрируются следующим обработчиком события который создает файл cookie, регистрирующий время последнего посещения пользо вателем. Программа проверяет, разрешает ли пользователь принимать файлы и со здает файл cookie, если это первый визит пользователя, либо обновляет файл, ранее, если пользователь посещал эту страницу раньше.
Visual Basic Private Sub sender As e As Handles (1) Проверить, принимает ли браузер файлы cookie.
If (2) Если этот cookie не If Is Nothing (3)...создать новый файл cookie, Dim cookLastVisit As New установить срок его действия в одни = ' (5) добавить его к набору cookies.
Отобразить сообщение.
is your first visit.
Else Получить файл cookie.
Dim cookLastVisit As HttpCookie = Показать время визита.
last visited this page: & Обновить cookie на клиентском компьютере.
= Expires End If browser does not accept If End Sub Visual C# private sender, e) { // (1) Проверить, принимает ли браузер файлы cookie.
if { // (2) Если этот cookie if null) { // (3)...создать новый файл HttpCookie cookLastVisit - new // (4) установить срок его действия в одни сутки, = // (5) добавить его к набору cookies.
// Отобразить сообщение.
is first else // Получить файл cookie, HttpCookie cookLastVisit = // Показать время последнего визита.
last visited this page: + // Обновить cookie на клиентском компьютере.
= else { browser does not accept :
!
Немного о Имена файлов cookie чувствительны к регистру. Например, LastVisit и Ч это раз ные файлы. Свойство Expires определяет по истечении которого клиент может от бросить cookie. По умолчанию период действия файлов cookie истекает по окончании се анса пользователя. Если установить свойство Expires в он будет длить ся вечно.
Можно удалить cookie с клиентского компьютера, присвоив свойству Expires значение времени. Например, следующий код удаляет cookie с клиентскою ком пьютера:
Visual Basic Private Sub sender As e As Handles Установить Expires так, чтобы срок действия cookie истек немедленно.
End Visual C# private void sender, e) { // свойство Expires так, // чтобы срок cookie истек немедленно, = Применение ключей с файлами cookie В одном файле cookie разрешается хранить до 4096 байт данных, при помощи ключей. следующий код сохраняет в cookie имя и адрес пользователя, связывая их с отдельными ключами:
Basic Sub sender As ByVal e As Создать файл cookie, As New Заполнить данными из формы, = = = = = срок cookie, = файл cookie.
End Sub Visual private void sender, e) // Создать файл cookie.
HttpCookie cookUserlnfo - new // Заполнить ключи данными из формы.
= - txtLastName.Text;
= txtStreet.Text;
= txtZIP.Text;
// срок действия cookie.
= // Добавить файл cookie.
Для получения значений из файла cookie достаточно имени ключа, как показано в сле коде:
Visual Sub sender As e As Handles Получить файл cookie.
Dim cookUserlnfo As HttpCookie = Заполнить поля.
= txtLastName.Text txtCity.Text = cookUserlnfoC'City") txtZIP.Text cookUserlnfoC'ZIP") End Sub Visual private void e) // Получить файл cookie.
HttpCookie cookUserlnfo = // Заполнить поля.
txtFirstName.Text = txtStreet.Text = txtCity.Text = = txtZIP.Text Занятие 1 и о я Хранение сведений о пользователе на сервере При хранении сведений о пользователе на сервере вместо клиентского фай лы cookie служат просто лопознавательным устройством для пользователя, позволяющим сохранять и извлекать его данные на сервере. Для хранения сведений о пользователях на сервере можно задействовать базы данных, XML-файлы и любые другие хранилища данных.
Чтобы сохранить сведения о пользователе на сервере, выполните следующие действия.
Создайте уникальный ключ, идентифицирующий пользователя.
2. Сохраните созданный ключ на клиентском компьютере в виде файла cookie.
3. Создайте на сервере файл для хранения сведений о пользователе.
4. Сохраните сведения о пользователе на сервере, используя созданный ключ в качестве индекса.
Более подробно эти действия описаны в следующих разделах.
Создание уникальных ключей для идентификации пользователей В Framework предусмотрено пространство имен Ч для создания но уникальных идентификаторов, или GUID Ч это число, уникальное во всех сетях. GUID могут служить уникальными ключами для идентифика любых сущностей, Б том числе пользователей приложения.
Следующий код создает и сохраняет в виде cookie на клиентском компьютере с целью идентификации пользователя в дальнейшем:
Visual Basic Private Sub sender As e As Handles ' cookie для запроса.
Dim As HttpCookie Если cookie не существует, создать его.
If cookUserlD Is Nothing Создать cookie с новым GUID, cookUserlD = New = End If Установить срок действия cookie.
' Добавить cookie к отклику.
Записать сведения о пользователе, взятые из данных формы.
End Sub Visual private void sender, e) { // Получить cookie для запроса.
= // Если cookie не создать его.
if == null) // Создать новый cookie с новым cookUserlD = // Установить срок действия cookie, = // Добавить cookie к отклику.
// Записать сведения о взятые из данных // формы.
Создания файлов для хранения сведений о пользователе Одна из целей сведений о пользователе Ч возможность быстро извлечь их во время следующего визита последнего. Так как у тех, кто ранее уже посещал ваши страни цы, уже есть уникальный идентификатор (это GUID, созданный в предыдущем разделе), имеет смысл использовать наборы данных для получения доступа к сведениям об этих пользователях. Наборы данных поддерживают метод Find, позволяющий извлекать строки с помощью уникального ключа.
Применение набора данных означает, что создаваемый на сервере файл должен быть файлом базы данных либо XML-файлом. позволяет записывать в файлы структури рованные данные без издержек и сложностей, неизбежных при обращении к базе данных.
Значит, для хранения простых данных, таких, как имя и адрес подхо дит Чтобы создать XML-файл для хранения сведений о пользователе, выполните следую щие действия.
1. В Visual Studio создайте XML-файл, содержащий примерные значения в полях данных, которые предназначены для хранения сведений о пользователе.
2. Сгенерируйте на основе XML-файла схему XML. Схема XML позволяет в наборе дан ных ссылаться по имени на данные, хранящиеся в XML-файле.
3. Задайте поле ключа в схеме XML, чтобы использовать его с методом Find поиска записей в наборе данных.
4. Прочитайте содержимое схемы XML и XML-файла в набор данных.
Более подробно эти действия описаны в следующих разделах.
Создание XML-файла Чтобы создать XML-файл в Visual Studio, выберите из меню Project команду Add New Item, затем выберите в списке Templates элемент XML File.
XML-файлы во многом похожи на HTML-файлы, но отличаются чувствительностью элементов и атрибутов XML к регистру и использованием строгого синтаксиса. Элементы данных XML-файла тэгами и Сле дующий пример демонстрирует XML-файл, хранящий имя и адрес пользователя:
О"
Чтобы сгенерировать схему XML на основе XML-файла, активируйте окно Design с загруженным XML-файлом и выберите в меню XML Create Schema Ч Visual Studio создаст файл со схемой, описывающей этот (рис. 7-1).
E Х Х E ! E С Е Х Рис. 7-1. Схема XML Определение поля ключа Чтобы предоставить возможность поиска для данных в формате XML, необходимо делить в схеме XML первичный ключ. В схеме, показанной на рис. есть поле ключа искать в наборе данных сведения о нужных пользователях.
Чтобы к схеме XML поле выполните следующие действия.
1. Щелкните правой кнопкой элемент, который хотите сделать ключом, и выберите из контекстного меню команду Add\New Key Ч Visual Studio откроет диалоговое окно Edit Key 11- Рис. 7-2. окно Edit 2. Установите флажок Dataset Primary Key и щелкните OK, чтобы сделать выбранный элемент первичным ключом набора данных. Теперь этот элемент можно использовать с методом Find объекта Dataset извлечения из набора данных нужных строк.
Заполнение набора данных с помощью XML-файла После создания XML-файла и схемы можно прочитать хранящиеся в них данные и заполнить ими набор данных. Для этого применяют методы и соответственно. Следующий код демонстрирует вспомогательную функцию, щую набор данных, который создан на основе XML-файла Visual Function GetUserDataC) As DataSet Задать путь к XML-файлу и схеме XML.
Dim strPath As String = Объявить набор данных.
dsUsers As New DataSet() схему XML к набору данных.
& содержимое XML и им набор данных.
& Return End Visual C# OataSet { // Задать путь к XML-файлу и схеме XML.
string strPath = // Объявить набор данных.
DataSet dsUsers = DataSet();
// Применить схему XML к набору данных.
+ содержимое и им набор данных.
dsUsers. + return dsUsers;
!
Сохранение сведений о пользователе на сервере Для сохранения сведений о пользователе на сервере в виде XML-файла применяется ме тод объекта набора Следующая вызывает дуру описанную в предыдущем разделе, для получения набора данных из XML-файла, а затем при помощи метода Find проверяет наличие заданного в по лученном наборе данных. Если не найден, добавляет в набор данных строку, в которой будут храниться сведения о пользователе, а затем записывает в нее зна чения, веденные в серверные элементы управления на Web-форме. В завершение записывает набор данных обратно на сервер.
Visual Basic Sub As String) Задать путь к XML-файлу и XML.
Dim strPath As String = Получить набор Users.
Dim dsUsers As Найти строку в наборе данных.
Dim As DataRow = ' Если строка не создать строку.
If rowUser Is Nothing Then = End If Записать в строку данные из полей форма.
= "State") = = UserID Записать содержимое набора данных в XML-файл.
& Sub Visual C# private void SetUserInfo(string UserlD) string = // Получить набор данных Users.
DataSet = // Найти строку в наборе данных, DataRow // Если строка не найдена, создать новую строку, == null) { = Записать в строку данные из полей формы.
= = = // Записать содержимое набора в XML-файл.
+ Извлечение сведений о пользователе из набора данных Извлечение сведений о пользователе из XML-файла производится так. Сначала при по мощи следует создать набор на основе XML-файла, затем нужно вызвать метод Find для извлечения строки с заданным значением UserlD. Ниже показана процедура которая извлекает из набора данных сведения о пользова теле и записывает их в серверные элементы управления Web-формы.
Visual Basic Sub UserlD As String) Получить набор данных Users, Dim dsUsers As = GetUserDataO Найти строку в наборе данных.
Dim rowUser As Если заданный пользователь не найден, выйти из процедуры.
If Is Nothing Then Exit Sub Записать содержимое строки в юля формы.
txtFirstName.Text = txtLastName.Text = txtCity.Text = txtZIP.Text = End Sub Visual void !
// набор данных DataSet = // Найти строку в наборе данных.
= // Если пользователь не найден, выйти из процедуры.
if (rowUser == null) return;
// Записать содержимое строки в поля = Text = = = = = Занятие 2. Отправка почты два способа отправки почты из Web-приложений:
Х с помощью протокола Ч применяется для отправки почты с клиента и использу ет установленную на нем почтовую Этот способ удобен, когда требуется отзывы о Web-сайте, предоставить техническую поддержку и решить другие задачи, требующие ответа на присланные сообщения;
Х с помощью классов и Ч применяется для почты с сер вера. Этот метод использует серверную почтовую систему и позволяет автоматически уведомлять об ошибках, рассылать анонимные сообщения и решать другие задачи, не требующие знания адреса отправителя Освоив материал этого занятия, научитесь отправлять почту обоими способами.
Изучив материал этого занятия, вы сможете:
способ отправки почты в соответствии с поставленной задачей;
создавать гиперссылки для запуска пользовательской почтовой программы;
создавать почтовые сообщения с помощью и серверной почтовых программ;
отправлять почтовые сообщения с сервера.
Продолжительность занятия Ч около 20 минут.
Отправка почты с клиентского компьютера Чтобы отправить почту с помощью клиентской почтовой системы, необходимо создать гиперссылку, использующую протокол mailto. Ниже показан пример HTML-кода, кото рый отображает гиперссылку, создающую новое сообщение с заданной темой и коротким текстом:
<А from а message Когда щелкает эту гиперссылку, браузер клиента запускает почтовую программу, установленную на клиентском компьютере, и создает показанное на рис. 7-3.
Протокол mailto вы можете использовать в серверных или управле ния, как обычную строку URL. Например, следующий HTML-код определяет серверный элемент управления Hyperlink, отправляющий сообщение:
a message mail.
Протокол mailto также используют в коде метода Redirect, однако при этом возможен нежелательный побочный эффект: при создании сообщения в браузере отображается пустая Текст различных частей сообщения задают посредством ключей, поддерживаемых про токолом mailto. Эти ключи составляют строку запроса и разделяются знаками (см.
пример ниже и таблицу 7-1).
Send from Edit tfew i Рис. 7-3. Создание почтового сообщения при помощи гиперссылки Таблица 7-1. Ключи протокола Ключ Назначение SUBJECT Задает текст темы СС Определяет список адресов (разделитель Ч знак по которым будут отправлены копии сообщения ВСС Задает список адресов Ч знак по которым будут отправлены скрытые копии BODY Определяет текст сообщения Протокол не поддерживает ключ для прикрепления файлов к сообщению, но пользователь может это сделать вручную в окне Если нужно, чтобы пользова тель прикрепил к сообщению файл (например, журнал ошибок или какой-либо л ругой отчет), инструкции в тело Отправка почты с сервера При отправке почты с сервера не запускает клиентскую почтовую систему, что бы пользователь создать сообщение, прикрепить к нему файлы и проверить адрес.
Вместо этого создается и отправляется программно одним из спо собов:
Х для отправки простого сообщения применяют метод Send класса Х более сложное сообщение можно создать, используя класс а затем отпра вить его посредством метода класса Оба класса Ч SmtpMail и Ч определены в пространстве имен Frame work System. поэтому следует поместить в начале модуля операторы, чтобы использовать в коде более простые ссылки на эти классы:
Visual Basic Imports Visual C# using Чтобы воспользоваться классом не обязательно создавать его экземпляр.
Можно отправить простое просто вызвав метод Send, как показано ниже:
Visual Basic "Subject "Message Visual "Subject "Message Предыдущая строка кода немедленно отправляет от на адрес Адреса отправителя и получателя обязательны, но метод Send не проверяет их. По умолчанию класс SmtpMail применяется для отправки почты локаль ный SMTP-сервер. Чтобы использовать сервер, свойство этого класса.
Метод Send подходит для рассылки простых сообщений, которые только текст, но для отправки сообщения с форматированным текстом или с прикрепленным файлом придется создать объект класса а затем вызвать метод Send класса SmtpMail для отправки сообщения:
Visual Basic Private Sub sender As + e As Handles Создать сообщение.
Dim As New Установить свойства сообщения.
= Subject = "This is the subject = "This is the message text," Создать вложение.
Dim As New & Вложить его в сообщение.
Отправить сообщение.
End Sub Visual C# private void sender, e) :
// Создать сообщение.
- new // Установить свойства сообщения.
mailNew. From = = = "This is the subject - "This is the message Создать = + // Вложить его в сообщение.
// Отправить сообщение.
} Этот код создает сообщение, устанавливает его свойства, прикрепляет к нему файл и отправляет И в этом случае при использовании метода Send уста новить свойства From и То, но их значения не проверяются.
Занятие 3. Применение фреймов Фреймы (frames) Ч это области Web-страницы, в которых можно отображать другие Web страницы. Фреймы позволяют отображать несколько областей, которые прокручиваются и функционируют независимо друг от друга. Из этого занятия вы узнаете, как создавать фреймы в Visual Studio, и научитесь управлять одним фреймом из другого.
Изучив материал этого занятия, вы создавать наборы фреймов, отдельные области для отображения содержимого проверять, поддерживает ли браузер пользователя фреймы;
отображать и HTML-страницы в областях, определяемых набором фреймов;
управлять главным фреймом из фрейма, отображающего информационное наполнение, при помощи гиперссылок и клиентских сценариев.
Продолжительность занятия Ч около 15 минут.
Создание фреймов в Visual Studio Чтобы создать фреймы в Visual Studio, выполните следующие действия.
Создайте набор фреймов.
2. Создайте которые будут отображаться во фреймах.
3. Назначьте для каждого фрейма из набора Web-страницу.
Более подробно эти действия описаны в следующих разделах.
Создание набора фреймов Чтобы создать набор фреймов в выполните следующие действия.
Из меню Project выберите команду Add New Item Ч Visual Studio откроет диалоговое окно Add New Item, показанное на рис. 7-4.
XML XML File Web Control File Static File Рис. 7-4. окно Add New 2. В диалоговом окне Add New Item выберите из списка Categories элемент U1 или затем из списка выберите Frameset;
в текстовом поле Name введите имя со здаваемой и Open. В результате Visual Studio откроет диалого вое окно Select A Frameset Template, показанное на рис. 7-5.
Footer.
and Hierarchy Top-Down Рис. 7-5. Диалоговое окно Select A Frameset Template Выберите тип фреймов из списка Framesets и шелкните ОК. Visual Studio г Web страницу в виде и откроет ее в окне Designer (рис. 7-6).
Рис. 7-6. Новый набор пустых фреймов Добавление страниц к набору фреймов В каждом фрейме созданного набора фреймов можно отображать или Web-форму. Сам набор фреймов представляет собой HTML-файл, но отображаемые во фреймах страницы могут быть как HTML-файлами, так и Web-формами.
Создав которые должны отображаться во фреймах, нужно назначить каж дому фрейму HTML-страницу или Web-форму. Это делается следующим образом.
1. Щелкните правой кнопкой фрейм, для которого следует назначить и выбе рите из контекстного меню команду Set Page For Frame. Visual Studio откроет диалого вое окно Select Page, показанное на рис. 7-7.
I Ban Рис. 7-7. Диалоговое окно Select Page 2. Выберите из списка Contents страницу, которая должна отображаться в этом фрейме, щелкните OK Ч Studio добавит выбранную страницу к фрейму.
3. Повторите пункты 1 и 2 для каждого фрейма из набора. После этого набор фреймов должен выглядеть, как показано на рис. 7-8.
. ftjfe Рис. 7-8. готового набора фреймов в режиме Design В режиме Design Visual Studio не способна корректно отображать Web-формы в наборе фреймов Ч вместо них появляются об ошибках либо искаженные элементы управления 7-8), но во время выполнения набор фреймов отображается правильно.
Чтобы увидеть, как отображается набор фреймов во время выполнения, можно:
Х сделать набор фреймов и запустить приложение;
Х перейти на страницу набора фреймов во время выполнения по ссылке или вызнав ме тод Redirect в коде.
Во время выполнения набор фреймов примерно выглядит, как на рис. 7-9.
ж Banner Page.
text from за HTML Рис. 7-9. Вид готового набора фреймов во время выполнения Проверка наличия поддержки фреймов в браузере Прежде чем решиться на широкое применение фреймов в приложении, знайте, что ран ние версии некоторых браузеров их не поддерживают. Если клиент, с таким браузером, запросит страницу с фреймами, то отобразится пустая страница или програм ма вовсе зависнет.
Чтобы перед применением набора фреймов выяснить, поддерживает ли браузер фрей мы, свойством Frames объекта Browser. Например, следующий код жает набор фреймов или обычную в зависимости от того, поддерживает ли фреймы клиентский браузер.
Visual Basic Private Sub sender As e As Handles Если клиентский браузер поддерживает фреймы, отобразить набор If '... в противном случае отобразить обычную HTML-страницу.
Else End If Sub private void sender, e) { // Если клиентский браузер поддерживает фреймы, отобразить // if // противном случае обычную else } Кроме того, в HTML-коде страницы с фреймами можно определять альтернативное содержимое, основываясь на поддержке фреймов Ч посредством элемента Этот элемент поддерживается в Internet Explorer версии 3.0 и выше, а также в спе цификацию HTML 4.O.
При создании набора фреймов Visual Studio автоматически генерирует в HTML-тексте элемент показанный в примере:
This HTML frameset displays Web pages. To this use a Web browser that supports HTML 4.0 and
Использование ссылок для перехода между фреймами Каждый фрейм в наборе фреймов функционирует как отдельное окно браузера. Любые страницы, на которые ведут ссылки со страницы, отображенной в данном фрейме, будут отображаться в том же фрейме.
Чтобы создать ссылку для перехода между отображаемыми в разных фрей мах, к ссылке атрибут TARGET. Например, следующий HTML-код показывает список ссылок, на главный фрейм набора фреймов.
<РХА <Р><А <Р><А Если щелкнуть одну из этих ссылок, содержимое фрейма с именем изменится, как показано на рис.
-tilth Page, Body.
Рис. 7-Ю. Переход между страницами по ссылке Нельзя методы Transfer и Execute для перехода между фреймами в коде, для этой цели годятся только гиперссылки или серверные элементы управления Hyperlink.
Занятие 4. Применение клиентских сценариев Если предоставляет полный набор инструментов программирования для созда ния серверных Web-приложений, зачем нужны клиентские сценарии? Поскольку сцена рии обладают прямым доступом к клиентскому браузеру, они позволяют делать многое из того, что невозможно осуществить из серверного кода, например:
Х управлять окном браузера. делать это из серверного кода нельзя, для откры тия нового окна браузера, передачи фокуса в окне, перехода между фреймами и стра из списка History, а также для решения ряда других задач, связанных с исполь зованием браузера, требуются клиентские Х немедленно реагировать на события, генерируемые при указателя мыши над элементом страницы. Серверный код способен реагировать на события только после возврата страницы на сервер, тогда как клиентский код немедленно реагирует на со бытие, генерированное Х запускать клиентскую почтовую систему. Подробно об этом Ч в занятии 2 этой главы.
На этом занятии вы научитесь добавлять сценарии к Web-формам и HTML-страницам в Visual Studio, чтобы создать код, работающий на клиентском компьютере.
Изучив материал этого вы проверять наличие поддержки сценариев в браузере;
выбирать язык сценариев для решения поставленной задачи;
управлять окном браузера и загруженными в него документами при помощи объектов Document Object Model (DOM);
создавать сценарии, встроенные в страницу и исполняемые во время интерпретации страницы браузером;
создавать сценарии, реагирующие на события, генерируемые браузером в ответ на и перемещение указателя мыши;
принимать информацию от пользователя и отображать отклик при помощи сценариев.
Продолжительность занятия Ч около 30 минут.
Что нужно учесть перед применением сценариев Применяя клиентские сценарии, следует знать, что:
Х не все браузеры поддерживают сценарии;
Х VBScript поддерживает только Internet Explorer;
Х использование сценариев таит в себе угрозу безопасности.
Поскольку не все браузеры поддерживают сценарии, перед отображением страниц со на клиенте следует проверить возможности его браузера. Ниже показан обра ботчик события который проверяет, поддерживает ли браузер сценарии и, если нет, направляет пользователя на страницу, ему обновить свой браузер.
Visual Basic Private Sub sender As e As Hardies If Exit Sub Elseif Then Else End Sub Visual private void sender, e) { if else if else } При работе с клиентскими сценариями также нельзя о безопасности. У этой проблемы два аспекта. Во-первых, уязвимы сами сценарии Ч их может просматривать и копировать любой, кто работает с приложением. Во-вторых, существует опасность распространения вирусов в сценариях, поэтому некоторые пользователи отклю чают работу в параметрах безопасности браузера.
Однако свойства VBScript и JavaScript объекта Browser возвращают True, даже если сце нарии отключены, поэтому придется проявить немного сообразительности, чтобы прове рить, используются ли сценарии в браузере. Следующий HTML-код проверяет, включены ли пытаясь запустить небольшой сценарий. Если их работа разрешена, пользо ватель будет направлен на другую страницу и не увидит следующее за стро кой, которая запускает сценарий:
Scripting is turned
Your Internet security options specify that your browser will not scripts, therefore you cannot view the page you requested. To turn scripting on, reset your browser's Internet security options to Medium, or enable active scripting in the custom s ecurity
to try