Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы Java и C# технологии.doc
Скачиваний:
171
Добавлен:
01.03.2016
Размер:
3.04 Mб
Скачать
      1. Компиляция страниц по требованию

Сравним действия, которые совершает ASP.NET 2.0 и ASP.NET 1.0, когда пользователь запрашивает файл с расширением .aspx.

В ASP.NET 1.x среда выполнения анализирует директиву Pageстраницы, осуществляет поиск соответствующего класса в сборке приложения, затем на основании кода страницы создается класс, производный от класса программной логики страницы. В случае если сборка отсутствует, то осуществляется поиск файла программной логики, указанного в атрибутеSrcдирективыPage. Если файл найден, то происходит компиляция сборки, если нет, то ASP.NET выбрасывает исключение.

В ASP.NET 2.0 среда выполнения также анализирует директивы Page, осуществляет поиск сборки соответствующей классу логики страницы, после чего создается класс страницы. В отличие от ASP.NET 1.x, родительским классом для класса страницы являетсяSystem.Web.UI.Page, поскольку создаваемый динамический класс является собственно классом страницы (используются разделяемые классы для класса страницы и класса программной логики), а не потомком класса программной логики. Поэтому, если в ASP.NET 1.x класс Web-формы мог называться также как и сама Web-форма.

<form id="frmDefault" runat="server"></form>

public class frmDefault : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e){}

}

В ASP.NET 2.0 это недопустимо, поскольку элемент управления System.Web.UI.Formявляется элементом класса.

Основным преимуществом ASP.NET является то, что в случае отсутствия сборки, необходимой для выполнения страницы, происходит компиляция только файла программной логики страницы, без перекомпиляции всей сборки. Поскольку существует динамическая компиляция, то необходимо обеспечить возможность создавать код, общий для всех страниц приложения. Для этой цели в ASP.NET 2.0 существуют специальные директории, являющиеся дочерними директориями корневой директории приложения, одна из которыхApp_Code, служит для хранения файлов, содержащих общий код для всех страниц. При выполнении динамической компиляции, код из директорииApp_Codeкомпилируется и становится доступным для всех страниц WEB‑приложения. При этом VS поддерживает код, находящийся в директорииApp_Code, поэтому работает подсветка синтаксиса иIntelliSense.

Исследовать генерируемые средой выполнения ASP.NET 2.0 файлы, и подробно разобраться в процессе компиляции можно изучив содержимое директории:

%WINDIT%\Microsoft.NET\Framework\версия\Temporary ASP.NET Files\имя_приложения

куда ASP.NET 2.0 помещает динамически созданные сборки. Либо, вызвав ошибку на ASP.NET странице в режиме отладки выбрать ссылку Show Complete Compilation Source.

Если же необходимо заранее скомпилировать проект, перед развертыванием его на сервере в ASP.NET 2.0 существует возможность полной или частичной перекомпиляции WEB‑приложения.

      1. Страница asp.Net 2.0

        1. Директива @Page

Для внесения новых возможностей в ASP.NET 2.0 потребовалось внести изменения и дополнения в класс страницы Page. Поскольку, для установки свойств страницы вdesign-timeиспользуются атрибуты директивыPage, то здесь будут рассмотрены новые атрибуты, появившиеся для реализации механизмов персонализации, шаблонов дизайна, оформления и асинхронной работы станиц. Подробнее о назначении новых атрибутов можно узнать в части пособия, посвященной новым свойствам и методам классаPage. Ниже кратко рассмотрены новые атрибуты директивыPage:

  • Async. Указывает на то, какой из интерфейсовIHttpHandlerилиIHttpAsyncHandlerреализует класс страницы. После установки этого атрибута вtrue, генерируемый динамически класс страницы будет реализовать интерфейсIHttpAsyncHandler, в противном случае класс будет реализовать интерфейсIHttpHandler. Если класс страницы реализует интерфейсIHttpAsyncHandler, то код страницы может выполняться асинхронно до наступления нового события в жизненном цикле страницыPreRender, ко времени наступления которого происходит синхронизация и подготовка HTML-кода для отправки браузеру клиента;

  • AsyncTimeOut. Позволяет установить ограничение по времени, отведенное для выполнения асинхронных операций. По умолчанию этот параметр равен 45 секундам;

  • Culture. Устанавливает набор региональных параметров (Culture), используемый для страницы;

  • EnableTheming. Позволяет включить или выключить поддержку тем оформления. По умолчанию включено;

  • MasterPageFile. Указывает путь к шаблону, который будет использован для создания кода этой страницы;

  • StyleSheetTheme. Позволяет установить идентификатор темы оформления, которая будет использоваться для изменения установленной темы оформления (в атрибутеThemeили в файлеWeb.confg).Таким образом, можно установить общую тему оформления для всего сайта, а с помощью атрибутаStyleSheetThemeвносить некоторые изменения в общее оформление страницы и/или некоторых элементов управления, содержащихся на странице;

  • Theme. Указывает название темы оформления, которая будет использована для оформления кода данной страницы;

  • UICulture. Устанавливает набор региональных параметров (Culture), используемый для пользовательского интерфейса страницы.