- •Федеральное агентство по образованию
- •Таганрогский государственный радиотехнический университет
- •Программирование в Интернет
- •Лекция 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)
Компиляция “Just In Time”
Теоретически, как и в Java, код на языке MSIL можно скомпилировать и исполнять на любой платформе, которая поддерживает среду исполнения CLR. На сегодняшний день такая среда существует лишь в архитектуре Intel с ОС Windows, но вполне вероятно, что она появится и на других платформах. Такое мнение основывается на наличии JIT-компилятора (Just In Time). На рисунке показаны процессы компиляции и исполнения.
Возникает вопрос: “компиляция такого ассемблерного кода, как MSIL, должна сказываться на производительности приложения”. На самом деле дополнительные издержки очень малы и практически незаметны. Отчасти это объясняется умением разработчиков JIT-компилятора, но в основном такое поведение – результат механизма, по которому работают программы.
При работе программы исполняется далеко не каждая ее строка. Например, код обработки ошибок выполняется лишь в исключительных случаях. Чтобы воспользоваться этим фактором и не компилировать с самого начала весь MSIL-код в машинный, JIT-компилятор компилирует код лишь по мере необходимости, а откомпилированный код кэшируется для повторного использования. Механизм JIT-трансляции довольно прямолинеен. При загрузке класса загрузчик “закрывает” заглушками все методы класса. Когда метод вызывается в первый раз, код заглушки передает управление JIT-компилятору, который преобразует MSIL-код в машинный код. Затем заглушка заменяется на указатель на созданный машинный код, и последующие запросы выполняются непосредственно этим кодом.
Управляемый код и данные
Управляемый код (managed code) – это тот код, который предоставляет среде исполнения CLR достаточно информации для выполнения следующих задач:
поиска метаданных, описывающих метод, по адресу в коде;
прохода стека;
обработка исключений;
хранения и поиска информации, связанной с безопасностью.
Чтобы выполнение этих задач стало возможным, код должен предварительно пройти специальную проверку, или верификацию (verification process), если только политикой не разрешено его исполнение без проверки. В процессе верификации JIT-компилятор исследует MSIL-код и метаданные, пытаясь выяснить, поддерживается ли контроль типов. Код с поддержкой типов обращается только к областям памяти, которые ему принадлежат, - это гарантирует его корректную работу и правильное взаимодействие с другими программами, а так же то, что он не станет причиной случайного или злонамеренного разрушения системы. В отсутствии контроля типов нельзя четко соблюсти правила безопасности.
С управляемым кодом связаны управляемые данные (managed data) – данные, память для которых выделяется и освобождается автоматически средой CLR с применением механизма, который называется “сборкой мусора” (garbage collection).
Лекция 8. Создание приложений Web Forms Файлы проекта Web Forms
Для каждого нового проекта Web-приложения Visual Studio .NET генерирует полный набор файлов. Рассмотрим каждый из них:
Имя |
Содержимое |
AssemblyInfo.vb или AssemblyInfo.cs |
Все данные, необходимые для идентификации проекта, в том числе версия, название компании, GUID, параметры компилятора и др. |
Global.asax |
Обработчики глобальных событий Web-приложения, таких, как запуск и завершение. В проекте может быть только один файл Global.asax, он размещается в корневом каталоге проекта |
Global.asax.vb или Global.asax.cs |
Код, используемый файлом Global.asax |
Style.css |
Определение стилей оформления HTML-элементов, генерируемых для проекта |
Web.config |
Параметры Web-сервера при обслуживании этого проекта; определяют способ сообщения об ошибках, используемый тип аутентификации пользователей и т.п. В проекте может быть только один такой файл, он размещается в корневом каталоге проекта |
Имя_проекта.disco |
Описание Web-сервисов, предоставляемых проектом |
WebForm1.aspx |
Описание визуального представления Web-формы |
WebForm1.aspx.vb или WebForm1.aspx.cx |
Код, обрабатывающий события Web-формы |
WebForm1.aspx.resx |
XML-ресурсы, используемые Web-формой |
Имя_проекта.vbproj или Имя_проекта.csproj |
Список файлов и параметров, используемых во время разработки |
Имя_проекта.vbproj. webinfo или Имя_проекта.csproj. webinfo |
Параметры Web, используемые во время разработки проекта |
Помимо перечисленных файлов, проект Web-приложения может содержать сколько угодно файлов других типов, таких как пользовательские Web-элементы управления или XML-схемы данных.