- •Федеральное агентство по образованию
- •Таганрогский государственный радиотехнический университет
- •Программирование в Интернет
- •Лекция 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)
Файлы Web-приложения
Компонуя проект Web Forms, Visual Studio. NET компилирует весь исходный текст в исполняемый DLL-файл и помещает его в каталог /bin. Часть Web-приложения, отвечающая за его вид, остается в aspx- и html-файлах. На рисунке показаны файлы, которые получаются в результате компоновки Web-приложения:
Когда браузер запрашивает начальную страницу приложения (http://localhost/WebForm1.aspx), IIS запускает исполняемую часть приложения (WebApplication1.dll) и генерирует отклик. В этом случае отклик содержит страницу, определение которой находится в файле WebForm1.aspx. Если на странице произошло событие (например, пользователь нажал кнопку), страница возвращается на сервер, где DLL-файл приложения обрабатывает это событие.
Обработка событий События жизненного цикла Web-приложения
Web-приложения живут, пока у них есть хоть один активный сеанс, а Web-формы живут буквально мгновения. Жизнь Web-приложения начинается, когда браузер запрашивает его начальную страницу. В этот момент Web-сервер запускает исполняемую часть приложения (DLL), формирующую отклик. Исполняемая часть создает экземпляр запрошенной Web-формы, генерирует HTML-текст отклика и посылает его браузеру, после чего DLL приложения уничтожает созданный экземпляр Web-формы.
После получения браузером HTML, сгенерированного приложением, пользователь может заполнять текстовые поля формы, устанавливать нужные переключатели и выполнять другие действия, пока он не спровоцирует событие, вызывающее отправку формы на сервер. Это событие заставит браузер отослать данные страницы (ее состояние отображения) обратно на сервер для обработки события. Получив состояние отображения, сервер создает новый экземпляр Web-формы, заполняет его данными состояния отображения и обрабатывает все события. Завершив обработку, сервер возвращает браузеру полученный в результате HTML и уничтожает созданный им экземпляр Web-формы.
Закончив работу, пользователь закрывает браузер либо переходит на другой Web-сайт, в результате сеанс этого пользователя завершается. Если с приложением больше никто не работает (то есть сеансов больше нет), оно завершается. Однако это не всегда происходит сразу. В отличие от OLE, где управление памятью базируется на подсчете ссылок, ASP.NET управляет памятью при помощи “сбора мусора”. При использовании этого механизма сервер периодически проверяет ссылки объектов. Обнаружив объект, который больше не используется, сервер уничтожает его, освобождая занятую им память. Как следствие, нельзя сказать наверняка, когда именно сработает событие Application_End.
Сохранение данных Web-формы
Поскольку Web-формы живут очень не долго, ASP.NET принимает специальные меры для сохранения данных, введенных в элементы управления Web-формы. С каждым запросом на сервер отправляются все данные, которые были введены в элементы управления, где они записываются в элементы управления во время обработки события Page_Init. Далее эти данные будут доступны обработчику события Page_Load.
Данные, которые ASP.NET сохраняет между передачей запросов, называются состоянием отображения (view state) Web-формы. Состояние отображения Web-формы доступно только внутри этой Web-формы. Чтобы сделать введенные в Web-форму данные доступными другим Web-формам приложения, необходимо сохранить их в переменных состояниях (в объектах Application либо Session). Эти объекты отличаются областью действия:
переменные состояния на основе объекта Application доступны всем пользователям приложения, поэтому их можно рассматривать как глобальные переменные, доступные нескольким пользователям. Эти переменные разрешается читать и записывать из любых сеансов;
переменные состояния на основе объекта Session доступны в пределах одного сеанса (только одному пользователю). Переменные Session напоминают глобальные переменные стандартных Windows-приложений. Эти переменные состояния доступны только в текущем сеансе.
Переменные Application и Session объявляются иначе, чем обычные. Переменные состояния создаются кодом «на лету». Следующий код подсчитывает, сколько раз щелкнули кнопку, и записывает результат в переменную состояния Session.