Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемГалина Полукарпова
1 проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – введение Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета
2 Принцип действия 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 Расширения сервера Классичес- кий режим Встроен- ный режим
3 Структура ASP.NET-странницы «Преобразование к верхнему регистру» - Demo.aspx Demo.aspx private void fun (object sender, EventArgs e) { TheResult.InnerText=(text1.Value).ToUpper(); } Пробная страница Заголовок Результат: В этом простом примере код реализации класса формы встроен в тот же файл.aspx Стандарт XHTML 1.1
4 Результаты работы Demo.aspx Demo.aspx
5 Особенности предыдущей 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 и позволяет работать над классами страницы нескольким разработчикам.
6 Полученная клиентом HTML-страница Скрытые поля c id = "__VIEWSTATE" (состояние представления) обеспечивают механизм сохранения и передачи «истории» состояний элементов страницы при её многократном повторном вызове. В клиентских нет атрибута runat Вся «особенность» HTML-ответа – в скрытых и скриптах формы Обратный вызов страницы Скрытые поля для реализации обратного вызова
7 Совместимость Стандарт XHTML определяет Web-страницы как документы XML. Это необходимо для объединения визуальной и программистской составляющей Web-страниц и для совместимости с будущими браузерами (IE 8…). Разметка, генерируемая ASP.NET, соответствует этому стандарту: для одиночных тегов требует, – внутри, у формы нельзя использовать атрибут name, а надо id, … Для облегчения переноса старых Web-страниц в проект ASP.NET 2.0 можно отключить рендеринг элементов управления по стандарту XHTML. Для этого надо в файле конфигурации web.config добавить строки: Для совместимости генерируемого HTML-кода с различными его версиями можно использовать в файле конфигурации следующую конструкцию: 3
8 Модель обратного вызова Postback Для того, чтобы реализовать модель событий в ASP.NET существует модель обратного вызова страницы – Postback. Такая модель подразумевает наличие одной HTML-формы (тег ) на всю страницу. Кроме того, на странице присутствуют два скрытых поля, которые содержат имя элемента, который инициировал обратный вызов и аргументы: Для осуществления обратного вызова в рамках каждой страницы, реализованной на основе концепции Web- форм, существует функция JavaScript "__doPostBack()". Для выполнения обратного вызова на клиентской стороне вызывается данная функция, которая отсылает значение формы на сервер вместе с информацией об элементе, инициировавшем обратный вызов.
9 Зарезервированные папки проекта 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 будет изменён, то при её первом запросе она будет заново скомпилирована.
10 Серверные элементы управления ASP.NET Они позволяют на сервере очень просто получить доступ к состоянию элементов страницы. Серверные элементы управления HTML - стандартные HTML-теги с атрибутом runat=server и идентификатором id. Свойства совпадают с атрибутами соответствующего тега, простые свойства: InnerText, InnerHtml, Style, Value, Attributes Серверные элементы управления Web - более развитые элементы: …календарь, раскрывающийся список, таблицы данных… Идентификатор элемента управления Web – это префикс < asp: Пример текстового элемента управления HTML и Web: Оба элемента генерируют одинаковый HTML-код, элемент Web содержит вводимый текст в свойстве text, а не в value. элемент управления HTML элемент управления Web
11 Объекты HttpRequest и HttpResponse Они позволяют получить доступ к входным и выходным данным НТТР запроса. Имеют тот же смысл, что и в технологии ASP. Они реализуют свойства Request и Response класса HttpContext, который, в свою очередь, инкапсулирует все связанные с НТТР сведения об индивидуальном запросе. Пример Response.Write ("Hello " + HttpUtility.HtmlEncode(Request.QueryString[ "UserName" ]) + " "); или аналогичный вывод можно сделать так: или даже так (с автоматическим кодированием вывода в.NET 4): Если не нужно кодировать, то не энкодить меня! ") %> Метод HtmlEncode удаляет вредоносные скрипты и недопустимые символы, которые могли находиться в поле ввода UserName. Метод HtmlEncode удаляет вредоносные скрипты и недопустимые символы, которые могли находиться в поле ввода UserName.">
12 Создание Web-сайта на локальном сервере средствами VS 2012
13 Создание Web-сайта через диспетчер IIS 7 Создать сайт-приложение в корне Добавить в область видимости какую-либо папку Преобразовать сайт-папку в сайт-приложение Удаляет в IIS информацию о приложении, но не удаляет сайт-папку
14 Создание файла формы в VS 2012
15 Генерируется форма, допускается только одна с атрибутом runat Визуальное редактирование формы Файл формы Директива Page – настройка атрибутов страницы (метаданных для компилятора) Код формы Файл конфигураци и сайта Присоединё нный файл класса формы
16 Пространства имен – это разделы типов данных, позволяющие хранить типы данных и функции в иерархической структуре. Предоставляет доступ к классам и интерфейсам для создания ASP.NET компонент и страниц (Page, Controls) Базовый класс Page для всех страниц ASP.NET Событие Load класса Page, возникает сразу после инициа- лизации элементов формы Частичный класс допускает определение в нескольких файлах содержимое которых объединяется для составления полного определения класса. Может разрабаты- ваться несколькими разработчиками Предоставляет доступ к классам HttpRequest, HttpResponse Код класса формы
17 Копирование и публикация Web-сайта В отличии от копирования, при публикации происходит предкомпиляция некоторых кодов приложения и добавление их.dll -сборок в папку Bin, что повышает быстродействие проекта при первом запуске и скрывает коды классов приложения от «посторонних» глаз. Компилировать изменённые файлы проекта Компилировать весь проект заново Компилировать страницу
18 Рассмотрим пример проекта Web-сайт «Калькулятор» Показать работу приложения на сервере
20 Серверные элементы управления Web
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.