- •Федеральное агентство по образованию
- •Таганрогский государственный радиотехнический университет
- •Программирование в Интернет
- •Лекция 1. Введение в Web-программирование
- •Принцип работы Web-приложений
- •Обзор известных средств программирования для Internet
- •Первое решение: cgi
- •Преимущества cgi
- •Недостатки cgi
- •Второе решение: isapi-интерфейс
- •Преимущества isapi
- •Недостатки isapi
- •Третье решение: asp
- •Преимущества asp
- •Недостатки asp
- •Лекция 2. Введение в php
- •Что такое рнр?
- •Архитектура рнр
- •Первая программа на php
- •Взаимодействие html и php
- •Лекция 3. Типы данных php
- •Комментарии
- •Логические переменные
- •Синтаксис логических переменных
- •Приведение значений к логическому типу
- •Целые числа
- •Синтаксис целочисленных переменных
- •Целочисленное переполнение
- •Приведение к целочисленному типу
- •Вещественные числа
- •Константы
- •Преобразование строк
- •Лекция 4. Переменные
- •Изменение типа переменной
- •Преобразование типа переменной
- •Операторы и выражения
- •Оператор присваивания
- •Арифметические операторы
- •Оператор конкатенации
- •Дополнительные операторы присваивания
- •Операторы сравнения
- •Логические операторы
- •Увеличение или уменьшение целой переменной
- •Порядок вычисления операторов
- •Динамические переменные
- •Ссылки на переменные
- •Лекция 5. Инструкция if
- •Блок else инструкции if
- •Блок elseif инструкции if
- •Инструкция switch
- •Оператор ?
- •Цикл while
- •Цикл do... While
- •Цикл for
- •Прерывание циклов инструкцией break
- •Пропуск итераций с помощью инструкции continue
- •Лекция 6. Функции
- •Аргументы функции
- •Аргументы по умолчанию
- •Область видимости переменных
- •Лекция 7. Краткий обзор .Net Framework
- •Промежуточный язык Microsoft Intermediate Language
- •Компиляция “Just In Time”
- •Управляемый код и данные
- •Лекция 8. Создание приложений Web Forms Файлы проекта Web Forms
- •Файлы Web-приложения
- •Обработка событий События жизненного цикла Web-приложения
- •Сохранение данных Web-формы
- •Visual Basic .Net
- •Visual c#
- •События Application и Session
- •Visual Basic .Net
- •Visual c#
- •События Web-формы
- •Visual Basic .Net
- •Visual c#
- •События серверных элементов управления
- •Visual Baste .Net
- •Visual c#
- •Лекция 9. Работа с Web-объектами Введение в пространство имен
- •Пространства имен в Web-приложениях Обзор пространства имен Web
- •Visual Basic .Net
- •Visual c#
- •Использование объекта Application
- •Visual Baste .Net
- •Visual c#
- •Использование объекта Page
- •Visual Basic
- •Visual с#
- •Использование объекта Request
- •Visual Baste .Net
- •Visual c#
- •Использование объекта Response
- •Visual Baste .Net
- •Visual c#
- •Лекция 10. Сохранение сведений о состоянии Способы сохранения сведений о состоянии
- •Использование строк запросов
- •Visual Basic .Net
- •Visual c#
- •Использование переменных состояния Application и Session
- •Упорядочение доступа к переменным состояния
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Отключение переменных состояния Session
- •Лекция 11. Web-элементы управления. Использование элементов управления.
- •Простые элементы управления
- •Элементы управления Label
- •Элементы управления HyperLink
- •Элементы управления Image
- •Элементы управления CheckBox
- •Элементы управления RadioButton
- •Элементы управления Table
- •Элементы управления DropDownList
- •Элементы управления ListBox
- •Элементы управления CheckBoxList
- •Элементы управления RadioButtonList
- •Лекция 12. Проверяющие элементы управления
- •Использование проверяющих элементов управления
- •RequiredFieldValidator
- •RangeValidator
- •CompareValidator
- •RegularExpression Validator
- •CustomValidator
- •ValidationSummary
- •Отмена проверки вводимых данных
- •Лекция 13. Введение в Web-сервисы Обзор Web-сервисов xml
- •Инфраструктура Web-сервисов xml
- •Взаимодействие клиентов и Web-сервисов xml
- •Лекция 14. Механизм обнаружения Web-сервисов xml
- •Использование Web-сервисов xml
- •Добавление Web-ссылки
- •Генерация класса прокси
- •Создание объекта класса прокси
- •Доступ к Web-сервису xml через объект прокси
- •Сериализация
- •Лекция 15. Управление Web-методами при помощи атрибутов Атрибуты Web-метода
- •Буферизация откликов Web-метода
- •Visual c#
- •Пользовательские маркеры
- •Подписи
- •Шифрование
- •Лекция 17. Модель безопасности asp.Net
- •Лекция 18. Введение в инфраструктуру Microsoft .Net Remoting
- •Объекты .Net Remoting
- •Передача объектов по механизму .Net Remoting
- •Пример кода для простого серверного объекта .Net Remoting
- •Срок жизни, определяемый арендой
- •Channel Services (System.Runtime.Remoting.Channels)
- •Пример кода, загружающего Channel Services
- •Форматирующие объекты сериализации (System.Runtime.Serialization.Formatters)
Visual Basic .Net
Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles Button1.Click
'Сохранить число щелчков в переменной состояния Session.
Session("Clicks") = Session("Clicks") + 1
'Отобразить число щелчков.
Response.Write("Number of clicks: " & Session("Clicks"))
End Sub
Visual c#
// Код из файла Global.asax.cs
protected void Session_Start(Object sender, EventArgs e)
{
// Инициализировать переменную состояния Clicks Session.
Session["Clicks"] = 0;
}
// Этот код взят из файла StateNEvents.asax.cs
private void Button1_Click(Object sender, System.EventArgs e)
{
// Увеличить число щелчков,
Session["Clicks"] = (int)Session["Clicks"] +1;
// Показать число щелчков.
Response.Write("Number of clicks: "+Session["Clicks"] + "<br>");
}
В переменных состояния можно хранить данные любого типа, от обычных целочисленных значений до объектов. Поскольку переменные состояния относятся к глобальным, необходимо выработать стратегию их использования в приложении.
Замечание. Как правило, в программах на Visual C# переменные состояния Application следует инициализировать перед использованием. Например, перед преобразованием типов (int)Session[«Clicks»] переменную состояния Clicks необходимо инициализировать, в противном случае во время выполнения вы получите сообщение об ошибке.
События Application и Session
Код, обрабатывающий события объектов Application и Session, можно поместить в файл Global.asax. События Application используются для инициализации объектов и данных, которые должны быть доступными всем текущим сеансам Web-приложения. События Session служат для инициализации данных, которые нужно хранить в пределах одного сеанса, не делая их доступными другим сеансам. Перечислим обработчики различных событий Application, с указанием обстоятельств, при которых они вызываются:
Имя |
Когда вызывается |
Application_Start |
Первый пользователь открыл начальную страницу Web-приложения |
Application_End |
С приложением больше никто не работает |
Applieation_ BeginRequest |
В начале каждого запроса к серверу. Запрос происходят каждый раз, когда браузер открывает какую-либо страницу приложения |
Application_ EndRequest |
В конце каждого запроса к серверу |
Session_Start |
Новый пользователь открыл начальную страницу приложения |
Session_End |
Пользователь покинул приложение, закрыв браузер, либо наступил тайм-аут по бездействию |
В приложениях Web Forms сеанс (session) представляет уникальный экземпляр браузера. Если пользователь запустит у себя на компьютере несколько экземпляров браузера и откроет в каждом из них страницы Web-приложения, для каждого экземпляра браузера будет создан отдельный сеанс.
Чтобы увидеть события Application и Session в действии, добавьте в файл Global.asax проекта Web Forms следующий код:
Visual Basic .Net
Sub Application_Start (ByVal Sender As Object, ByVal E As EventArgs)
‘Зарегистрировать запуск приложения.
Application("AppCount") = Applicaion("AppCount") + 1
End Sub
Sub Session_Start(ByVal Sender As Object, ByVal E As EventArgs)
‘Подсчитать сеансы.
Application("SessCount") = Application("SessCount") + 1
‘Показать число экземпляров приложения.
Response.Write("Number of applications: " & _
Application("AppCount") & "<br>")
' Показать число сеансов.
Response.Write("Number of sessions: " & _
Application("SessCount") & "<br>")
End Sub
Sub Session_End(ByVal Sender As Object, ByVal E As EventArgs)
'Уменьшить число сеансов.
Application("SessCount") = Application("SessCount") - 1
End Sub