Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Технология ASP.NET




А.А. Волосевич

 

ЯЗЫК C# И ПЛАТФОРМА.NET

(часть 5)

 

Курс лекций

для студентов специальности I-31 03 04 «Информатика»

всех форм обучения

 

 

Минск 2009


СОДЕРЖАНИЕ

5. Технология ASP.NET.. 4

5.1. общие концепции ASP.NET.. 4

5.2. ВЕБ-Приложение.. 7

5.3. СТРУКТУРА aspx-ФАЙЛА.. 8

5.4. ДИРЕКТИВЫ СТРАНИЦЫ... 10

5.5. Класс SYSTEM.WEB.UI.Page.. 14

5.6. ЖИзненный цикл страницы... 19

5.7. ОБЩИЙ ОБЗОР СЕРВЕРНЫХ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ.. 26

5.8. ЭЛЕМЕНТЫ УПРАВЛЕНИЯ HTML.. 30

5.9. ЭЛЕМЕНТЫ УПРАВЛЕНИЯ WEB.. 34

5.10. Проверочные элементы управления.. 39

5.11. Эталонные страницы и темы... 43

5.12. Некоторые приёмы работы со страницами.. 49

5.13. Связывание с данными.. 53

5.14. Списковые элементы управления.. 55

5.15. Элементы управления для Источников данных.. 57

5.16. Таблицы, связанные с данными.. 65

5.17. ОТОБражение отдельных записей.. 71

5.18. КОНФИГУРИРОВАНИЕ ВЕБ-ПРИЛОЖЕНИЙ.. 74

5.19. ИНФРАСТРУКТУРА ОБРАБОТКИ зАПРОСА.. 75

5.20. ВЕБ-ПРИЛОЖЕНИЕ И ФАЙЛ GLOBAL.ASAX.. 79

5.21. МОДЕЛЬ ПОСТАВЩИКОВ.. 81

5.22. Поддержка Сохранения Состояния.. 83

5.23. Кэширование в ASp.NET.. 89

5.24. ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТи В ВЕБ-ПРИЛОЖЕНИЯХ.. 94

5.25. УПРАВЛЕНИЕ ЧЛЕНСТВОМ И РОЛями.. 98

5.26. Профили пользователя.. 106

5.27. Локализация и ресурсы... 109

5.28. пользовательские элементы управления.. 111

 


 

5.1. общие концепции ASP.NET

В этом параграфе рассматриваются базовые концепции и понятия технологии ASP.NET. Вначале рассмотрим схему работы в сети Интернет, которую можно назвать классической, так как эта схема является исторически первой. Основными элементами классической схемы являются браузер и веб-сервер. При взаимодействии браузера и веб-сервера выполняются следующие шаги:

1. Браузер формирует запрос к серверу, используя протокол HTTP. Как правило, браузер запрашивает HTML-страницу, то есть текстовый файл, содержащий HTML-код.

2. Сервер анализирует запрос браузера и извлекает из локального хранилища требуемый файл.

3. Сервер формирует HTTP-ответ, включающий требуемую информацию, и отсылает его браузеру по протоколу HTTP.

4. Браузер выполняет отображение страницы.

Классическая схема проста, но обладает существенным недостатком – страницы статичны, и их содержимое не может меняться на сервере в зависимости от запросов клиента. В настоящее время подобный подход не соответствует большинству информационных услуг, предоставляемых с помощью сети Интернет[1]. Все большее распространение получают технологии, при использовании которых страницы (целиком или частично) генерируются на сервере непосредственно перед отправкой клиенту. Работают технологии «серверных страниц» по схожим принципам:

· Для представления информации на сайте используются не страницы с HTML-кодом, а серверные страницы специального синтаксиса (который часто является HTML-подобным).

· При запросе серверной страницы веб-сервер запускает отдельный служебный процесс, которому перенаправляется запрос.

· В служебном процессе страница анализируется, по ней генерируется некий объект, соответствующий странице.

· Служебный процесс выполняет методы сгенерированного объекта. Как правило, объект имеет специальный метод, генерирующий выходной поток страницы в виде HTML-кода.

· Выходной HTML-поток перенаправляется веб-серверу, который формирует HTTP-ответ и отсылает его браузеру.

· Браузер выполняет отображение страницы.

Далее выделим особенности, присущие технологии ASP.NET.

§ Работа с управляемым кодом. Служебный процесс ASP.NET основан на управляемом коде. Запросы к каждому веб-приложению обрабатываются в отдельном домене служебного процесса. Серверной странице ставиться в соответствие пользовательский класс, объект которого непосредственно генерирует страницу. Также доступны стандартные для.NET библиотеки классов и возможности межъязыкового взаимодействия.

§ Разделение кода и представления. Данная концепция также называется Code Behind. Согласно ей желательно, чтобы страница ASP.NET состояла из двух частей: файла с описанием вида страницы (разметка, элементы управления) и файла с кодом методов страницы. Эти два файла могут компилироваться в отдельные классы или представлять собой частичный класс. При изменении любого из файлов на сервере происходит перекомпиляция страницы.

§ Серверные элементы управления. Для конструирования страницы ASP.NET содержит несколько десятков специальных серверных элементов управления. Каждый такой элемент в конечном итоге транслируется в один или несколько обычных элементов HTML. Серверные элементы управления поддерживают событийную модель, содержат большое количество настраиваемых свойств. Они предоставляют более высокий уровень абстракции в сравнение с классическими элементами управления HTML. Кроме этого, имеется возможность создавать собственные серверные элементы управления.

§ Событийная модель. Технология ASP.NET пытается перенести на веб-программирование принципы, используемые при написании приложений Windows Forms. Речь идет о программировании, основанном на обработке событий. Отдельный серверный элемент управления ASP.NET, как правило, обладает набором некоторых событий. Например, у элемента Button (кнопка) есть событие OnClick. Для того чтобы закодировать логику страницы, программист пишет обработчики соответствующих событий. Когда событие происходит, информация о нём пересылается от клиента на сервер, где срабатывает обработчик события. Затем страница вновь пересылается клиенту. Подчеркнем следующие важные детали. Во-первых, основой реализации событийной модели является схема, при которой страница отсылает запросы сама к себе. Во-вторых, чтобы страница сохраняла свое состояние между отдельными циклами приёма-передачи, это состояние фиксируется в специальном скрытом поле страницы. Этот технологический прием называется в ASP.NET поддержкой состояния представления страницы (коротко – поддержка View State). И, наконец, ASP.NET пытается перенести событийную модель на возможно большее количество классических элементов управления HTML. Для реализации этого используются «вкрапления» в страницу клиентских скриптов.

§ Поддержка пользовательских сессий и кэширование. В ASP.NET существует богатый набор встроенных возможностей для работы с данными пользовательских сессий, выполнения кэширования данных, идентификации пользователей.

С выходом платформы.NET версии 2.0 технология ASP.NET получила значительное число изменений и улучшений по сравнению с первой версией. Вот основные из них.

§ Поддержка динамической компиляции. В ASP.NET 1.0 динамически компилировались только файлы Code Behind. Если же приложение использовало сторонние классы, то сборки с данными классами должны были быть скомпилированы заранее и размещаться либо в GAC, либо в специальном подкаталоге веб-приложения. ASP.NET 2.0 предоставляет возможность размещать исходный код классов в специальном подкаталоге веб-приложения App_Code, а при обращении к классам динамически компилирует их.

§ Эталонные страницы и темы. Страницы практически любого сайта имеют единообразную структуру и однотипное оформление. В ASP.NET 2.0 задача создания прототипов страниц решена путём введения концепции эталонной страницы (master page). Разработчики сайтов с большим количеством страниц, имеющих единообразную схему и однотипную функциональность, могут теперь программировать все это в одном эталонном файле, вместо того чтобы добавлять информацию об общей структуре в каждую страницу. Тема ASP.NET представляет собой комплекс настраиваемых стилей и визуальных атрибутов элементов сайта. Сюда относятся свойства элементов управления, таблицы стилей страницы, изображения и шаблоны страниц. Тема идентифицируется именем и состоит из CSS-файлов, изображений и обложек элементов управления. Обложка (skin) элемента управления ‑ это текстовый файл, который содержит используемое по умолчанию объявление данного элемента со значениями его свойств.

§ Адаптивный рендеринг. В ASP.NET 2.0 реализована новая, так называемая адаптерная архитектура элементов управления, позволяющая одному и тому же элементу по-разному осуществлять свой рендеринг в зависимости от типа целевого браузера. Адаптерная архитектура позволяет создавать собственные адаптеры, настраивая серверные элементы управления для использования с определенными браузерами.

§ Модель поставщиков. В основу модели поставщиков ASP.NET 2.0 положена известная архитектурная концепция – шаблон проектирования «стратегия». Особенностью шаблона является то, что он даёт объекту или целой подсистеме возможность открыть свою внутреннюю организацию таким образом, чтобы клиент мог отключить используемую по умолчанию реализацию той или иной функции и подключить другую её реализацию, в том числе собственную. Реализация модели поставщиков в самой ASP.NET дает возможность настраивать определенные компоненты её исполняющей среды. Для этой цели здесь определены специальные классы поставщиков, которые можно использовать в качестве базовых классов при создании собственных поставщиков.

§ Новые элементы управления. В дополнении к существующим, ASP.NET 2.0 предлагает набор новых элементов управления, в частности, для представления деревьев, навигации по сайту, работы с данными пользователя.

В платформе.NET версии 3.5 технология ASP.NET обогатилась новыми элементами управления, а также полноценной поддержкой программирования с использованием AJAX.

5.2. ВЕБ-Приложение

Под веб-приложением будем понимать совокупность файлов и каталогов, размещенных в отдельном каталоге, которому сопоставлен виртуальный каталог веб-сервера. Рабочий процесс ASP.NET обслуживает каждое веб-приложение в отдельном домене, используя специфичные настройки приложения. Границей приложения является виртуальный каталог, в том смысле, что, перемещаясь по страницам внутри виртуального каталога, пользователь остаётся в рамках одного веб-приложения.

Любое веб-приложение может содержать следующие элементы:

1. Страницы ASP.NET: набор файлов с расширением.aspx ‑ файлы разметки страницы и, возможно, парные им файлы кода на каком-либо языке программирования (C#, VB.NET) – файлы Code Behind. Страницы ASP.NET могут размещаться как в корне веб-приложения, так и в подкаталогах.

2. Один или несколько файлов конфигурации web.config. Если веб-приложение содержит подкаталоги, то допускается не более одного файла web.config на подкаталог.

3. Пользовательские элементы управления – файлы с расширением.ascx и, возможно, парные им файлы Code Behind.

4. Некоторые из перечисленных в табл. 1 специальных подкаталогов.

Таблица 1

Специальные подкаталоги веб-приложения

Имя Что содержит
Bin Скомпилированные сборки, необходимые для работы приложения
App_Browsers Файлы с информацией о возможностях браузеров
App_Code Файлы исходного кода классов (.cs или.vb), которые будут использоваться страницами
App_Data Файлы данных приложения. Это могут быть XML-файлы или файлы баз данных
App_GlobalResources Глобальные для приложения файлы ресурсов (.resx)
App_LocalResources Файлы ресурсов (.resx) для отдельных страниц
App_Themes Определения поддерживаемых приложением тем
App_WebReferences Файлы.wsdl, необходимые для связывания веб-сервисов с приложением

5. Файлы эталонных страниц – файлы с расширением.master и, возможно, парные им файлы Code Behind.

6. Единственный файл global.asax, размещаемый в корневом каталоге приложения. Этот файл играет роль пункта реализации глобальных (для приложения) событий, объектов и переменных

7. Файлы любых других типов (*.html, *.xml, изображения и т. д.), возможно, размещенные в отдельных подкаталогах.

Будем рассматривать интегрированную среду Visual Studio 2008 как основное средство для создания веб-приложений. Использование VS 2008 обеспечивает следующие удобства:

· Автоматическое создание некоторых необходимых элементов веб-приложения (подкаталогов) при выборе соответствующего типа проекта.

· Возможность визуального редактирования страниц.

· Возможности подсветки синтаксиса и IntelliSense.

· Встроенный веб-сервер для запуска и отладки приложений.

5.3. СТРУКТУРА aspx-ФАЙЛА

Задачей параграфа является указание элементов, образующих файл разметки страницы.aspx. Напомним, что наряду с файлом разметки страницы, составной частью страницы является, как правило, и файл Code Behind.

Рассмотрим пример простой aspx-страницы.

<%-- 1. Директива страницы --%>

<%@ Page Language="C#" AutoEventWireup="true"

CodeBehind="Default.aspx.cs" Inherits="WebApp._Default" %>

 

<%-- 4. Блок серверного кода --%>

<script runat="server">

protected void btnSend_Click(object sender, EventArgs e)

{

tbxName.Text = tbxName.Text.ToUpper();

}

</script>

 

<%-- 3. Обычный HTML --%>

<html>

<body>

<%-- 5. Блок рендерного кода --%>

<% for (int i = 0; i < 10; i++) Response.Write("Hello"); %>

<form id="form1" runat="server">

<div>

Input name:

<%-- 2. Серверные элементы управления --%>

<asp:TextBox ID="tbxName" runat="server" />

<asp:Button ID="btnSend" runat="server"

OnClick="btnSend_Click" />

</div>

</form>

</body>

</html>

Выделим следующие элементы страницы.




Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 938; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.04 сек.