C# для профессионалов. Том II
Шрифт:
□ Обработка инструкций для сервера
□ Код на C#, VB.NET, JScript.NET или любом другом языке, который поддерживает платформа .NET сейчас или может поддерживать в будущем
□ Содержимое в любой ферме, подходящей для сгенерированного ресурса, такого как HTML
□ Встроенные серверные элементы правления ASP.NET Поэтому, фактически, можно иметь файл ASP.NET, состоящий просто из
без какого-либо дополнительного кода или инструкций вообще. Это приводит просто к созданию возвращаемой страницы HTML (так как HTML является используемым по умолчанию выводом страниц ASP.NET), содержащей именно этот текст.
Как мы увидим позже в этой главе,
Управление состоянием в ASP.NET
Одно из ключевых свойств страниц ASP.NET состоит в том, что они не обладают состоянием. По умолчанию никакая информация не сохраняется на сервере между запросами пользователя (хотя существуют методы, которые позволяют при желании это делать). На первый взгляд это кажется немного странным, так как управление состоянием кажется существенным для интерактивных сеансов, удобных для пользователя. Однако ASP.NET предоставляет достаточно удобный способ обхода этой проблемы, чтобы сделать управление сеансом почти прозрачным.
По сути, информация, например, о состоянии элементов управления в форме Web (данные, введенные в текстовые поля, выбор из выпадающих списков и т.д.) хранится в скрытых полях представления состояния (viewstate), которые являются частью страницы, сгенерированной сервером и переданной пользователю. Если в дальнейшем требуется серверная обработка типа пересылки данных формы, то происходит возврат (postback) этой информации на сервер. На сервере эта информация используется для повторного заполнения объектной модели страницы, позволяя нам действовать на ней, как если бы изменения были бы сделаны локально.
Мы скоро увидим это в действии и укажем особенности.
Формы Web ASP.NET
Как упоминалось ранее, большая часть функциональности ASP.NET достигается с помощью форм Web. Скоро мы перейдем к этому вплотную и создадим простую форму Web, чтобы получить начальную точку для исследования этой технологии. Прежде всего, однако, мы должны взглянуть на особенности, имеющие отношение к созданию форм Web. Необходимо отметить, что многие разработчики ASP.NET используют для создания файлов просто текстовый редактор, такой как notepad. Дело облегчается тем, что можно, как отмечалось ранее, объединить весь код в одном файле. Код заключается между тегами
Атрибут
Если опустить атрибут
В равной степени можно создавать файлы ASP.NET в Visual Studio, что прекрасно для нас подходит, так как мы уже знакомы с этой средой для программирования C#. Однако применяемая по умолчанию настройка проекта для приложений Web в этой среде предоставляет чуть более сложную структуру, чем один файл
Рассмотрим пример. Создайте новый проект типа C# Type Web Application, как показано ниже:
По умолчанию VS будет использовать расширения FrontPage для настройки приложения Web в требуемом месте, которое может быть удаленным, если сервер Web находится на другой машине. Но и для этого существует альтернативный (и более быстрый) метод, использование файловой системы через LAN (что является, конечно, невозможным, если удаленный сервер Web находится не в той же LAN, что и сервер разработки). Если первый метод отказывает, то VS будет пробовать другой.
Независимо от используемого метода, VS поддерживает локальный кэш всех файлов проекта, причем в синхронизации с файлами на сервере Web.
Через какое-то время Visual Studio должна создать следующее:
□ Новое решение,
□
□
□
□
□
Мы покажем все сгенерированные файлы в ходе изложения этой и следующих двух глав, в данный момент нам необходимо сосредоточиться на сердцевине приложения — созданном файле
Файлы
Текст, показанный здесь по умолчанию, не является текстом, который мы увидим в приложении, это просто примечание от VS, сообщающее, какой режим компоновки выбран. Здесь используется режим GridLayout, который допускает большую гибкость в управлении позиционированием, но можно сменить его на FlowLayout, если требуется более традиционная схема позиционирования типа HTML. Мы рассмотрим это немного позже.