51475

Создание Web-приложений средствами ASP.NET

Лекция

Информатика, кибернетика и программирование

Создание Webприложений средствами SP. Начало работы с Visul Studio и создание нового Webприложения NET Почти все крупномасштабные Webсайты на базе технологии SP.NET разрабатываются с использованием Visul Studio предлагаемой компанией Microsoft полнофункциональной среды разработки Webприложений гибкого и универсального инструмента проектирования и создания законченных приложений для платформы Windows.

Русский

2014-02-11

1.1 MB

75 чел.

5.8. Создание Web-приложений средствами ASP.NET

5.8.1. Архитектура ASP.NET и принципы работы в среде  Visual Studio .NET 5.6.2. 5.8.2. Начало работы с Visual Studio  и  создание нового Web-приложения

5.8.1. Архитектура ASP.NET и принципы работы в среде
Visual Studio.NET 

Почти все крупномасштабные Web-сайты на базе технологии ASP.NET разрабатываются с использованием Visual Studio – предлагаемой компанией Microsoft полнофункциональной среды разработки Web-приложений, гибкого и универсального инструмента проектирования и создания законченных приложений для платформы Windows. В нее включены многие функции, специфические для .NET Framework. Как и любая другая профессиональная среда разработки, Visual Studio включает в себя средства управления проектами, редактор исходного текста, конструкторы пользовательского интерфейса, мастера, компиляторы, компоновщики, инструменты, утилиты, документацию и отладчики. Она позволяет создавать приложения для Windows-платформ, а также новой платформы .NET Framework. Одно из важнейших усовершенствований – возможность работы с разными языками и приложениями различных типов в единой среде разработки.

К другим основным преимуществам Visual Studio можно отнести:

  1.  Встроенный редактор WISIWYG («Что видишь, то и получаешь»). С его помощью Visual Studio позволяет настраивать статическое HTML-содержимое, в том числе шрифты и стили.
  2.  Меньше кода для написания путем автоматизации базовых задач по созданию стереотипного кода. Например, при добавлении на Web-страницу нового элемента управления необходимо также определить переменную, позволяющую манипулировать этим элементом управления в коде, что и выполняет Visual Studio. Похожая автоматизация применяется и при подключении к Web-службам.
  3.  Интуитивный стиль программирования – форматирование кода, выполняемое Visual Studio, во время его набора в виде автоматической расстановки отступов и использования цветового кодирования, значительно улучшает удобочитаемость кода и снижает вероятность допущения ошибок в коде.
  4.  Встроенный Web-сервер, позволяющий запускать Web-сайт прямо из среды проектирования, что, кроме удобства, увеличивает степень безопасности за счет отсутствия возможности получения доступа с внешнего компьютера к разрабатываемому Web-сайту.
  5.  Многоязыковая разработкаVisual Studio позволяет кодировать на любых языках с использованием одного и того же интерфейса (IDE). Более того, эта среда разработки предоставляет возможность помещения Web-страниц, реализованных на C#, в тот же проект, в котором уже имеются Web-страницы, написанные на Visual Basic. Единственное ограничение: на одной странице нельзя применять более одного языка.
  6.  Увеличение скорости разработки, для чего Visual Studio обладает множеством возможностей. Удобства вроде мощной функции поиска и замены, а также средств автоматического добавления и удаления комментариев, которые могут временно скрыть блок кода, позволяют работать быстро и эффективно.
  7.  Отладка, для удобства осуществления которой Visual Studio располагает некоторым инструментарием. Так, возможно выполнять код по строке за раз, устанавливать интеллектуальные точки прерывания, которые можно сохранить для дальнейшего использования, и в любое время отображать текущую информацию из памяти.

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

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

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

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

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

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

На рис.5.8.1-1 представлен пример простейшей страницы Web-приложения, содержащего всего лишь один элемент – кнопку. Как видно из рисунка, основой страницы является тело стандартного HTML документа, внутри которого находится элемент form, а также кнопка button. Кроме того, здесь присутствуют некоторые дополнительные элементы вначале документа, которые будут рассмотрены позднее.

Дополнительные элементы

Тело HTML документа

Рис. 5.8.1-1. Пример простейшей страницы Web-приложения

При запуске приложения данная страница отображается в окне браузера и выглядит следующим образом (рис.5.8.1-2).

Рис. 5.8.1-2. Отображение страницы Web приложения в окне браузера

В свою очередь, с кнопкой связан программный код, который выполняется при нажатии на нее. Этот код располагается в отдельном файле, окно которого в момент разработки изображено на рис.5.8.1-3.

Рис. 5.8.1-3. Файл, содержащий программный код Web-страницы

На самом деле, при разработке Web-приложений на основе ASP.NET возможны два варианта организации Web-форм.

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

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

В примере, рассмотренном ранее, Web-страница разделена на две части, при этом форма и программный код хранятся в разных файлах.

В следующем примере, изображенном на рис.5.8.1-4 показана аналогичная предыдущей Web страница, в которой форма и программный код объединены в одном файле.

Рис. 5.8.1-4. Пример Web-формы, содержащей описание формы и программный код в

                    одном файле

Изучив этот пример, можно описать типовой сценарий взаимодействия элементов Web-приложения друг с другом и с клиентом, осуществляющим запрос формы этого приложения (рис. 5.8.1-5).


Рис. 5.8.1-6. Типовой сценарий взаимодействия элементов  Web приложения с  

         клиентом.

Как видно из рис.5.8.1-6, при обращении клиента к Web-приложению, последнее запускается на сервере IIS. Запущенное приложение формирует отклик. Для этого на сервере создается экземпляр запрошенной Web-формы, которая генерирует HTML текст отклика, который и передается браузеру клиента. Сразу после этого экземпляр Web-формы уничтожается. Пользователь, получив HTML страницу, сгенерированную приложением, имеет возможность заполнять различные поля формы (тестовые поля, переключатели и т.п.). После заполнения всех необходимых полей формы, пользователь инициирует отправку данных, введенных им в страницу обратно на сервер. Это происходит за счет использования технологии обратной отсылки, которая вызывается при выполнении определенных действий (например, нажатия на кнопку). Получив данные от пользователя, сервер создает новый экземпляр Web-формы, заполняет его полученными данными и обрабатывает все необходимые события. По окончанию обработки, сервер формирует HTML код ответа и отправляет его клиенту, а затем уничтожает экземпляр Web-формы. Более подробно описанный сценарий изображен на рис.5.8.1-7 и 5.8.1-8.

Создание Web страницы на основе дескрипторов из файла .aspx

Выполнение пользовательского кода инициализации

Сериализация динамической информации о состоянии вида

Генерация HTML кода для объектов страницы

запрос

ответ

Запрос URL (HTTP GET)

Сгенерированный HTML код

Рис. 5.8.1-7.  Подробный сценарий взаимодействия элементов  Web-приложения с

                     клиентом при первом запросе.

Создание Web страницы на основе дескрипторов из файла .aspx

Выполнение пользовательского кода инициализации

Десериализация и применение данных состояния вида

Генерация HTML кода для объектов страницы

запрос

Отсылка страницы по URL (HTTP POST)

Сгенерированный HTML код

Выполнение пользовательского кода обработки событий

Сериализация динамической информации о состоянии вида

ответ

Рис. 5.8.1-8.  Подробный сценарий взаимодействия элементов  Web-приложения с

                      клиентом при запросе обратной отсылки.

В момент окончания работы с Web-приложением, пользователь либо закрывает браузер, либо переходит на другую интернет страницу. В этот момент завершается сеанс работы пользователя с данным приложением, однако само приложение может быть завершено сервером не сразу после окончания последнего сеанса работы пользователя. Это связано с управлением распределением памяти платформой .NET Framework, которая основана на периодической проверке ссылок объектов. Если в результате такой проверки обнаружится, что объект больше не используется, сервер уничтожает его, освобождая таки образом занимаемую им память. Таким образом, нельзя точно сказать, когда именно наступит событие Application_End для данного Web-приложения.

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

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

Итак, при запросе страницы, прежде всего, инициируется событие Page_Init, которое производит начальную инициализацию страницы и ее объекта. В рамках обработки данного события программист может поместить код, осуществляющий начальную инициализацию страницы. Тем не менее, это событие нельзя использовать для инициализации элементов управления, размещенных на странице, так как они еще не созданы.

После этого инициируется событие Page_Load. Большинство Web страниц используют это событие для выполнения инициализации, например заполнение полей данными, установка начальных значений для элементов управления и т.д. Кроме того, в процедуре обработки данного события возможно определение того была ли загружена страница впервые, или обращение к ней осуществляется повторно в рамках технологии обратной отсылки, произошедшей в результате нажатия пользователем кнопки, либо другого элемента управления, размещенного на странице. В английской терминологии обратная отсылка данных на сервер называется post back. Для определения текущего состояния страницы необходимо проверить свойство Page.IsPostBack, которое будет иметь значение false при первом запуске страницы. Определение того, производится ли первое обращение к данной странице, либо повторное важно, так как позволяет производить инициализацию только в том случае, когда страница запрашивается впервые. Так, например, при обратной отсылке данных на сервер не только нет необходимости производить инициализацию, устанавливая начальные значения элементов управления, это может быть ошибкой, так как эти элементы управления должны получить значения, переданные им от пользователя. В дальнейшем, в случае, если для страницы была произведена обратная отсылка, вызываются события элементов управления, размещенных на странице. Эти события запоминаются в тот момент, когда пользователь производил действия с элементами управления в окне браузера, а при передаче данных на сервер исполняются по порядку.

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

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

Пусть у нас существует страница с кнопкой (Button) «Отправить» и текстовым полем (TextBox) без автоматической обратной отсылки. При изменении текста в текстовом поле и щелчке на кнопке «Отправить» инициируется обратная отправка данных страницы на сервер (этого не произошло при изменении текста в текстовом поле, так как соответствующая опция этого элемента управления  AutoPostBack установлена в false). В момент обратной отправки страницы на сервер ASP.NET запускает следующие события:

  1.  Page.Init
  2.  Page.Load
  3.  TextBox.TextChanged
  4.  Button.Click
  5.  Page.PreRender
  6.  Page.Unload

В результате обработки всех инициированных событий, генерируется HTML код страницы, который и передается клиенту, после чего выполняется Очистка, в рамках которой, инициируется событие Page_Unload. Оно предназначено для освобождения ресурсов, занятых данной страницей. Событие Page.PreRender инициируется после того, как сервер обработал все события страницы, но генерация ее HTML кода еще не произошла. Обычно это событие используется ASP.NET для привязки элементов управления к источникам данных непосредственно перед созданием HTML кода и отправкой его клиенту.

Описанная последовательность событий позволяет создать описание жизненного цикла
Web-страницы, изображенного на рис.5.8.1-9.

Запрос браузера

Инициализация структуры страницы

Инициализация кода пользователя

Проверка достоверности

Обработка событий

Очистка

Ответ браузеру

1

2

3

4

5

6

7

8

Рис. 5.8.1-9. Жизненный цикл страницы ASP.NET

Вернемся, однако, к проблеме сохранения данных страницы в промежутке между обращениями к ней. Для реализации этого механизма в ASP.NET используются состояния отображения (view state). Состояние отображения Web-формы доступно только внутри этой Web-формы. Если необходимо сделать данные, введенные в данную Web-форму доступными другим Web-форма одного и тоге же приложения, их необходимо сохранить в объектах с более глобальной областью видимости, которые называют переменными состояния. Объектов переменных состояний два: Application и Session. Переменные состояния Application доступны всем пользователям приложения и могут рассматриваться как глобальные переменные, обращение к которым возможно из любых сеансов. Переменные состояния Session доступны только в рамках одного сеанса, следствием чего является то, что они оказываются доступными только одному пользователю. В переменных состояния можно хранить данные любого типа. В силу того, что переменные состояния являются фактически глобальными переменными, для работы с ними, желательно выработать стратегию их использования в приложении.

Более подробно работа с состояниями отображения и переменными состояния будет рассмотрена при описании класса Page.


5.8.2. Начало работы с Visual Studio  и
создание нового приложения

5.8.2.1. Начало работы с новым Web-приложением

Как известно из темы 4.1. при загрузке Visual Studio 2005 отображается окно, состоящее из нескольких областей.

Для создания нового приложения ASP.NET следует выполнить команду File  New  Web Site.

Следует обратить внимание, что команда New  Project не используется, поскольку Web-приложения не являются проектами

В открывшемся окне New Web Site (рис. 5.8.2-1) можно указать следующие сведения:

  1.  шаблон (Templates) – определяет файлы, с которых будет начинаться Web-сайт. Поддерживаются два типа базовых приложений ASP.NET – приложения Web-сайтов и приложения Web-служб. Шаблоны этих приложений были скомпонованы и откомпилированы аналогично. Фактически возможно добавление Web страницы к приложению Web-службы, а также Web-службы к обычному Web-приложению. Различие заключается в файлах, создаваемых Visual Studio по умолчанию. В Web-приложении работа начинается с образца Web-страницы, в приложении Web-службы – с образца Web-службы. Кроме того, имеются более сложные шаблоны для определенных типов сайтов. Можно также создавать собственные шаблоны или загружать готовые шаблоны сторонних поставщиков;
  2.  месторасположение (Location) – определяет место хранения файлов Web-сайта. Обычно это File System – Файловая Система (указывается папка на локальном компьютере либо сетевой путь). Но возможно также редактирование сайта непосредственно по HTTP или FTP протоколу;
  3.  язык (Language) – определяет язык программирования .NET, используемый по умолчанию для кодирования Web-сайта.

Рис. 5.8.2-1 Окно создания нового Web приложения

Альтернативой ручному вводу месторасположения является нажатие кнопки Обзор (Browse), отображающей диалоговое окно Выбор месторасположения (Choose Location), рис. 5.8.2-2. 

Выбор местоположения создания нового Web приложения

Рис. 5.8.2-2. Установка месторасположения создаваемого Web приложения

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

  1.  File System (Файловая система) – позволяет просматривать дерево дисков и каталогов или совместно используемых ресурсов, предоставляемых другими компьютерами сети;
  2.  Local IIS (Локальный IIS) – позволяет просматривать виртуальные каталоги, доступные с помощью программного обеспечения Web-хостинга IIS, которое функционирует на текущем компьютере;
  3.  FTP Site (FTP-сайт) – менее удобно, так как перед подключением следует указать информацию о соединении, включая FTP-сайт, порт, каталог, имя пользователя и пароль;
  4.  Remote Site (Удаленный Web-сайт) – предоставляет доступ к Web-сайту по определенному URL с использованием HTTP.

После возврата в диалоговое окно создания Web-сайта и указания всех необходимых опций, Visual Studio создаст новое Web-приложение. Новый Web-сайт начинается с одного файла – начальной страницы по умолчанию default.aspx, пример содержимого, которого приведен на рис. 5.8.2-3.

Окно редактирования содержимого страницы

Переключение режимов редактирования страницы

Рис. 5.8.2-3. Созданное новое Web приложение.

Как видно из рисунка, основная часть файла представляет собой обычный структуру HTML документа. Разница лишь в том, что в самом начале страницы размещена строка, содержащая директивы ASP.NET.  В этих директивах содержится   информация об используемом языке программирования,  связанным с данной страницей (в данном случае это VB), об автоматическом связывании событий данной страницы с функциями – обработчиками этих событий, а также имя модуля, содержащего программный код, привязанный к данной странице.

Наличие расширения .aspx у файла говорит о том, что он содержит некие директивы ASP.NET и должен быть исполнен платформой .NET Framework. При этом очень важными элементами этого файла являются директивы среды исполнения, а также встроенные в страницу серверные элементы управления. Эти элементы должны обязательно располагаться внутри HTML элемента form, исполняющегося на стороне сервера и помечаются тегом <asp: параметры элемента />. Например, описание серверного элемента Button, вставленного в страницу будет выглядеть следующим образом:

<asp:Button ID="Button1" runat="server" Text="Button" />.

Как видно из этого примера, после ключевого слова asp следует тип элемента, который соответствует его классу, описанному в .NET Framework, ID элемента, указание на его обработку на стороне сервера и другие параметры, такие, как подпись кнопки в данном случае.

Особое значение при разработке приложений играет окно панели компонентов Toolbox.

В Visual Studio окно Toolbox отображает элементы управления и компоненты, которые можно перетаскивать в окно документа. Содержимое Toolbox зависит от типа редактируемого документа. Например, при редактировании Web-формы Toolbox содержит серверные элементы управления, HTML-элементы управления, элементы управления, связанные с данными, и другие компоненты, которые можно размещать на поверхности Web-форм (рис. 5.8.2-3).

Файл Default.aspx.cs содержит программный код, привязанный к странице. Организация этого файла практически полностью повторяет организацию аналогичного файла для проекта Windows приложения. Пример содержимого только что созданного файла такого типа приведен на рис. 5.8.2-4.

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

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

Компоненты в окне Toolbox ( рис. 5.8.2-5)  упорядочены по категориям. Щелкнув категорию, можно отобразить элементы из этой категории. Содержимое окна Toolbox можно прокручивать, щелкая стрелки, расположенные сверху и снизу списка компонентов. Когда текущим документом является код, в окне Toolbox не отображаются компоненты, так как их невозможно размещать в рабочей области.

Заготовка функции Page_Load

Раздел подключения пространств имен

Класс страницы приложения

Рис.5.8.2-4. Элементы управления окна Toolbox в режиме редактирования исходного

                    кода.

5.8.2.2. Редактирование Web-документов

Web-формы и HTML-документы можно редактировать в графическом режиме с использованием drag-and-drop, как обычные Windows-формы, либо в текстовом виде. Для переключения между режимами достаточно щелкнуть ярлычки Design и Source, расположенные внизу окна документа (рис. 5.8.5-2). Естественно, не все задачи можно решить в графическом режиме. Поэтому приходится редактировать Web-документы в режиме исходного кода. Если хорошо знать HTML, то этот способ может оказаться даже удобнее использования графических инструментов. Поддерживаемая Visual Studio технология IntelliSense помогает завершать элементы HTML, создаваемые в режиме исходного кода.

Для демонстрации режимов работы со страницей рассмотрим пример.

Пример 5.5.5-1.  Создать простейшее Web-приложения, состоящего из кнопки, при нажатии на которую в окне Web-браузера выводится текст «Это простейшее приложение ASP.NET».

Для реализации данного примера воспользуемся созданным ранее пустым приложением. Поместим в файл Default.aspx кнопку. Сделать это можно двумя различными способами.

  1. Перетащить кнопку из окна Toolbox в окно, содержащее код страницы.

Для выполнения этой операции, необходимо отобразить в окне редактора файла .aspx исходный код файла, а затем перетащить из панели Toolbox в нужное место страницы кнопку. В результате, на странице будет размещен код кнопки, как показано на рис. 5.5.5-5.

Исходный код помещенной на страницу кнопки

Переключение режимов отображения окна редактирования

Рис. 5.8.2-5. Пример размещения кнопки на странице с помощью перетаскивания  в

                       режиме редактирования исходного кода страницы

  1. Перетащить кнопку из окна Toolbox в окно, содержащее изображение дизайна страницы.

Для выполнения этой операции необходимо отобразить в окне редактора файла .aspx дизайн страницы, а затем перетащить из панели Toolbox кнопку в любое место области окна страницы. Результат операции представлен на рис. 5.8.2-6.

Рис. 5.8.2-6. Пример размещения кнопки на странице с помощью перетаскивания в

         режиме редактирования дизайна страницы

Переключение между режимами Design и Source возможно в любой момент в процессе редактирования содержимого страницы.

  1. Важным моментом при размещении элементов внутри Web страницы является то, что форматирование самой страницы подчиняется принципам форматирования HTML страниц. Это логично, так как костяк файла .aspx составляет именно HTML код страницы. Это означает в частности, что невозможно размещать элементы управления в произвольном месте Web страницы, так, как к этому привыкли разработчики Windows приложений. Для форматирования страниц Web приложений очень часто используются таблицы, позволяющие размещать элементы внутри ячеек, позиционируя, таким образом, элементы управления в нужном месте страницы.
  2. Следующим этапом нашего примера является создание обработчика события нажатия кнопки и вывода в окне браузера необходимого текста.

Для создания обработчика события нажатия на кнопку необходимо переключиться в режим дизайна, выделить кнопку, открыть окно свойств выделенного объекта (окно Properties), это можно сделать с помощью щелчка правой кнопкой мыши на кнопке и выборе пункта Properties из открывшегося контекстного меню, переключиться в режим показа событий выбранного элемента управления (для этого необходимо нажать кнопку в окне свойств кнопки) и произвести двойной щелчок левой кнопкой мыши по событию, обработчик которого необходимо создать, в нашем примере это Click (рис. 5.8.2-7).

Выбор события для создания процедуры обработчика

Кнопка выбора режима отображения событий текущего элемента управления

     Рис.5.8.2-7. Окно свойств элемента управления Button.

  1. В результате создается процедура Button1_Click, связанная с событием Click элемента управления Button. Эта процедура помещается в файл Default.aspx.cs. Введем в тело процедуры программный код, позволяющий вывести на экран текст. Для вывода в окно браузера информации, возможно, использовать класс Response, который применяется для формирования отклика сервера, пересылаемого браузеру клиента. Более подробно объект Response рассматривается в занятии 4.

Введем следующий код в обработчик события нажатия кнопки.

Response.Write ("Это простейшее приложение ASP.NET");

Окно редактора кода при этом будет выглядеть следующим образом (рис. 5.8.2-8).

Рис.5.8.2-8. Окно редактора кода приложения после создания обработчика события

         нажатия на кнопку Button1.

  1. Произведем запуск приложения. Для этого нажмем F5, либо произведем щелчок по кнопке панели инструментов Visual Studio. Если Web приложение запускается впервые и для его запуска используется режим отладки (клавиша F5), либо вызов команды Debug  Start Debugging (F5), то отобразится диалог, изображенный на рис. 5.8.2-9.

    Рис. 5.8.2-9. Диалоговое окно выбора режима запуска приложения

                          при первом запуске.

Если выбрать режим Add a new Web.config file with debugging enabled, в файл web.config будет добавлена строка, включающая режим отладки запускаемого приложения. В дальнейшем, при повторном запуске данного приложения в режиме отладки это диалоговое окно отображаться не будет, а приложение будет сразу запускаться в режиме отладки. Если же выбрать режим Run without debugging, то приложение будет запущено в обычном режиме.

  1. После запуска проекта Visual Studio .NET компонует его файлы, показывая в окне Task List сообщения об ошибках.

Дважды щелкнув описание ошибки в окне Task List, можно быстро найти строку с ошибкой, чтобы исправить ее.

Если во время компоновки ошибки не обнаружены, Visual Studio запускает приложение в режиме отладки, а в случае Web-приложения – запускает установленный в системе браузер по умолчанию и открывает в нем начальную страницу Web-приложения. Если при исполнении приложения в режиме отладки возникает ошибка. Visual Studio .NET показывает в браузере соответствующее сообщение. Далее можно выполнить одно из следующих действий:

если причина ошибки известна, стоит остановить приложение, закрыв окно браузера, и вернуться в Visual Studio .NET, чтобы исправить ошибку;

если причина ошибки неизвестна, следует щелкнуть кнопку Back (Назад) в браузере и переключиться в Visual Studio .NET, чтобы установить в коде точку прерывания перед предполагаемым местом возникновения ошибки. Затем, переключившись обратно в браузер, попробовать еще раз выполнить действие, вызывавшее ошибку. Встретив точку прерывания, Visual Studio .NET остановит исполнение приложения. Далее путем пошагового исполнения, возможно, локализовать ошибку.

  1. После обнаружения причины ошибки, до ее устранения необходимо остановить приложение.

После запуска приложения будет запущен локальный Web сервер, встроенный в Visual Studio. Уведомление об этом появится в панели индикации (5.8.2-10), после чего будет открыта страница Web приложения в браузере, установленном в системе по умолчанию.

    Рис.5.8.2-10. Уведомление о запуске локального Web сервера

Страница созданного Web приложения, отображаемого в окне браузера, будет выглядеть следующим образом (рис. 5.8.2-11).

     Рис. 5.8.2-11 Страница Web приложения, отображаемая в браузере Internet Explorer

Как видно из рисунка, страница состоит из одной кнопки. Произведем щелчок левой кнопкой мыши по ней. В результате, на экране будет отображена строка «Это простейшее приложение ASP.NET» (рис.5.8.2-12)

     Рис.5.8.2-12. Результат отображения страницы после нажатия на кнопку Button

5.8.2.3. Установка точек прерывания, просмотр значений переменных и пошаговое выполнение

Можно остановить исполнение проекта перед некоторой строкой кода, установив в этой строке точку прерывания. Для этого следует щелкнуть на сером поле слева от строки, перед которой нужно остановить исполнение программы, либо, выделив эту строку, нажать F9. При этом строка выделяется, а слева от нее появляется точка, свидетельствующая о наличия точки прерывания программы (5.8.2-13).

точка прерывания

Рис. 5.8.2-13. Установленная точка прерывания.

Встретив при исполнении проекта строку с точкой прерывания, Visual Studio остановит приложение перед выполнением этой строки, выделит и откроет ее в окне редактора кода.

После остановки выполнения приложения перед точкой прерывания стоит просмотреть значения активных переменных, наводя на них указатель мыши. Для просмотра значений переменных сложного типа, таких, как переменные-объекты или массивы, следует добавить эти переменные в окно Watch путем выбора и перетаскивания. Просмотреть значения вложенных элементов (например, элементов массива или свойств объекта) можно, щелкнув знак «+» справа от сложного элемента в окне Watch.

Для возобновления исполнения приложения, остановленного перед точкой прерывания, следует щелкнуть кнопку Continue на панели инструментов либо нажать F5. Можно также исполнять приложение построчно, нажимая F10 (команда Debug  Step Over) или F11 (команда Debug  Step Into).

Разница между ними заключается в следующем. F10 заставляет при вызове процедуры исполнить ее как одну команду. Другими словами, процедура исполняется без захода в нее (step over), после чего исполнение останавливается на следующей после вызова этой процедуры строке. Нажатие клавиши F11 вызывает исполнение процедуры с заходом в нее (step into), при этом исполнение останавливается на первой строке вызванной процедуры.

5.8.2.4. Редактирование кода

При создании новой Web-формы автоматически генерируется связанный с ней файл, содержащий объект кода этой страницы. Имя файла с кодом составляется из имени Web-формы и расширения .vb или .cs (в зависимости от используемого языка программирования: cs соответствует языку C#, vibeVisual Basic).

В каждом файле кода Visual Studio генерирует определение класса, инициализирующие процедуры и обработчик события Page_Load.

Чтобы скрыть сгенерированный код, следует щелкнуть знак «минус» слева от директивы #Region. При этом область сворачивается, а знак «минус» меняется на «плюс», щелкнув который, область снова раскрывается. Аналогичным образом сворачивают и раскрывают и другие блоки кода, например определения классов и процедур (5.8.2-13).

Редактор кода также поддерживает функцию auto complete, автоматически завершающую ключевые слова и члены классов, реализуемую при помощи технологии IntelliSense (рис. 5.8.2-14). Окно подсказки появляется всякий раз, когда происходит ввод ключевого слова, представляющего собой команду, директиву, тип данных, либо зарезервированное слово. При этом пользователю достаточно выбрать из списка нужный вариант окончания данной команды и нажать клавишу Enter. В случае если окно подсказки закрылось, а команда так и не была выбрана, пользователь его можно вызвать с помощью нажатия комбинации клавиш ctrl+пробел.

окно подсказки автоматического завершения набираемой команды

Рис.5.8.2-14. Технология IntelliSense в действии при редактировании HTML-текст.

Если писать исходный код страницы на языке Visual Basic, то после завершения ввода каждой строки функция autocomplete будет делать первые буквы ключевых слов и имен членов заглавными. Однако в программе, написанной на VB, ключевые слова и члены классов не распознаются, если при их вводе использован неверный регистр, так как VB, в отличие от Visual Basic .NET, чувствителен к регистру символов.

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

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

5.8.2.5. Окно Solution Explorer  и структура ASP .NET приложения

Visual Studio упорядочивает приложения при помощи проектов и решений.

Проект (project) – это набор файлов, из которых в итоге компонуется исполняемый файл. Решение (solution) – это группа проектов, образующих функциональную единицу. Файлы, составляющие решение, можно просматривать в окне Solution Explorer, показанном на
рис. 5.8.2-15.

.

Рис.5.5.5-15. Окно Solution Explorer.

Стартовый проект (start-up project) запускается первым по щелчку кнопки Start в Visual Sludio. Если решение состоит из нескольких проектов, то стартовый проект обычно вызывает другие проекты этого решения.

Сведения о решении хранятся в файле решения, который имеет расширение .sln и по умолчанию размещается в папке Мои документы. Эти файлы позволяют открывать решения, а файлы проектов (файлы с расширением .vbproj или .csproj) позволяют напрямую открывать проекты, расположенные в соответствующих папках. При сохранении проекта, открытого таким образом. Visual Studio создаст новый файл решения.

Рассмотрим структуру созданного проекта, отображенную в окне Solution Explorer.

После создания нового проекта, Visual Studio  создает следующие файлы: Default.aspx и Default.aspx.cs (Ошибка! Источник ссылки не найден.). Кроме того, автоматически создается каталог App_Data, предназначенный для хранения файлов базы данных, используемой ASP.NET. Это может быть БД Access, SQL Server, XML или файл любого другого формата доступного в ASP.NET приложении. Помимо каталога App_Data в проекте Web приложения могут создаваться и другие каталоги. Часть из них играет определенную роль, и занимают особое место в системе, их имена предопределены и за ними закреплены определенные функции. Такие каталоги часто называют виртуальными каталогами приложения. Другую часть составляют каталоги, создаваемые самими пользователями. За такими каталогами не закреплены определенные функции, а их назначение в системе определяет сам пользователь. Более подробно виртуальные каталоги рассматриваются в занятии 4.

Файл Default.aspx представляет собой файл, содержащий описание Web страницы в формате HTML.

Таким образом, согласно такой модели организации проекта, ASP.NET придерживается принцип разделения исходного кода и интерфейса системы. Интерфейс системы описывается в файлах с расширением .aspx, а исходный код размещается в файлах с расширением .cs в случае, если в качестве языка программирования используется C# и .vb – если Visual Basic.

Еще одним важным файлом проекта ASP.NET приложения является файл Web.Config. При начальном создании проекта, Visual Studio не создает этот файл. Однако, при первом запуске приложения (с помощью нажатия клавиши F5), пользователю предлагается создать этот файл и установить в нем опцию, разрешающую отладку данного приложения, как было показано выше (рис. ).

Файл Web.Config является конфигурационным файлом, созданном на базе формата XML. Фрагмент такого файла, изображен на рис. 5.8.2-16. Он содержит большое количество параметров настройки на уровне приложения, которые конфигурируют все аспекты, начиная с безопасности, и заканчивая отладкой, подключением к источникам данных и управлением состояния.

Рис.5.8.2-16. Пример файла Web.Config.

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

Файлы .asmx – представляют собой Web службы и обычно реализуются в виде специальным образом оформленных процедур или функций, запускающихся на стороне сервера и способных обмениваться данными с любым приложением, функционирующим на любой платформе и поддерживающего SOAP.

Файл Global.asax – содержит обработчики событий, которые реагируют на глобальные события приложения. Структура и содержимое этого файла более подробно рассмотрены в [1].

Возможны и другие компоненты, к которым относятся скомпилированные сборки, созданные сторонними разработчиками или самим программистом, позволяющие разделять бизнес логику и логику доступа к данным и создавать специальные элементы управления. Для того чтобы узнать какие еще компоненты могут быть добавлены к проекту Web приложения на базе ASP.NET, необходимо выполнить следующую команду Website  Add New Item, либо нажать Ctrl+Shift+A. В открывшемся окне представлены все элементы, которые возможно добавить к проекту (5.8.2-17).

Рис. 5.8.2-17. Добавление компонентов в проект

Мы будем рассматривать возможности добавляемых к проекту компонентов по мере необходимости.

5.8.2.6. Работа со справочной системой

В Visual Studio имеется объединенная справочная система, включающая сведения по среде разработки, языкам программирования и .NET Framework, а также информацию технической поддержки и статьи из MSDN. В зависимости от параметров, установленных на начальной странице в диалоговом окне Options, содержимое справочной системы отображается в окне документа либо в отдельном окне вне среды Visual Studio.

В справочной системе предусмотрены три поисковых окна: Contents, Index и Search. Они работают подобно инструментальным окнам Visual Studio: их можно «пристыковывать» к другим окнам, а также прятать и открывать, щелкая их ярлычки (рис. 5.8.25-18).

строка быстрого поиска по ключевому слову

окно результатов обработки поискового запроса

строка поискового запроса

поисковое окно Search

Рис.5.8.2-18. Окно справочной системы Visual Studio 2005.

В каждом поисковом окне есть раскрывающийся список Filtered by, в котором выбирают нужный язык программирования или раздел для поиска. Эта возможность особенно полезна при работе с окнами Search и Index, поскольку объединенная справочная система содержит немало информации.

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

Помимо материалов справочной системы в Visual Studio доступны также ресурсы целого ряда интернет сайтов, поддерживаемых Microsoft и ее партнерами, на которых размещено и постоянно публикуется большое количество интересной информации для разработчиков на платформе .Net Framework. Среди русскоязычных сайтов, посвященных данной тематике, можно выделить GotDotNet.ru, адрес в интернете www.gotdotnet.ru и www.aspnetmania.com

5.8.2.7. Запуск приложения и организация виртуальных каталогов приложений

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

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

Домен приложения представляет собой эквивалент процесса, реализованный в .NET. Он гарантирует невозможность одного приложения оказывать влияние на другое, то есть использовать пересекающиеся области памяти.

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

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

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

Bin

содержит все предварительно скомпилированные сборки .NET, которые обычно представляют собой DLL библиотеки. Эти библиотеки используются Web приложением и могут включать предварительно скомпилированные классы Web страниц и служб, а также другие сборки, на которые ссылаются данные классы.

App_Code

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

App_GlobalRecources

хранит глобальные ресурсы, доступные каждой странице Web приложения.

App_LocalRecources

хранит локальные ресурсы, доступные только специальной странице.

App_WebReferences

хранит ссылки на Web службы, используемые приложением.

App_Data

Хранит файлы данных, включая XML файлы и файлы SQL Express

App_Browsers

Содержит определения браузера, записанные в формате XML. Эти файлы определяют характеристики браузеров на стороне клиентов и влияют на визуализацию страницы.

App_Themes

хранит темы, используемые Web приложением.

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


 

А также другие работы, которые могут Вас заинтересовать

30039. Усилитель звуковой частоты на основе интегральных микросхем 1.41 MB
  В задачу входит выбор типа электронных компонентов входящих в состав устройства. При проектировании усилителя следует использовать такие элементы чтобы их параметры обеспечивали максимальную эффективность устройства по заданным характеристикам а также его экономичность с точки зрения расхода энергии питания и себестоимости входящих в него компонентов. Параметры микросхемы таковы: Uп=22В P=18Bт Rн=8Ом Fн=20Гц Fв=20кГц Iп=120мА Кг=03 Rвх=50кОм Кш=03мкВ Ку=26 дБ 4. Выбор элементов будем производить на основе выходных...
30040. Формы обращения, связанные с родственными в английском языке 199.12 KB
  Формы обращения в английском языке. Формы обращения связанные с родственными отношениями. Ласковые и дружественные формы обращения. Вежливые формы обращения.
30041. Спектральный анализ дискретных сигналов 231 KB
  Написать программу на языке программирования Паскаль для решения следующей задачи (вариант задания индивидуальный). Результаты расчетов должны выводиться на экран и в файл. Оформление графиков и таблиц выполнять средствами математических пакетов (Maple, MathCad)
30043. ВИЗУАЛИЗАЦИЯ ЧИСЛЕННЫХ МЕТОДОВ. РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ 232 KB
  Метод Эйлера модифицированный – стр. В данной курсовой работе требуется вычислить дифференциальное уравнение способами Эйлера и Эйлера модифицированный: Результаты вычислений должны содержать: точное значение уравнения приближенные значения графики Решение обыкновенных дифференциальных уравнений. Одношаговыми являются метод Эйлера и методы Рунге – Кутта.
30047. Древовидные (иерархические) структуры данных в реляционных базах данных 1006.5 KB
  Сегодня большинство хранилищ данных как простых так и сложных построены на основе реляционных баз данных. Реляционные базы данных в большинстве случаев удовлетворяют требования какойлибо предметной области данных но часты и случаи когда требуется представление и хранение данных в иерархическом виде. Это снизит защищенность данных но избавит нас от долгих раздумий в самом начале пути.