Программирование на ASP.NET

Введение в Web-сайты

Разбить на страницы
Показывать лекцию целиком

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

Компьютер, который запрашивает нужную информацию с сервера, называется клиентом. Программа, обеспечивающая взаимодействие клиентского компьютера с сервером, называется броузером (браузером). Чаще всего именно броузер считают клиентом с точки зрения программистов.

Взаимодействие клиента и сервера происходит по схеме "запрос-ответ". Первый запрос клиента считается простым (GET), при этом на сервер передается только URL запрашиваемой страницы. Если пользователь продолжает начатый сеанс с сайтом, двигаясь по нему предусмотренными на странице средствами навигации, то каждый последующий запрос к серверу называется обратной отсылкой (PostBack). Обратная отсылка обычно осуществляется методом POST. Обратную отсылку сервер распознает, обрабатывает присланные с ней события и формирует отклик.

Мы должны понимать принципиальное отличие приложения локального стола от Web-приложения. Локальное Windows-приложение реагирует немедленно на действия пользователя, вызывая соответствующие обработчики. Оно имеет видовое представление, которое меняется немедленно. В Web-приложении по сути каждая разрабатываемая страница уже является приложением, поскольку компилируется в отдельную DLL-библиотеку, хотя взаимосвязанные страницы в целом принято считать Web-приложением. Серверная страница не имеет вида, хотя на этапе проектирования для удобства разработчика она имеет примерный вид в конструкторе оболочки. Серверная страница только способна сгенерировать вид и отправить его удаленному пользователю.

Web-приложение размещается на удаленном сервере и может реагировать на действия пользователя предусмотренными обработчиками только тогда, когда получит от броузера обратную отсылку. В ней будет упакованы не только состояния элементов управления на момент последнего отклика, временно сохраненные на клиенте, но и новые изменения, включая события, которые произвел удаленный клиент над последним откликом. При получении на сервере обратной отсылки Web-приложение сначала восстанавливает элементы управления до состояния, которое они имели на момент последнего отклика. Затем приложение реагирует на присланные события и доводит состояния серверных элементов управления до уровня, которое они имели у клиента перед обратной отсылкой.

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
	
<body>
<h2 align="center">Страница с обратной отсылкой</h2>
<form name="form1" method="post" action="">
  <center>
    <input type="submit" name="Submit" value="Submit">
  </center>
</form>
</body>
</html>

Запрашиваемые страницы, которые не требуют предварительной обработки на сервере, а сразу отсылаются клиенту в неизменном виде, называются статическими или пассивными. Они имеют расширение html или htm, что равнозначно. Страницы, которые предварительно обрабатываются на сервере специальными программами и генерируют нужный код на языке HTML для отправки клиенту, называются активными. Они имеют расширение asp, aspx, php, cgi и т.д. в зависимости от того, какой программной средой они должны обрабатываться.

Отправляющая и принимающая стороны работают согласованно по определенным правилам, определяемым протоколом HTTP. Отправляющая сторона делит передаваемую информацию на отдельные единицы, которые называются пакетами (пачками). Каждый пакет имеет некоторую служебную информацию, помещаемую в его заголовок. В заголовке может содержаться размер пакета, его номер и контрольная сумма.

Принимающая сторона получает пакет, распаковывает его и по заголовку проверяет, не произошло ли потери данных при передаче пакета. Если потери данных не обнаружено, то принимающая сторона отсылает об этом подтверждение, в противном случае отсылается команда с требованием повторить передачу соответствующего пакета. Пакеты доставляются по разным путям сети, используя любой включенный в данный момент в эту сеть компьютер как вспомогательный промежуточный узел.

Установка IIS

При разработке Web-приложения требуется IIS (Internet Information Services), который эмулирует работу сервера. Среда разработки Visual Studio 2005 имеет свой встроенный (интегрированый) упрощенный IIS, но иногда может потребоваться настоящий IIS операционной системы. Если IIS на вашем компьютере уже установлен, то на диске C:\ должен существовать каталог Inetpub, в противном случае его придется установить. Для установки IIS выполните следующее

  • Выполните команду компьютера
  • Щелкните по пиктограмме Установка и удаление программ
  • В открывшемся диалоговом окне в левой части щелкните по кнопке
  • Откроется окно, в котором поставьте отметку против компонента
  • После нажатия кнопки Далее> мастер выполнит установку компонента. При этом, возможно, потребуется установочный диск с системой.
  • Далее нужно зарегистрировать систему ASP.NET на локальном компьютере. В каталоге C:\WINNT\Microsoft.NET\Framework существуют подкаталоги с версиями v1.0.3705, v1.1.4322, v2.0.50215 и v2.0.50727, в которых находятся файлы aspnet_regiis.exe. Один из этих файлов (лучше последней версии, расположенный в подкаталоге v2.0.50727 ) нужно запустить с опцией /i.

  • Выполните команду компьютера Пуск/Выполнить и в поле появившегося окна введите команду cmd.
  • Используя команду cd (change directory - смена каталога) перейдите в один из указанных каталогов и выполните в нем команду
    aspnet_regiis.exe /i
  • Проверьте наличие каталога Здесь каталог wwwroot эмулирует корневой каталог Web-дерева. Все файлы, которые будут в нем находиться, будут недоступны для удаленных клиентских компьютеров, поскольку защищаются сервером.
  • Типы проектов и места их размещения

    Для создания нового Web-сайта (по старому - Web-приложения) с помощью инструмента Visual Studio 2005 нужно выполнить команду меню File/New/Web Site. Появится диалоговое окно, в котором предусмотрены три типа Web-приложений:

  • File System - используется для размещения всех компонентов сайта в файловой системе компьютера разработчика. Для тестирования такого типа сайта используется встроенный (интегрированый) в оболочку облегченный сервер, а не полноценный IIS локального компьютера
  • HTTP - сайт размещается в указанной папке подкаталога wwwroot, находящегося в каталоге Inetpub (при условии, что на компьютере разработчика установлен IIS ). Используется не встроенный в оболочку упрощенный сервер, а сервер компьютера.
  • FTP - этот вариант чаще используется, когда Web-сайт размещен на удаленном компьютере и разработчик обращается к файлам и папкам этого сайта через FTP, а не через FrontPage Server Extensions (Администратор серверных расширений)
  • Далее мы будем использовать первые два типа проектов. При создании нового проекта Web Site оболочка создает каталоги и файлы в трех местах:

  • Файлы решения на этапе проектирования. Два файла с расширением .sln и .suo, необходимые для работы самой оболочки, будут размещаться в каталоге Мои документы\Visual Studio 2005\Projects. Первый файл является текстовым файлом решения, второй содержит пользовательские настройки решения. Эти файлы нужны на этапе разработки с помощью оболочки и напрямую к будущему развертываемому сайту отношения не имеют, поэтому и хранятся отдельно от самого сайта
  • Содержимое сайта. Каталоги и файлы исходных текстов самого сайта, включая файлы страниц, баз данных, ресурсов, настроек конфигурации. Они хранятся для проекта типа File System в указанном каталоге, а при установленном IIS для проекта типа HTTP - в каталоге Inetpub\wwwroot\Имя_сайта
  • Рабочие файлы сайта для ASP-машины. Каталоги и файлы, создаваемые ASP.NET-средой, включая скомпилированные сборки .dll для приложения и отдельных страниц. Они хранятся в системном каталоге "C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\Имя_сайта". Эти каталоги и файлы после завершения разработки можно уничтожить. Они не нужны для развертывания на рабочем сервере
  • Зарезервированные папки ASP-проекта

    Содержимое сайта может храниться в любом количестве вложенных каталогов, но имена 8 папок считаются зарезервированными

    Кроме того, что ASP-машина ищет в них необходимую информацию, она же защищает их от прямого доступа удаленного пользователя. При попытке открыть любую из этих папок (за исключением Theme ), пользователь получит ошибку " HTTP 403 Forbidden " (- сервер не поддерживает такие запросы).

    Особые папки ASP.NET
    Имя папки Описание
    Bin Содержит скомпилированные сборки .dll, на которые ссылается приложение
    App_Code Содержит файлы .cs исходного кода классов, компилируемых с приложением
    App_GlobalResources Содержит файлы ресурсов .resx и .resources, компилирующиеся в глобальные сборки
    App_LocalResources Содержит файлы ресурсов .resx и .resources отдельных страниц, пользовательских элементов управления или мастер-страниц
    App_WebResources Содержит файлы Web-ссылок .wsdl, .xsd, .disco, .discomap
    App_Data Содержит файлы данных приложения .mdf и .xml
    App_Browsers Содержит файлы определения броузера .browser, которые ASP.NET использует для определения версии броузера и его возможностей
    Theme Содержит стилевые файлы для страниц и элементов управления

    Создание Web-сайта

    В качестве упражнения создадим с помощью Visual Studio 2005 простой Web-сайт с именем MyFirstSite.

  • Выберите команду File/New/Web Site и заполните диалоговое окно мастера так (место размещения сайта выберите по своему усмотрению)
  • Мастер создаст все необходимые для начальной работы каталоги и файлы в местах, упомянутых ранее.

    В панели Solution Explorer мы увидим файл разметки страницы Default.aspx и файл отделенного кода Default.aspx.cs (застраничный файл, фоновый файл поддержки), а также созданную особую папку App_Data

  • Вызовите в Solution Explorer на папке App_Data контекстное меню и выполните команду Delete (или выделите папку App_Data и нажмите клавишу Delete клавиатуры)

    Оболочка удалит папку, которая в данный момент нам не нужна.

  • Запустите Проводник Windows и спуститесь в динамически созданный временный каталог C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\myfirstsite
  • Мы видим, что оболочка создала три временных файла:

  • .ccu - сериализованный набор объектов исходного кода (Code Compile Unit), которые можно скомпилировать
  • .compiled - представляет собой текстовый .xml-файл, содержащий информацию для компилятора. Этот файл указывает, что на основе Web-страницы .aspx и файла отделенного кода .aspx.cs создан файл .ccu
  • hash.web - содержит ключевое слово хэша Web-сайта для его кодирования
  • Теперь мы должны скомпилировать Web-сайт.

  • Выполните команду Build/Build Web Site и вновь посмотрите во временный каталог
  • Была создана DLL-библиотека .dll, содержащая собранный воедино код разметки и отделенный код, а также создан текстовый .xml-файл .compiled, который содержит настройки компилятора, примененные при создании DLL-библиотеки.

  • Добавьте к сайту новую страницу. Для этого выполните команду Website/Add New Item и настройте диалоговое окно мастера так
  • Теперь мы видим, что во временном каталоге среды выполнения опять появилась пара файлов для новой страницы

  • Еще раз соберите сайт, выполнив команду Build/Build Web Site
  • Новая страница Page2.aspx вместе с файлом отделенного (застраничного) кода Page2.aspx.cs была скомпилирована в отдельную DLL -библиотеку и был создан файл .xml -инструкция для компилятора

    Компиляция страниц в отдельные .dll файлы позволяет использовать для создания каждой отдельной страницы свой язык программирования, поддерживаемый компилятором. На уровне DLL-библиотек это будет совместимый в целом код. Компилятор собирает в отдельную сборку как страницу со встроенным кодом, так и страницу с отделенным кодом.

    Настройка параметров приложения через конфигурационные файлы

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

    Для настройки Web-сайтов используется иерархия конфигурационных файлов. На вершине этой иерархии стоит файл machine.config, который находится в системном каталоге

    C:\WINNT\Microsoft.NET\Framework\v2.0.50727\CONFIG

    Он определяет параметры среды исполнения .NET Framework в целом для всех типов приложений: консольных, оконных для рабочего стола, Web-приложений и библиотек классов. Часть из этих параметров являются глобальными для компьютера и не могут быть переопределены. Но некоторые могут переопределяться в файлах web.config, расположенных ниже по иерархической лестнице, причем, чем ближе к рабочим страницам находится файл, тем больший приоритет имеют его параметры.

    Файл web.config, стоящий в иерархической лестнице сразу за файлом machine.config, находится в одном с ним каталоге. Далее следуют необязательные файлы: файл web.config, расположенный в корне web-дерева (каталог wwwroot в Inetpub ), затем web.config, расположенный в корне web-приложения (Website на этапе проектирования). Наивысший приоритет имеют конфигурационные файлы, размещенные в подчиненных каталогах приложения (если таковые имеются).

    При первом запросе страницы сайта исполняющая среда запускает приложение и создает для него кэш настроек. Настройки формируются по следующей схеме:

  • Сначала извлекаются параметры из файла CONFIG\machine.config
  • Затем добавляются параметры из файла CONFIG\web.config, переопределяя одноименные параметры machine.config
  • Если есть wwwroot\web.config, то из него извлекаются параметры с замещением ранее добавленных одноименных параметров
  • Если приложение имеет свой файл web.config, то в кэш добавляются и оттуда параметры, замещая одноименные
  • Если страница находится в подкаталоге и там же имеется свой файл настроек web.config, то его параметры добавляются в кэш и переопределяют ранее введенные одноименные настройки
  • Создание файла web.config

    Файл настроек web.config является текстовым файлом с XML-разметкой. Его можно создать несколькими способами. Рассмотрим некоторые из них:

    Способ 1

    При первом запуске нового сайта на выполнение в оболочке Visual Studio 2005 командой Debug/Start Debugging появится сообщение

    предлагающее добавить новый файл web.config с опцией включения отладки. Ниже будет предупреждение, что перед развертыванием отлаженного приложения эту опцию в файле настроек следует удалить. Щелчок на кнопке Ok заставит оболочку создать web.config в корне текущего приложения (но не в корне Web-дерева).

    Способ 2

    Можно воспользоваться утилитой Web Site Administration

  • Создайте новый сайт или в прежнем сайте удалите файл web.config
  • Выполните команду оболочки Website/ASP.NET Configuration

    Появится рендеринг (визуальное представление) страницы appConfigHome.aspx

  • Установите вкладку Application и щелкните на ссылке Configure debugging and tracing

    Запустится страница DebugAndTrace.aspx, которая сгенерирует следующий отклик

  • Выполните какое-нибудь действие, например, включите флажок Enable debugging, затем восстановите прежнее состояние настроек и закройте броузер со страницей утилиты. Обратите внимание, что при любом действие выполняется обратная отсылка PostBack
  • Нажмите кнопку Refresh в верхней части панели Solution Explorer оболочки, чтобы обновить это окно
  • Откройте появившийся файл web.config и Вы увидите пустую заготовку настройки параметров web-сайта
    <?xml version="1.0"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    </configuration>
  • Вновь запустите утилиту Web Site Administration и на странице DebugAndTrace.aspx включите флажок Enable debugging, чтобы добавить параметр отладки
  • Файл web.config станет таким

    <?xml version="1.0"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
        <system.web>
            <compilation debug="true" />
        </system.web>
    </configuration>

    Способ 3

  • Выполните команду оболочки Website/Add New Item и выберите шаблон Web Configuration File
  • Оболочка создаст файл конфигурации, который затем можно настраивать либо напрямую в текстовом редакторе, либо через утилиту Web Site Administration.

    Включение трассировки и ее настройка

    Трассировка (след) применяется для анализа работы приложения, поскольку при каждом запросе очередной страницы среда исполнения ASP.NET включает в вывод служебную информацию, полезную при отладке. Эту информацию можно выводить как на запрашиваемых страницах вместе с откликом сервера (совмещенная трассировка), так и в отдельную служебную страницу Trace.axd, которая является виртуальной и исчезает при перезагрузке сервера (отделенная трассировка).

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

    Элементы управления страницы DebugAndTrace.aspx включают трассировку и означают следующее

    Параметры трассировки ASP.NET
    Параметр утилиты Web Site Administration по умолчанию Параметр, добавляемый в Web.config при включении в утилите Описание
    Capture tracing information enabled="true" Включает трассировку, результаты которой среда исполнения помещает в виртуальную страницу trace.axd, размещаемую в памяти сервера на время работы приложения. Ее можно прочитать по адресу (для приложения типа HTTP) http://localhost/Имя_приложения/ trace.axd. Эта страница создается IIS и хранится в памяти до перезагрузки компьютера
    Display tracing information on individual pages pageOutput="true" Трассировочные данные размещаются внизу каждой запрошенной страницы. Параллельно трассировка для всех обработанных страниц помещается в виртуальную страницу trace.axd
    Display trace output for:
    Local requests only localOnly="true" - по умолчанию Добавляет трассировку в отклик страницы только тогда, когда она запрошена с того же сервера, где развернута ( по умолчанию )
    All requests localOnly="false" Добавляет трассировку в отклик страницы по запросу, поступившему с любого компьютера
    Select the sort order for trace results:
    By time traceMode="SortByTime" - по умолчанию Результаты трассировки сортируются по времени
    By category traceMode="SortByCategory" Результаты трассировки сортируются по секциям
    Number of trace requests to cache: requestLimit="15" Количество запросов страниц приложения, сохраняемых средой исполнения в файле trace.axd. Этот же параметр определяет количество запросов первых запросов, при которых сервер присоединяет к индивидуальной странице трассировочную информацию при pageOutput="true"
    Select which trace results to cache:
    Most recent trace results mostRecent="true" Сохраняются результаты трассировки самых последних запросов
    Oldest trace results mostRecent="false" - по умолчанию При достижении установленного количества запросов кэш трассировки перестает обновляться до следующего перезапуска приложения, сохраняя результаты трассировки самых первых запросов

    В первой колонке таблицы показано состояние элементов управления утилиты, когда в web.config параметров нет и применяются настройки по умолчанию. Во второй колонке таблицы показаны параметры, которые добавляются в файл web.config при изменении состояния соответствующих элементов управления на отличное от состояния по умолчанию.

    Совмещенная трассировка страниц

    Сейчас мы попробуем включить трассировку страниц приложения так, чтобы трассировочная информация возвращалась вместе с рендерингом страницы

  • Запустите утилиту
  • Откройте файл web.config приложения и убедитесь, что он стал таким
    <?xml version="1.0"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
        <system.web>
            <trace enabled="true" mostRecent="true" 
    			   pageOutput="true" requestLimit="15" />
            <compilation debug="true" />
    	</system.web>
    </configuration>
  • Настройте страницу Default.aspx так
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
        
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <h1 align="center" style="color: Red">
                    Привет всем!!!</h1>
            </div>
        </form>
    </body>
    </html>
  • Запустите приложение и получите примерно такой результат
  • Пощелкайте на кнопке Refresh броузера, инициируя все новые запросы к странице. Мы видим, что вместе с рендерингом страницы броузеру возвращается трассировка только текущего запроса
  • Но самый простой способ включения трассировки для конкретной страницы - добавить в директиву @ Page этой страницы параметр Trace="true".

    Отделенная трассировка страниц

    Если трассировка страниц включена ( <trace enabled="true" /> ), то независимо от других параметров трассировки, служба IIS создает виртуальную страницу trace.axd, в которую помещает трассировочную информацию всех запрашиваемых страниц. Эта страница физически не существует, но доступна из броузера по адресу

    http://localhost/Имя_приложения/ trace.axd

    Чтобы прочитать его содержимое, приложение можно запускать либо через настоящий IIS компьютера, а либо через встроенный IIS оболочки.

    Вначале запустим трассировку через встроенный IIS оболочки.

  • Запустите приложение MyFirstSite, щелкнув на кнопке Start Debugging (или нажмите клавишу F5, или выполните команду меню оболочки Debug/Start Debugging, или выполните команду меню оболочки Debug/Start Without Debugging, или нажмите комбинацию клавиш Ctrl+F5 )
  • Пощелкайте на кнопке Refresh броузера, затем через строку адреса вызовите страницу Trace.axd
  • Теперь запустим трассировку через IIS компьютера.

    Поскольку ранее мы создавали приложение MyFirstSite типа File System в файловой системе, то его нужно скопировать в каталог Inetpub/wwwroot, который для IIS считается виртуальным каталогом localhost.

  • Выполните команду оболочки Website/Copy Web Site
  • В появившейся панели Copy Web щелкните на пиктограмме Connect, расположенной в верхней части
  • В появившемся окне выделите узел
  • После щелчка на кнопке
  • Закройте соединение, щелкнув на кнопке Disconnect
  • Вновь щелкните на кнопке
  • Выделите на левой панели файл
  • Запустите броузер компьютера, загрузите страницу по умолчанию (Default.aspx)
  • Щелчком на гиперссылке View Details можно раскрыть трассировку любого запроса. Щелчок на ссылке [ clear current trace ] очистит виртуальную страницу Trace.axd точно также, как и перезагрузка компьютера.

    Секции трассировочных данных

    Информация, которую выдает сервер при включенной трассировке, группируется им по секциям, значения которых приведены в таблице.

    Секции трассировочных данных
    Секция Описание
    Request Details Содержит общую информацию о запросе страницы
    Trace Information Содержит сведения о производительности, связанные с событиями жизненного цикла страницы. В столбце From First(s) находится абсолютное время, отсчитываемое с момента получения запроса страницы (нулевое время) до начала обработки очередного события. В столбце From Last(s) показана длительность обработки предыдущего события.
    Control Tree Содержит информацию обо всех элементах управления страницы, включая размер занимаемой ими памяти
    Session State Содержит все переменные сеанса и их значения
    Application State Содержит все переменные приложения и их состояния
    Request Cookies Collection Отображает список всех файлов cookie (куки), полученных сервером в составе запроса
    Response Cookies Collection Отображает список всех файлов cookie, переданных броузеру в составе отклика
    Headers Collection Отображает список HTTP-заголовков, полученных сервером с запросом
    Response Headers Collection Отображает список HTTP-заголовков, переданных броузеру в составе отклика
    Form Collection Содержит пары key=value элементов формы, отправленных броузером с обратной отсылкой PostBack
    Querystring Collection Содержит пары key=value, включенные в строки запроса
    Server Variables Отображает состояние всех серверных переменных

    Отложенная компиляция Web-страниц

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

    Выводы

  • Web-сервер отвечает за получение и исполнение запросов к ресурсу и отправку откликов
  • Web-броузер (браузер) за получение данных от сервера, отображение их, прием данных от пользователя через элементы управления и отправку их серверу
  • HTTP - протокол передачи текстовых данных для взаимодействия броузера и сервера
  • Обычный способ отправки данных на сервер, после первого запроса страницы, называется обратной отсылкой PostBack
  • ASP.NET поддерживает две модели программирования Web-страниц: с встроенным (совмещенным) кодом и отделенным (застраничным) кодом. Страница с совмещенным кодом включает в себя код разметки (HTML) и код языка программирования, который размещается в секциях <script>. Таких секций может быть сколько угодно и они могут располагаться в любом месте страницы. Страница с отделенным кодом размещается в двух файлах: файл разметки и файл кода
  • Динамической компиляцией называется отложенная компиляция Web-страниц, выполняемая только при первом запросе страницы пользователем. Разработчику сайта достаточно разместить страницу с исходным текстом в нужном месте сервера, а об остальном позаботится среда исполнения (машина, движок) ASP.NET
  • ASP.NET поддерживает страницы на разных языках программирования, при условии, что на одной странице применен только какой-то один язык
  • В ASP.NET для глобальной и индивидуальной настройки ее работы применяется иерархия конфигурационных файлов. При формировании кэша настройки параметры конфигурационных файлов, расположенных ближе к исполняемой странице имеют больший приоритет
  • Функцию трассировки ASP.NET применяют для наблюдения за производительностью и использованием ресурсов сервера
  • В целях безопасности при перемещении на рабочий сервер отладку и трассировку страниц нужно отключать
  • Страницы:

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

    Компьютер, который запрашивает нужную информацию с сервера, называется клиентом. Программа, обеспечивающая взаимодействие клиентского компьютера с сервером, называется броузером (браузером). Чаще всего именно броузер считают клиентом с точки зрения программистов.

    Взаимодействие клиента и сервера происходит по схеме "запрос-ответ". Первый запрос клиента считается простым (GET), при этом на сервер передается только URL запрашиваемой страницы. Если пользователь продолжает начатый сеанс с сайтом, двигаясь по нему предусмотренными на странице средствами навигации, то каждый последующий запрос к серверу называется обратной отсылкой (PostBack). Обратная отсылка обычно осуществляется методом POST. Обратную отсылку сервер распознает, обрабатывает присланные с ней события и формирует отклик.

    Мы должны понимать принципиальное отличие приложения локального стола от Web-приложения. Локальное Windows-приложение реагирует немедленно на действия пользователя, вызывая соответствующие обработчики. Оно имеет видовое представление, которое меняется немедленно. В Web-приложении по сути каждая разрабатываемая страница уже является приложением, поскольку компилируется в отдельную DLL-библиотеку, хотя взаимосвязанные страницы в целом принято считать Web-приложением. Серверная страница не имеет вида, хотя на этапе проектирования для удобства разработчика она имеет примерный вид в конструкторе оболочки. Серверная страница только способна сгенерировать вид и отправить его удаленному пользователю.

    Web-приложение размещается на удаленном сервере и может реагировать на действия пользователя предусмотренными обработчиками только тогда, когда получит от броузера обратную отсылку. В ней будет упакованы не только состояния элементов управления на момент последнего отклика, временно сохраненные на клиенте, но и новые изменения, включая события, которые произвел удаленный клиент над последним откликом. При получении на сервере обратной отсылки Web-приложение сначала восстанавливает элементы управления до состояния, которое они имели на момент последнего отклика. Затем приложение реагирует на присланные события и доводит состояния серверных элементов управления до уровня, которое они имели у клиента перед обратной отсылкой.

    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    </head>
    	
    <body>
    <h2 align="center">Страница с обратной отсылкой</h2>
    <form name="form1" method="post" action="">
      <center>
        <input type="submit" name="Submit" value="Submit">
      </center>
    </form>
    </body>
    </html>

    Запрашиваемые страницы, которые не требуют предварительной обработки на сервере, а сразу отсылаются клиенту в неизменном виде, называются статическими или пассивными. Они имеют расширение html или htm, что равнозначно. Страницы, которые предварительно обрабатываются на сервере специальными программами и генерируют нужный код на языке HTML для отправки клиенту, называются активными. Они имеют расширение asp, aspx, php, cgi и т.д. в зависимости от того, какой программной средой они должны обрабатываться.

    Отправляющая и принимающая стороны работают согласованно по определенным правилам, определяемым протоколом HTTP. Отправляющая сторона делит передаваемую информацию на отдельные единицы, которые называются пакетами (пачками). Каждый пакет имеет некоторую служебную информацию, помещаемую в его заголовок. В заголовке может содержаться размер пакета, его номер и контрольная сумма.

    Принимающая сторона получает пакет, распаковывает его и по заголовку проверяет, не произошло ли потери данных при передаче пакета. Если потери данных не обнаружено, то принимающая сторона отсылает об этом подтверждение, в противном случае отсылается команда с требованием повторить передачу соответствующего пакета. Пакеты доставляются по разным путям сети, используя любой включенный в данный момент в эту сеть компьютер как вспомогательный промежуточный узел.

    Установка IIS

    При разработке Web-приложения требуется IIS (Internet Information Services), который эмулирует работу сервера. Среда разработки Visual Studio 2005 имеет свой встроенный (интегрированый) упрощенный IIS, но иногда может потребоваться настоящий IIS операционной системы. Если IIS на вашем компьютере уже установлен, то на диске C:\ должен существовать каталог Inetpub, в противном случае его придется установить. Для установки IIS выполните следующее

  • Выполните команду компьютера
  • Щелкните по пиктограмме Установка и удаление программ
  • В открывшемся диалоговом окне в левой части щелкните по кнопке
  • Откроется окно, в котором поставьте отметку против компонента
  • После нажатия кнопки Далее> мастер выполнит установку компонента. При этом, возможно, потребуется установочный диск с системой.
  • Далее нужно зарегистрировать систему ASP.NET на локальном компьютере. В каталоге C:\WINNT\Microsoft.NET\Framework существуют подкаталоги с версиями v1.0.3705, v1.1.4322, v2.0.50215 и v2.0.50727, в которых находятся файлы aspnet_regiis.exe. Один из этих файлов (лучше последней версии, расположенный в подкаталоге v2.0.50727 ) нужно запустить с опцией /i.

  • Выполните команду компьютера Пуск/Выполнить и в поле появившегося окна введите команду cmd.
  • Используя команду cd (change directory - смена каталога) перейдите в один из указанных каталогов и выполните в нем команду
    aspnet_regiis.exe /i
  • Проверьте наличие каталога Здесь каталог wwwroot эмулирует корневой каталог Web-дерева. Все файлы, которые будут в нем находиться, будут недоступны для удаленных клиентских компьютеров, поскольку защищаются сервером.
  • Типы проектов и места их размещения

    Для создания нового Web-сайта (по старому - Web-приложения) с помощью инструмента Visual Studio 2005 нужно выполнить команду меню File/New/Web Site. Появится диалоговое окно, в котором предусмотрены три типа Web-приложений:

  • File System - используется для размещения всех компонентов сайта в файловой системе компьютера разработчика. Для тестирования такого типа сайта используется встроенный (интегрированый) в оболочку облегченный сервер, а не полноценный IIS локального компьютера
  • HTTP - сайт размещается в указанной папке подкаталога wwwroot, находящегося в каталоге Inetpub (при условии, что на компьютере разработчика установлен IIS ). Используется не встроенный в оболочку упрощенный сервер, а сервер компьютера.
  • FTP - этот вариант чаще используется, когда Web-сайт размещен на удаленном компьютере и разработчик обращается к файлам и папкам этого сайта через FTP, а не через FrontPage Server Extensions (Администратор серверных расширений)
  • Далее мы будем использовать первые два типа проектов. При создании нового проекта Web Site оболочка создает каталоги и файлы в трех местах:

  • Файлы решения на этапе проектирования. Два файла с расширением .sln и .suo, необходимые для работы самой оболочки, будут размещаться в каталоге Мои документы\Visual Studio 2005\Projects. Первый файл является текстовым файлом решения, второй содержит пользовательские настройки решения. Эти файлы нужны на этапе разработки с помощью оболочки и напрямую к будущему развертываемому сайту отношения не имеют, поэтому и хранятся отдельно от самого сайта
  • Содержимое сайта. Каталоги и файлы исходных текстов самого сайта, включая файлы страниц, баз данных, ресурсов, настроек конфигурации. Они хранятся для проекта типа File System в указанном каталоге, а при установленном IIS для проекта типа HTTP - в каталоге Inetpub\wwwroot\Имя_сайта
  • Рабочие файлы сайта для ASP-машины. Каталоги и файлы, создаваемые ASP.NET-средой, включая скомпилированные сборки .dll для приложения и отдельных страниц. Они хранятся в системном каталоге "C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\Имя_сайта". Эти каталоги и файлы после завершения разработки можно уничтожить. Они не нужны для развертывания на рабочем сервере
  • Зарезервированные папки ASP-проекта

    Содержимое сайта может храниться в любом количестве вложенных каталогов, но имена 8 папок считаются зарезервированными

    Кроме того, что ASP-машина ищет в них необходимую информацию, она же защищает их от прямого доступа удаленного пользователя. При попытке открыть любую из этих папок (за исключением Theme ), пользователь получит ошибку " HTTP 403 Forbidden " (- сервер не поддерживает такие запросы).

    Особые папки ASP.NET
    Имя папки Описание
    Bin Содержит скомпилированные сборки .dll, на которые ссылается приложение
    App_Code Содержит файлы .cs исходного кода классов, компилируемых с приложением
    App_GlobalResources Содержит файлы ресурсов .resx и .resources, компилирующиеся в глобальные сборки
    App_LocalResources Содержит файлы ресурсов .resx и .resources отдельных страниц, пользовательских элементов управления или мастер-страниц
    App_WebResources Содержит файлы Web-ссылок .wsdl, .xsd, .disco, .discomap
    App_Data Содержит файлы данных приложения .mdf и .xml
    App_Browsers Содержит файлы определения броузера .browser, которые ASP.NET использует для определения версии броузера и его возможностей
    Theme Содержит стилевые файлы для страниц и элементов управления

    Создание Web-сайта

    В качестве упражнения создадим с помощью Visual Studio 2005 простой Web-сайт с именем MyFirstSite.

  • Выберите команду File/New/Web Site и заполните диалоговое окно мастера так (место размещения сайта выберите по своему усмотрению)
  • Мастер создаст все необходимые для начальной работы каталоги и файлы в местах, упомянутых ранее.

    В панели Solution Explorer мы увидим файл разметки страницы Default.aspx и файл отделенного кода Default.aspx.cs (застраничный файл, фоновый файл поддержки), а также созданную особую папку App_Data

  • Вызовите в Solution Explorer на папке App_Data контекстное меню и выполните команду Delete (или выделите папку App_Data и нажмите клавишу Delete клавиатуры)

    Оболочка удалит папку, которая в данный момент нам не нужна.

  • Запустите Проводник Windows и спуститесь в динамически созданный временный каталог C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\myfirstsite
  • Мы видим, что оболочка создала три временных файла:

  • .ccu - сериализованный набор объектов исходного кода (Code Compile Unit), которые можно скомпилировать
  • .compiled - представляет собой текстовый .xml-файл, содержащий информацию для компилятора. Этот файл указывает, что на основе Web-страницы .aspx и файла отделенного кода .aspx.cs создан файл .ccu
  • hash.web - содержит ключевое слово хэша Web-сайта для его кодирования
  • Теперь мы должны скомпилировать Web-сайт.

  • Выполните команду Build/Build Web Site и вновь посмотрите во временный каталог
  • Была создана DLL-библиотека .dll, содержащая собранный воедино код разметки и отделенный код, а также создан текстовый .xml-файл .compiled, который содержит настройки компилятора, примененные при создании DLL-библиотеки.

  • Добавьте к сайту новую страницу. Для этого выполните команду Website/Add New Item и настройте диалоговое окно мастера так
  • Теперь мы видим, что во временном каталоге среды выполнения опять появилась пара файлов для новой страницы

  • Еще раз соберите сайт, выполнив команду Build/Build Web Site
  • Новая страница Page2.aspx вместе с файлом отделенного (застраничного) кода Page2.aspx.cs была скомпилирована в отдельную DLL -библиотеку и был создан файл .xml -инструкция для компилятора

    Компиляция страниц в отдельные .dll файлы позволяет использовать для создания каждой отдельной страницы свой язык программирования, поддерживаемый компилятором. На уровне DLL-библиотек это будет совместимый в целом код. Компилятор собирает в отдельную сборку как страницу со встроенным кодом, так и страницу с отделенным кодом.

    Настройка параметров приложения через конфигурационные файлы

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

    Для настройки Web-сайтов используется иерархия конфигурационных файлов. На вершине этой иерархии стоит файл machine.config, который находится в системном каталоге

    C:\WINNT\Microsoft.NET\Framework\v2.0.50727\CONFIG

    Он определяет параметры среды исполнения .NET Framework в целом для всех типов приложений: консольных, оконных для рабочего стола, Web-приложений и библиотек классов. Часть из этих параметров являются глобальными для компьютера и не могут быть переопределены. Но некоторые могут переопределяться в файлах web.config, расположенных ниже по иерархической лестнице, причем, чем ближе к рабочим страницам находится файл, тем больший приоритет имеют его параметры.

    Файл web.config, стоящий в иерархической лестнице сразу за файлом machine.config, находится в одном с ним каталоге. Далее следуют необязательные файлы: файл web.config, расположенный в корне web-дерева (каталог wwwroot в Inetpub ), затем web.config, расположенный в корне web-приложения (Website на этапе проектирования). Наивысший приоритет имеют конфигурационные файлы, размещенные в подчиненных каталогах приложения (если таковые имеются).

    При первом запросе страницы сайта исполняющая среда запускает приложение и создает для него кэш настроек. Настройки формируются по следующей схеме:

  • Сначала извлекаются параметры из файла CONFIG\machine.config
  • Затем добавляются параметры из файла CONFIG\web.config, переопределяя одноименные параметры machine.config
  • Если есть wwwroot\web.config, то из него извлекаются параметры с замещением ранее добавленных одноименных параметров
  • Если приложение имеет свой файл web.config, то в кэш добавляются и оттуда параметры, замещая одноименные
  • Если страница находится в подкаталоге и там же имеется свой файл настроек web.config, то его параметры добавляются в кэш и переопределяют ранее введенные одноименные настройки
  • Создание файла web.config

    Файл настроек web.config является текстовым файлом с XML-разметкой. Его можно создать несколькими способами. Рассмотрим некоторые из них:

    Способ 1

    При первом запуске нового сайта на выполнение в оболочке Visual Studio 2005 командой Debug/Start Debugging появится сообщение

    предлагающее добавить новый файл web.config с опцией включения отладки. Ниже будет предупреждение, что перед развертыванием отлаженного приложения эту опцию в файле настроек следует удалить. Щелчок на кнопке Ok заставит оболочку создать web.config в корне текущего приложения (но не в корне Web-дерева).

    Способ 2

    Можно воспользоваться утилитой Web Site Administration

  • Создайте новый сайт или в прежнем сайте удалите файл web.config
  • Выполните команду оболочки Website/ASP.NET Configuration

    Появится рендеринг (визуальное представление) страницы appConfigHome.aspx

  • Установите вкладку Application и щелкните на ссылке Configure debugging and tracing

    Запустится страница DebugAndTrace.aspx, которая сгенерирует следующий отклик

  • Выполните какое-нибудь действие, например, включите флажок Enable debugging, затем восстановите прежнее состояние настроек и закройте броузер со страницей утилиты. Обратите внимание, что при любом действие выполняется обратная отсылка PostBack
  • Нажмите кнопку Refresh в верхней части панели Solution Explorer оболочки, чтобы обновить это окно
  • Откройте появившийся файл web.config и Вы увидите пустую заготовку настройки параметров web-сайта
    <?xml version="1.0"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    </configuration>
  • Вновь запустите утилиту Web Site Administration и на странице DebugAndTrace.aspx включите флажок Enable debugging, чтобы добавить параметр отладки
  • Файл web.config станет таким

    <?xml version="1.0"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
        <system.web>
            <compilation debug="true" />
        </system.web>
    </configuration>

    Способ 3

  • Выполните команду оболочки Website/Add New Item и выберите шаблон Web Configuration File
  • Оболочка создаст файл конфигурации, который затем можно настраивать либо напрямую в текстовом редакторе, либо через утилиту Web Site Administration.

    Включение трассировки и ее настройка

    Трассировка (след) применяется для анализа работы приложения, поскольку при каждом запросе очередной страницы среда исполнения ASP.NET включает в вывод служебную информацию, полезную при отладке. Эту информацию можно выводить как на запрашиваемых страницах вместе с откликом сервера (совмещенная трассировка), так и в отдельную служебную страницу Trace.axd, которая является виртуальной и исчезает при перезагрузке сервера (отделенная трассировка).

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

    Элементы управления страницы DebugAndTrace.aspx включают трассировку и означают следующее

    Параметры трассировки ASP.NET
    Параметр утилиты Web Site Administration по умолчанию Параметр, добавляемый в Web.config при включении в утилите Описание
    Capture tracing information enabled="true" Включает трассировку, результаты которой среда исполнения помещает в виртуальную страницу trace.axd, размещаемую в памяти сервера на время работы приложения. Ее можно прочитать по адресу (для приложения типа HTTP) http://localhost/Имя_приложения/ trace.axd. Эта страница создается IIS и хранится в памяти до перезагрузки компьютера
    Display tracing information on individual pages pageOutput="true" Трассировочные данные размещаются внизу каждой запрошенной страницы. Параллельно трассировка для всех обработанных страниц помещается в виртуальную страницу trace.axd
    Display trace output for:
    Local requests only localOnly="true" - по умолчанию Добавляет трассировку в отклик страницы только тогда, когда она запрошена с того же сервера, где развернута ( по умолчанию )
    All requests localOnly="false" Добавляет трассировку в отклик страницы по запросу, поступившему с любого компьютера
    Select the sort order for trace results:
    By time traceMode="SortByTime" - по умолчанию Результаты трассировки сортируются по времени
    By category traceMode="SortByCategory" Результаты трассировки сортируются по секциям
    Number of trace requests to cache: requestLimit="15" Количество запросов страниц приложения, сохраняемых средой исполнения в файле trace.axd. Этот же параметр определяет количество запросов первых запросов, при которых сервер присоединяет к индивидуальной странице трассировочную информацию при pageOutput="true"
    Select which trace results to cache:
    Most recent trace results mostRecent="true" Сохраняются результаты трассировки самых последних запросов
    Oldest trace results mostRecent="false" - по умолчанию При достижении установленного количества запросов кэш трассировки перестает обновляться до следующего перезапуска приложения, сохраняя результаты трассировки самых первых запросов

    В первой колонке таблицы показано состояние элементов управления утилиты, когда в web.config параметров нет и применяются настройки по умолчанию. Во второй колонке таблицы показаны параметры, которые добавляются в файл web.config при изменении состояния соответствующих элементов управления на отличное от состояния по умолчанию.

    Совмещенная трассировка страниц

    Сейчас мы попробуем включить трассировку страниц приложения так, чтобы трассировочная информация возвращалась вместе с рендерингом страницы

  • Запустите утилиту
  • Откройте файл web.config приложения и убедитесь, что он стал таким
    <?xml version="1.0"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
        <system.web>
            <trace enabled="true" mostRecent="true" 
    			   pageOutput="true" requestLimit="15" />
            <compilation debug="true" />
    	</system.web>
    </configuration>
  • Настройте страницу Default.aspx так
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
        
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <h1 align="center" style="color: Red">
                    Привет всем!!!</h1>
            </div>
        </form>
    </body>
    </html>
  • Запустите приложение и получите примерно такой результат
  • Пощелкайте на кнопке Refresh броузера, инициируя все новые запросы к странице. Мы видим, что вместе с рендерингом страницы броузеру возвращается трассировка только текущего запроса
  • Но самый простой способ включения трассировки для конкретной страницы - добавить в директиву @ Page этой страницы параметр Trace="true".

    Отделенная трассировка страниц

    Если трассировка страниц включена ( <trace enabled="true" /> ), то независимо от других параметров трассировки, служба IIS создает виртуальную страницу trace.axd, в которую помещает трассировочную информацию всех запрашиваемых страниц. Эта страница физически не существует, но доступна из броузера по адресу

    http://localhost/Имя_приложения/ trace.axd

    Чтобы прочитать его содержимое, приложение можно запускать либо через настоящий IIS компьютера, а либо через встроенный IIS оболочки.

    Вначале запустим трассировку через встроенный IIS оболочки.

  • Запустите приложение MyFirstSite, щелкнув на кнопке Start Debugging (или нажмите клавишу F5, или выполните команду меню оболочки Debug/Start Debugging, или выполните команду меню оболочки Debug/Start Without Debugging, или нажмите комбинацию клавиш Ctrl+F5 )
  • Пощелкайте на кнопке Refresh броузера, затем через строку адреса вызовите страницу Trace.axd
  • Теперь запустим трассировку через IIS компьютера.

    Поскольку ранее мы создавали приложение MyFirstSite типа File System в файловой системе, то его нужно скопировать в каталог Inetpub/wwwroot, который для IIS считается виртуальным каталогом localhost.

  • Выполните команду оболочки Website/Copy Web Site
  • В появившейся панели Copy Web щелкните на пиктограмме Connect, расположенной в верхней части
  • В появившемся окне выделите узел
  • После щелчка на кнопке
  • Закройте соединение, щелкнув на кнопке Disconnect
  • Вновь щелкните на кнопке
  • Выделите на левой панели файл
  • Запустите броузер компьютера, загрузите страницу по умолчанию (Default.aspx)
  • Щелчком на гиперссылке View Details можно раскрыть трассировку любого запроса. Щелчок на ссылке [ clear current trace ] очистит виртуальную страницу Trace.axd точно также, как и перезагрузка компьютера.

    Секции трассировочных данных

    Информация, которую выдает сервер при включенной трассировке, группируется им по секциям, значения которых приведены в таблице.

    Секции трассировочных данных
    Секция Описание
    Request Details Содержит общую информацию о запросе страницы
    Trace Information Содержит сведения о производительности, связанные с событиями жизненного цикла страницы. В столбце From First(s) находится абсолютное время, отсчитываемое с момента получения запроса страницы (нулевое время) до начала обработки очередного события. В столбце From Last(s) показана длительность обработки предыдущего события.
    Control Tree Содержит информацию обо всех элементах управления страницы, включая размер занимаемой ими памяти
    Session State Содержит все переменные сеанса и их значения
    Application State Содержит все переменные приложения и их состояния
    Request Cookies Collection Отображает список всех файлов cookie (куки), полученных сервером в составе запроса
    Response Cookies Collection Отображает список всех файлов cookie, переданных броузеру в составе отклика
    Headers Collection Отображает список HTTP-заголовков, полученных сервером с запросом
    Response Headers Collection Отображает список HTTP-заголовков, переданных броузеру в составе отклика
    Form Collection Содержит пары key=value элементов формы, отправленных броузером с обратной отсылкой PostBack
    Querystring Collection Содержит пары key=value, включенные в строки запроса
    Server Variables Отображает состояние всех серверных переменных

    Отложенная компиляция Web-страниц

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

    Выводы

  • Web-сервер отвечает за получение и исполнение запросов к ресурсу и отправку откликов
  • Web-броузер (браузер) за получение данных от сервера, отображение их, прием данных от пользователя через элементы управления и отправку их серверу
  • HTTP - протокол передачи текстовых данных для взаимодействия броузера и сервера
  • Обычный способ отправки данных на сервер, после первого запроса страницы, называется обратной отсылкой PostBack
  • ASP.NET поддерживает две модели программирования Web-страниц: с встроенным (совмещенным) кодом и отделенным (застраничным) кодом. Страница с совмещенным кодом включает в себя код разметки (HTML) и код языка программирования, который размещается в секциях <script>. Таких секций может быть сколько угодно и они могут располагаться в любом месте страницы. Страница с отделенным кодом размещается в двух файлах: файл разметки и файл кода
  • Динамической компиляцией называется отложенная компиляция Web-страниц, выполняемая только при первом запросе страницы пользователем. Разработчику сайта достаточно разместить страницу с исходным текстом в нужном месте сервера, а об остальном позаботится среда исполнения (машина, движок) ASP.NET
  • ASP.NET поддерживает страницы на разных языках программирования, при условии, что на одной странице применен только какой-то один язык
  • В ASP.NET для глобальной и индивидуальной настройки ее работы применяется иерархия конфигурационных файлов. При формировании кэша настройки параметры конфигурационных файлов, расположенных ближе к исполняемой странице имеют больший приоритет
  • Функцию трассировки ASP.NET применяют для наблюдения за производительностью и использованием ресурсов сервера
  • В целях безопасности при перемещении на рабочий сервер отладку и трассировку страниц нужно отключать
  • Вернуться к учебному плану