Проф. В.К.Толстых, www.tolstykh.com Технологии разработки Internet- приложений ASP.NET приложения – введение Из цикла лекций «Технологии разработки Internet-приложений»

Презентация:



Advertisements
Похожие презентации
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – локализация ресурсов приложения Из цикла лекций «Технологии.
Advertisements

Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – компиляция Из цикла лекций «Технологии разработки Internet-приложений»
Проф. В.К.Толстых, Пример Web-службы Калькулятор с валидацией Из цикла лекций «Internet-технологии разработки приложений» для студентов.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – ASP.NET-процесс, пул, домен приложения, компиляция,
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – директивы Из цикла лекций «Технологии разработки Internet-приложений»
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – элементы управления HTML Из цикла лекций «Технологии.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Эталонные страницы – Master pages Из цикла лекций «Технологии разработки.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – оптимизация скорости работы приложений Из цикла лекций.
ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – обработка ошибок страниц и приложения, Global.aspx.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: HtmlControls Из цикла лекций «Технологии разработки Internet-приложений»
Проф. В.К.Толстых, Технологии разработки Internet- приложений Архитектура IIS 5, IIS 6, исполняющая среда ASP.NET в IIS 7, конфигурирование.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: динамические таблицы, привязка данных к выпадающему списку.
ДонНУ, кафедра КТ, проф.В.К.Толстых Web-службы (Web-сервисы) введение введение Разработка в среде Delphi Из цикла лекций «Internet-технологии разработки.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – пользовательские элементы управления Из цикла лекций.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Администрирование IIS 5, 6 сайт, виртуальный каталог, приложение, пул, рабочий.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – валидация, валидационные элементы управления Из цикла.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Delphi for.NET примеры: работа с файлами Из цикла лекций «Технологии разработки.
Проф. В.К.Толстых, Выполнил студент: Тышлек С.В., 2009 Технологии разработки Internet- приложений Из цикла лекций «Технологии разработки.
Транксрипт:

проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – введение Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета

Принцип действия ASP.NET Сервер IIS aspnet_isapi.dll CLR (Common Language Runtime).aspx HTML При запросе файла.aspx, он передаётся ISAPI расширению сервера aspnet_isapi.dll (IIS 5-6) или рабочему процессу IIS 7, который загружает CLR и запускает конвейер модулей HTTP. Этот конвейер представляет собой системные модули и пользовательские классы среды.NET Framework. Он осуществляет рендеринг классов приложения (элементов управления), последовательно обрабатывая их, запрос клиента и формируя HTML-ответ. Системные модули HTTP указаны в C:\Windows\Microsoft.NET\...\machine.config (конфигурация сервера по умолчанию, для всех его Web-приложений). Они организуют аутентификацию, авторизацию, состояние сеанса, пред и пост обработку запроса, перехват системных событий и событий других модулей.machine.config Конфигурацию по умолчанию можно изменить для каждого Web-приложения файлами Web.config – в корне соответствующего приложения и в его папках. Web.config Internet запрос HTML- ответ Модули IIS 7 Расширения сервера Классичес- кий режим Встроен- ный режим

Структура ASP.NET-странницы «Преобразование к верхнему регистру» - Demo.aspx Demo.aspx private void fun (object sender, EventArgs e) { TheResult.InnerText=(text1.Value).ToUpper(); } Пробная страница Заголовок Результат: В этом простом примере код реализации класса формы встроен в тот же файл.aspx Стандарт XHTML 1.1

Результаты работы Demo.aspx Demo.aspx

Особенности предыдущей ASP.NET-странницы Тег с атрибутом runat превращает HTML-тег в серверный элемент (в данном случае – экземпляр класса HtmlInputControl ). Этот элемент имеет свойство Value, в котором содержится вводимый текст. Атрибут runat в теге организует возврат данных на сервер этой же форме (называется PostBack). Прочитанные данные из присваиваются свойству Value новосозданного экземпляра класса HtmlInputControl. Затем выполняется код в (функция fun ), вызванный событием OnServerClick=fun. Функция переводит символы в верхний регистр и присваивает полученную строку свойству InnerText серверного элемента с идентификатором id=TheResult. В результате работы серверных элементов и их событий генерируются HTML-теги, встраиваемые в раздел пользовательского интерфейса. Полученная HTML-страница возвращается клиенту. При написании приложений в среде Visual Studio визуальная часть формы остаётся в файле.aspx, а код реализации класса формы, вместо тега, по умолчанию, размещается в отдельном файле *.aspx.cs (для языка C#). Это «облегчает» страницу.aspx и позволяет работать над классами страницы нескольким разработчикам.

Полученная клиентом HTML-страница Скрытые поля c id = "__VIEWSTATE" (состояние представления) обеспечивают механизм сохранения и передачи «истории» состояний элементов страницы при её многократном повторном вызове. В клиентских нет атрибута runat Вся «особенность» HTML-ответа – в скрытых и скриптах формы Обратный вызов страницы Скрытые поля для реализации обратного вызова

Совместимость Стандарт XHTML определяет Web-страницы как документы XML. Это необходимо для объединения визуальной и программистской составляющей Web-страниц и для совместимости с будущими браузерами (IE 8…). Разметка, генерируемая ASP.NET, соответствует этому стандарту: для одиночных тегов требует, – внутри, у формы нельзя использовать атрибут name, а надо id, … Для облегчения переноса старых Web-страниц в проект ASP.NET 2.0 можно отключить рендеринг элементов управления по стандарту XHTML. Для этого надо в файле конфигурации web.config добавить строки: Для совместимости генерируемого HTML-кода с различными его версиями можно использовать в файле конфигурации следующую конструкцию: 3

Модель обратного вызова Postback Для того, чтобы реализовать модель событий в ASP.NET существует модель обратного вызова страницы – Postback. Такая модель подразумевает наличие одной HTML-формы (тег ) на всю страницу. Кроме того, на странице присутствуют два скрытых поля, которые содержат имя элемента, который инициировал обратный вызов и аргументы: Для осуществления обратного вызова в рамках каждой страницы, реализованной на основе концепции Web- форм, существует функция JavaScript "__doPostBack()". Для выполнения обратного вызова на клиентской стороне вызывается данная функция, которая отсылает значение формы на сервер вместе с информацией об элементе, инициировавшем обратный вызов.

Зарезервированные папки проекта Bin – все предкомпилированные (заранее компилированные) сборки.dll, необходимые для работы приложения. В простом проекте их может не быть. App_Data – источники данных, используемых в проекте. Доступны только из этого проекта. App_Code – исходные коды классов приложения (.cs ). При первом обращении к ним они динамически компилируются в сборку.dll, которая кэшируется в папке Windows\...\Temporary ASP.NET Files. Кэшированная сборка используется проектом, пока не изменятся какие-либо его коды. App_GlobalResources – глобальные ресурсы.resx всего приложения для многоязычной поддержки браузеров (язык браузера передаётся в заголовке HTTP-запроса). App_LocalResources – локальные ресурсы.resx для отдельных страниц приложения. App_Thems – темы приложения - файлы.css, рисунки… Каждая тема в своей папке. App_WebReferences – файлы.wsdl используемые для Web-сервисов. По умолчанию IIS блокирует все запросы браузеров к файлам, хранящимся в папках App_... Компиляция, сборка, запуск Когда браузером запрашивается страница.aspx, то из файлов.cs папки App_Code динамически генерируется сборка.dll, и совместно с предкомпилированными сборками папки bin, связывается с Web-приложением. Если запуск приложения был с отладкой (в файле web.config – строка ), то после передачи сборки рабочему процессу Web-сервера открывается браузер для просмотра результатов работы. Если исходный код страницы.aspx будет изменён, то при её первом запросе она будет заново скомпилирована.

Серверные элементы управления ASP.NET Они позволяют на сервере очень просто получить доступ к состоянию элементов страницы. Серверные элементы управления HTML - стандартные HTML-теги с атрибутом runat=server и идентификатором id. Свойства совпадают с атрибутами соответствующего тега, простые свойства: InnerText, InnerHtml, Style, Value, Attributes Серверные элементы управления Web - более развитые элементы: …календарь, раскрывающийся список, таблицы данных… Идентификатор элемента управления Web – это префикс < asp: Пример текстового элемента управления HTML и Web: Оба элемента генерируют одинаковый HTML-код, элемент Web содержит вводимый текст в свойстве text, а не в value. элемент управления HTML элемент управления Web

Объекты HttpRequest и HttpResponse Они позволяют получить доступ к входным и выходным данным НТТР запроса. Имеют тот же смысл, что и в технологии ASP. Они реализуют свойства Request и Response класса HttpContext, который, в свою очередь, инкапсулирует все связанные с НТТР сведения об индивидуальном запросе. Пример Response.Write ("Hello " + HttpUtility.HtmlEncode(Request.QueryString[ "UserName" ]) + " "); или аналогичный вывод можно сделать так: или даже так (с автоматическим кодированием вывода в.NET 4): Если не нужно кодировать, то не энкодить меня! ") %> Метод HtmlEncode удаляет вредоносные скрипты и недопустимые символы, которые могли находиться в поле ввода UserName.

Создание Web-сайта на локальном сервере средствами VS 2012

Создание Web-сайта через диспетчер IIS 7 Создать сайт-приложение в корне Добавить в область видимости какую-либо папку Преобразовать сайт-папку в сайт-приложение Удаляет в IIS информацию о приложении, но не удаляет сайт-папку

Создание файла формы в VS 2012

Генерируется форма, допускается только одна с атрибутом runat Визуальное редактирование формы Файл формы Директива Page – настройка атрибутов страницы (метаданных для компилятора) Код формы Файл конфигураци и сайта Присоединё нный файл класса формы

Пространства имен – это разделы типов данных, позволяющие хранить типы данных и функции в иерархической структуре. Предоставляет доступ к классам и интерфейсам для создания ASP.NET компонент и страниц (Page, Controls) Базовый класс Page для всех страниц ASP.NET Событие Load класса Page, возникает сразу после инициа- лизации элементов формы Частичный класс допускает определение в нескольких файлах содержимое которых объединяется для составления полного определения класса. Может разрабаты- ваться несколькими разработчиками Предоставляет доступ к классам HttpRequest, HttpResponse Код класса формы

Копирование и публикация Web-сайта В отличии от копирования, при публикации происходит предкомпиляция некоторых кодов приложения и добавление их.dll -сборок в папку Bin, что повышает быстродействие проекта при первом запуске и скрывает коды классов приложения от «посторонних» глаз. Компилировать изменённые файлы проекта Компилировать весь проект заново Компилировать страницу

Рассмотрим пример проекта Web-сайт «Калькулятор» Показать работу приложения на сервере

Серверные элементы управления Web