- •Федеральное агентство по образованию
- •Таганрогский государственный радиотехнический университет
- •Программирование в Интернет
- •Лекция 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 c#
Application["Uname"] = "Wombat";
Response.Write(Application[“Unamme"]);
Код в первой строке создает переменную и сохраняет в ней некоторый текст. Из-за банальной опечатки в имени переменной код следующей строки создаст и отобразит на странице новую, пустую переменную, в результате на странице тоже будет пусто. В этом случае найти ошибку просто, чего не скажешь, если такая ошибка возникнет где-то в глубине структуры решений (decision structure).
Во избежание подобных проблем следует упорядочивать доступ к переменным состояния Application и Session. Проще всего сделать это следующим образом. Для каждого необходимого элемента данных объявляются переменные на уровне страницы, затем при исполнении обработчика события Page_Load в них записываются значения переменных состояния Application и Session, а при исполнении обработчика события Page_Unload значения переменных, объявленных на уровне страницы, возвращаются в переменные состояния. Упорядоченное чтение и запись переменных состояния – полезный прием программирования, который рекомендуется взять на вооружение.
Следующий код иллюстрирует упорядоченный доступ к переменным состояния:
Visual Basic .Net
Public Class WebForm1
'Объявить переменную на уровне страницы.
Dim mstrUname As String
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles MyBase.Load
' Получить значение переменной
mstrUname = Application(“Uname")
' Присвоить значение.
mstrUname = "Wombat"
' Использовать переменную.
Response.Write(mstrUname)
End Sub
Private Sub Page_Unload(ByVal sender As Object, ByVal e As _ System.EventArgs) Handles MyBase.Unload
' Вернуть значение в переменную состояния.
Application(“Uname") = mstrUname
End Sub
End Class
Visual c#
string mstrUname = "";
private void Page_Load(object sender, System.EventArgs e) {
// Проверить, существует ли переменная состояния. if(Application["Uname"] != null)
// Получить значение переменной состояния.
mstrUname = Application["Uname"].ToString();
//Присвоить значение.
mstrUname = "Wombat";
// Использовать переменную.
Response.Write(mstrUname);
}
private void Page.UnLoad(object sender, System. EventArgs e){
// Вернуть значение в переменную состояния.
Application[“Uname"] = mstrUname;
}
Замечание. В случае Visual C#, прежде чем вызывать любые методы переменной состояния, например ToString(), обязательно необходимо убедиться, что ее значение отлично от null, иначе будет допущена ошибка времени выполнения (run-time error) из-за пустой переменной состояния.
Отключение переменных состояния Session
По умолчанию ASP.NET поддерживает переменную состояния Session для каждой страницы приложения. Если странице не нужна сеансовая переменная состояния, то для повышения производительности ее можно отключить.
Чтобы отключить переменную состояния Session для одной Web-формы, необходимо вызвать окно \\Web Form Properties для формы и установить значение параметра EnableSessionState в False.
Чтобы отключить переменные состояния Session во всем приложении, необходимо в файле \Web.config установить для тега <sessionstate mode> значение off.
<sessionstate mode="off" ...>