sonyps4.ru

Класс Page. Компиляция страниц по требованию

  • Отменить: Вернуться на шаг назад, иными словами отменить последнее действие.
  • Выполнить повторно: Переместиться на шаг вперёд, отменить отменённый шаг.
  • Для помощи в работе с отменой/возвратом действий в правом углу окна есть вкладка "Журнал", кликая по строкам с действиями в этой вкладке можно переместиться или вернуться на несколько действий вперёд и назад, вплоть до начального состояния изображения.
  • Вырезать Копировать Очистить Вставить: Эти действия понятны любому пользователю компьютера. Если на изображении есть выделенная область, то действия применяются именно к ней.

  • Размер изображения: Позволит изменить размеры редактируемого изображения в пикселях по ширине и высоте. Причём, размер может изменяться как с сохранением исходных пропорций, так и без, это зависит от проставленной галки у параметра "Сохранять пропорции".
  • Размер холста: Холст - это область, на которой можно рисовать или редактировать изображение. С помощью этой функции его можно увеличивать и уменьшать. При уменьшении часть изображения будет отсечена.
  • Пункты Повернуть на 180 градусов , Повернуть на 90 градусов по часовой стрелке и Повернуть на 90 градусов против часовой стрелки понятны без комментариев.
  • Отразить по вертикали и Отразить по горизонтали: Зеркально отражают изображение.
  • Кадрировать: Обрезка изображения, поле кадрирования задаётся с помощью мыши.


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


Для удобства работы со слоями справа в рабочем окне программы находится вкладки "Слои", она показана на рисунке справа. Активный слой в этой вкладке подсвечен синим. Видимость слоя регламентируется наличием галки справа, для отключения видимости надо снять галку. Слои можно перетаскивать вверх и вниз с помощью мыши. Назначение кнопок внизу панели, слева направо: изменение непрозрачности, включение маски слоя, добавление стилей слоя (внешняя тень, внутренняя тень, скос, внешнее свечение, внутреннее свечение), новый слой, удалить активный слой.

А пока перейдём к пунктам меню "Слои".

  • Новый слой: Создаёт новый слой.
  • Дублировать слой: Дублирует активный слой и располагает его над активным слоем.
  • Удалить слой: Удаляет слой.
  • Открыть изображение как слой: Открывает изображение с Вашего компьютера и выводит его в виде слоя, размещая над активным на данный момент слоем.
  • Открыть URL изображения как слой и Открыть из библиотеки как слой выполняет такие же действия, как и предыдущий пункт, только изображение берётся со стороннего сайта или онлайн-библиотеки.
  • Объединить слои: Объединяет активный слой со слоем, находящимся под ним.
  • Объединить видимые слои Объединяет видимые на текущий момент слои документа, во вкладке слоёв они отмечены галкой.
  • Переместить слой вверх, Переместить слой вниз Перемещает позицию слоя во вкладке слоёв.
  • Стили слоёв Позволят добавлять оформление для слоя, такие как:
    • Отбросить тень
    • Внутренняя тень
    • Внешнее свечение
    • Внутреннее свечение
  • Растрировать слой Конвертирует векторные объекты, например текст, в обычное изображение, состоящее из точек.
  • Добавить маску слоя, Удалить маску слоя, Применить маску слоя Работа с масками, аналогично маскам слоя в Photochop.

С остальными пунктами Повернуть слой... , Отразить... вроде всё ясно.

● Коррекция

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

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

Ниже в меню идет ряд опций с заранее настроенными и изменяемыми параметрами. К примеру, они позволяют сделать из фото негатив или применить к изображению фильтр сепия, для того, чтобы фото стало похожим на старую фотографию в светло- или темно- коричневых тонах.
Интересная опция, которая называется Кросс-процесс . Она придает цифровой фотографии вид "фото из 80-х", т.е сделанных плёночной камерой.

● Фильтр

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

● Просмотр

  • Приблизить, отдалить Увеличение/уменьшения масштаба отображения рисунка.
  • Фактические пиксели Отображение рисунка в реальном размере.
  • Показать всё Показ изображения в масштабе по размеру окна.
  • Навигатор Отображение/скрытие вкладки навигатора, находящейся в правом верхнем углу окна.
  • Слои, Журнал Отображение/скрытие вкладок и Журнал , расположенных в правой части окна.
  • Опции Инструментов Отображение/скрытие вкладки с параметрами инструментов, находящейся вверху окна, под главным меню.
  • Полноэкранный режим Очень полезная опция. Позволяет расположить рабочее окно редактора по всему окну монитора.
  • Изменить место расположения палитры Опция пока находится в разработке.

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

Специалисты в сфере компьютерных технологий стремятся изобрести множество программ. В свою очередь, пользователи ПК идут в ногу с новинками и стараются их изучить. Одним из самых востребованных и знаменитых изобретений является Adobe Photoshop. Мощный графический редактор позволяет создавать самые разнообразные изображения. Но чтобы работать с такой программой, следует знать все возможности и уметь ими пользоваться.

Где применяется фотошоп?

Многие пользователи задаются вопросом: «с чего начать изучение фотошопа?» Это прекрасная программа, позволяющая воплотить фантазию в реальность. Вот, к примеру, на Adobe Photoshop CS6 можно выполнять такие манипуляции:

На редакторе можно создавать комиксы, макеты, коллажи, рисование, ретуширование , делать комиксы и инфографики, оптимизировать изображения и заниматься конвертированием форматов. Теперь становится ясно, для чего нужен фотошоп.

Основные инструменты

Как самостоятельно изучить фотошоп и с чего начать работу? Ответ простой: с базовых инструментов. Изначально запускается установленный фотошоп. После того как откроется программа, следует обратить внимание на верхнюю горизонталь и боковую вертикаль. Здесь располагается панель инструментов. Их надо изучить в первую очередь. Достаточно навести на значок курсором мыши, и всплывет подсказка.

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

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

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

Все остальные опции предназначены для редактирования фото. Они начинаются после «файла» и заканчиваются «справкой».

Первые шаги фотоманипуляции

Программа осваивается только при помощи выбранного изображения. Делается все просто - надо зайти в меню и нажать на «файл». Затем откроется список картинок и остается выбрать понравившуюся фотографию. К работе следует приступать после добавления принта в окно редактирования фотошопа.

С правой стороны от фотографии образуется мелкое окно с вкладкам и. При каждом новом действии, к примеру: режим наложения, рекомендуется создавать новые слои. Не стоит выполнять редактирование всего лишь на исходном фото.

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

Для чего предназначены слои

В Adobe Photoshop CS6 невозможно редактировать фотографии без использования слоев. Созданный дубликат слоя послужит запасным вариантом картинки. Все фотошоперы сталкиваются с неудачными действиями с изображением, поэтому очень просто сделать повторяющуюся картинку без вреда для исходника.

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

Слоям можно придать полупрозрачный и прозрачный тон. Достаточно переместить ползунок и выставить «прозрачность» на 50%. Таким образом, те же голуби не будут броскими. После вставки полупрозрачной картинки следует придать большей детализации, например, сделать светотень и прорисовать перья с помощью кисти.

Отличие фотошопа CS6 от всех версий Adobe Photoshop

Придать рисунку нужный эффект и цвет можно только за счет горизонтальных инструментов и вкладки со слоями, на которые следует нажать правой кнопкой мыши, после чего появятся «свойства». Все программы Adobe Photoshop практически ничем не отличаются друг от друга и новичку, по сути, нет разницы, на которой из них заниматься.

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

Сложный ли в освоении фотошоп

Зачастую многие новички интересуются: трудно ли освоить программу? Не существует точного ответа на этот вопрос. Все зависит от сообразительности. Adobe Photoshop - это инструмент, как и любое другое оборудование, к примеру: «стиральная машина» требует освоения . Поэтому механизм надо изучать, чтобы понимать все возможности. Через некоторое время новичок станет специалистом, если начнет вникать в суть фотошопа. Но есть одно правило - тренироваться надо от легкого к тяжелому. Например, фотографию нужно:

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

Важно! 64-разрядная версия фотошопа более мощная, особенно касается оперативной памяти. Следует знать, что Photoshop CS6 и CC устанавливаются исключительно на x64 Mac O. S. .

Пример обработки фотографии

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

Поэтапный процесс превращения дневного снимка в ночной вариант:

Звезды

Чтобы небу придать большего эффекта, следует сделать звезды.

Процесс:

  • Поверх всех слоев создается новый. Он заполняется черным цветом, а применяется инструмент «заливка». Затем добавляется функция «шум», которая расположена в меню «фильтр». Усиливается черно-белый шум (Amount).
  • В галерее фильтров выбирается «эскиз линогравюра». Для желаемого эффекта надо поиграть с настройками.
  • Для правильного расположения звезд применяется инструмент «перемещение».
  • На слое со звездами нужно настроить режим наложения (Blending Options).
  • Далее для этого же слоя добавляется маска. Цвет градиента - черно-белый. Низ делается невидимым и, регулируя, выполняется повышение непрозрачности до определенной степени.
  • Подсветка объектов

    Фотошоп СS6




    Для лучшего эффекта фотографии желательно сделать окна подсвеченными.

    Процесс:

  • При помощи инструмента «прямолинейное лассо» выбираются окна. Чтобы сделать многократное выделение без сброса предыдущих выделений, рекомендуется удерживать клавишу Shift.
  • Далее выполняется дубль выделенных объектов и установить копию поверх слоев.
  • Затем выбираются режимы наложения (Blending Options). Ставится галка на цвет (Color Overlay). Объект должен приобрести светло-оранжевый оттенок.
  • Чтобы улучшить эффект, рекомендуется полистать в меню пункты цветового наложения и выбрать тон (Hue).
  • Напротив (Outer Glow) устанавливается галочка - это внешнее свечение.
  • Можно снова поиграть с пунктами наложения и выбрать подходящий оттенок.
  • Второстепенные источники света

    Необходимо отразить падающий свет от окон на землю и стены.

    Процесс:

  • Надо выбрать «кисть» и сделать непрозрачность 20%. Создается новый слой.
  • Далее выбирается цвет окна при помощи инструмента «пипетка».
  • Кистью намечаются оттенки на земле и стенах. Свет должен быть рассеивающимся.
  • Насыщенность регулируется при помощи непрозрачности слоя.
  • Для того чтобы правильно распределять светотень, рекомендуется ознакомиться с их рефлексами. Надо понимать, как скользит свет по тому, или иному объекту. Металл гладкий, а дерево шероховатое. Это очень влияет на создание качественного реалистичного изображения.

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

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

    Но что же вы узнаете в этих уроках?

    • 1 Начало работы в Photoshop - быстрое выделение и заливка

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

    • 2 Слои и текст

      Все изображения Photoshop строятся на слоях. Именно поэтому редактировать в программе так удобно. Урок расскажет, что такое слои, зачем они нужны и как с ними работать. Кроме того, здесь описаны приёмы создания и обработки надписей, а также перемещения расположенных на холсте объектов. После прохождения урока обработка многослойных документов не будет для вас проблемой.

    • 3 Фильтры

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

    • 4 Работа с изображениями

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

    • 5 Трансформация

      Урок научит масштабировать элементы изображения, изменять пропорции, наклонять, искажать и деформировать их

    • 6 Рисование - кисть и карандаш

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

    • 7 Рисование - фигуры

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

    • 8 Рисование - контуры и растровые изображения

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

    • 9 Рисование - инструмент Перо

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

    • 10 Рисование - инструмент Магнитное перо

      Магнитный режим инструмента Свободное перо стал настолько популярным, что его называют «Магнитным пером», хотя такого отдельного инструмента в Photoshop нет. Что же такого позволяет делать функция, за что её так сильно любят пользователи и чем она поможет лично вам - читайте в статье.

    • 11 Инструменты ретуширования изображений

      Чтобы применять для интернета эти функции редактора, не нужно быть ни верстальщиком, ни дизайнером, ни веб-мастером - вообще никем. Достаточно быть активным пользователем социальных сетей. Как сделать лицо красивей, убрать родинки и веснушки? Как обработать старое отсканированное фото, чтобы цвета стали ярче, а царапины, пятна и пылинки - не так заметны? Чем аккуратно вырезать объект, переместить его или клонировать? Где находится инструмент, который буквально за пару минут поможет избавить фотоснимок от эффекта «красных глаз»? Ответы на эти и другие вопросы ищите в статье.

    • 12 Инструменты коррекции изображений

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

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

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

    ASP.NET – один из компонентов.NET Framework. Перечислим кратко основные черты этой технологии.

    * Общеязыковая исполнительная среда CLR
    * Библиотека классов.NET Framework
    * Языки.NET(C#, VB.NET, J# и другие)
    * ADO.NET
    * ASP.NET
    * Web-службы
    * Промежуточный язык MSIL (Microsoft Intermediate Language). Это ассемблер для среды выполнения CLR.

    ADO.NET – набор классов, предназначенных для доступа к базам данных Microsoft SQL Server, к источникам данных OLEDB и к файлам XML.

    Разные части вашего проекта могут быть написаны на разных языках, это называется interoperability. Мы попробуем написать проект, где одна из страниц будет на Visual Basic, а другая на С#.

    Компютерные языки бывают компилируемыми и интерпретируемыми. В процессе компиляции программы, написанной на компилируемом языке, создается выполняемый файл(В Windows – exe). Он выполняется быстро, но не может исполняться на другой платформе. Машина, на которой она выполняется, должна иметь похожую конфигурацию. Например, если программа использует dll, то эта библиотека должна быть установлена и на целевой машине. Интерпретируемые программы компилируются в момент выполнения, поэтому они работают медленнее, но не зависят от конкретной машины. В.NET Framework применяется двухэтапная компиляция, то есть первый этап – это компиляция в MSIL, а вторая – компиляция «Just-in-time» компилятором во время исполнения. JIT-компилятор оптимизирует код для той машины, на которой он исполняется. В ASP.NET страница компилируется в MSIL при первом обращении клиента к странице. Вместе с ней компилируются классы, которые она использует. Если вы используете Visual Studio 2005, можно не ожидать первого запроса, а принудительно скомпилировать все страницы вашего проекта. Это позволит выявить синтаксические и другие ошибки.

    MSIL – это ассемблер, не зависящий от машины. Он может выполняться на любой машине, где установлена CLR. Проект Mono пытается перенести CLR на другие платформы, позволяя взаимодействовать серверам, работающим на разных платформах.

    Вы можете ознакомиться с проектом на сайте http://mono-project.com

    На странице http://go-mono.com/archive/xsp-0.10.html находится XSP - сервер ASP.NET, который может служить расширением сервера Apache – основного сервера *nix – систем.

    Как работает ASP.NETКогда мы исталлируем.NET, в соответсвующих директориях C:WINDOWSMicrosoft.NETFramework помещается также файл aspnet_isapi.dll. Это – ISAPI-расширение, и предназначено оно для получения запросов, адресованных ASP.NET-приложениям (*.aspx *.asmx и т.д.), а также создания рабочих процессов aspnet_wp.exe, обратывающих запросы. Интернет-сервер – IIS или встроенный в WebMatrix или встроенный в Visual Studio Cassini – используют это расширение, когда им надо обработать обращение к страницам с расширением aspx.

    Этот модуль разбирает(parse) содержимое страниц aspx вместе с файлом отделенного кода и генерирует класс на языке страницы с объектом Page. Страница aspx отличается от обычной HTML-страницы наличием серверных элементов управления, которые описываются специальными тегами. Для понимания работы ASP.NET важно отметить, что каждому тегу элемента управления соответствует свой член класса страницы. Например,

    < asp : Label ID = "Label1" runat = "server" >


    преобразуется в

    @ __ctrl = new global:: System . Web . UI . WebControls . Label ();


    Основная задача объекта Page – посылка HTML-код в выходной поток. Этот класс компилируется в библиотеку.dll, которая загружается в процесс веб-сервера. Последующие запросы к странице также обрабатывает dll, если исходный код страницы не меняется. Все эти файлы можно найти в директории «Temporary ASP.NET Files» текущей версии.NET. Если мы работаем в среде разработки Visual Studio 2005 или VWD, для каждого проекта создается своя поддиректория.Типы страниц и папок проектаВ проект можно добавлять новые файлы через диалог New File. Если снять отметку с флажка “Place code in separate file”, Visual Studio создаст один файл, в котором будет и страница, и код для ее обработки(в стиле WebMatrix).

    Все файлы помещаются в директорию проекта. И наоборот, все файлы, которые будут помещены в директорию проекта, станут его частью. Для веб-сайтов не существует специального файла.csproj, в котором перечислялись бы его составные части, как это было в предыдущих версиях Visual Studio. Структура решения(solution) описывается в текстовом файле.sln. В решение могут входить несколько веб-сайтов и библиотек.

    В ASP.NET 2.0 имеются специальные поддиректории проекта для разных типов файлов. Например, в папке App_Code хранятся общедоступные классы, текстовые файлы и некоторые другие(DataSet, диаграмма классов). Файлы с расширениями.cs или.vb, попавшие туда, автоматически компилируются, когда запрашивается любая страница проекта. В App_Data содержатся источники данных, используемых в проекте – базы данных Access и Microsoft SQL, XML-файлы. К этой директории нельзя получить доступ извне, а только из самого приложения. В папке Themes хранятся темы проекта(лекция 13). Применение тем позволяет настроить единообразный внешний вид сайта и централизованно им управлять. В App_GlobalResources находятся ресурсы, например таблицы строк, которые можно создавать на разных языках. Язык ресурсов выбирается автоматически в зависимости от настроек браузера пользователя. В папке App_WebReferences находятся ссылки на используемые веб-сервисы.

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

    Проект на 2 языкахПроект Web-сайта состоит из страниц aspx и классов, которые используются на страницах(и, конечно, разнообразных ресурсов). Файлы с классами, к которым можно обратиться из разных страниц, помещают в специальную папку App_Code. При компиляции они помещаются в одну сборку – библиотеку.dll в формате portable executable. Совершенно неважно, на каком языке написан класс, если это язык.NET.

    Готовые скомпилированные сборки сторонних производителей тоже можно использовать в проекте. Их помещают в папку Bin. При этом их необходимо импортировать в проект.


    Создайте новый проект. Добавьте в него файл, выбрав тип файла Class и язык Visual Basic. Среда сама предложит поместить его в папку Code. Назовем его CustomClass. У него будет очень простой код. Всего одна функция, которая добавляет слово Hello к имени, переданному в качестве параметра.

    Imports Microsoft . VisualBasic
    Public Class CustomClass
    Public Function GetMessage (ByVal name As String ) As String
    Return "Hello, " & name
    End Function
    End Class


    Добавьте в проект страницу CodeFolder_cs.aspx. Это страница написана на C#, но она создает класс, написанный на VB.NET.


    < script runat = "server" >
    void Button1_Click (object sender , EventArgs e )
    {
    CustomClass c = new CustomClass ();
    Label1 . Text = c . GetMessage (TextBox1 . Text );
    }



    ASP.NET Inline Pages



    Welcome to ASP.NET 2.0!
    Enter Your Name:










    На странице определена форма, напоминающая форму Windows-приложения. На ней имеется кнопка, нажатие на которую обрабатывается в функции Button1_Click. В ней создается класс и вызывается его функция GetMessage с параметром, который берется из элемента редактирования. Возвращаемое значение записывается в элемент Label1. В более простом варианте это выглядит так:

    Label1 . Text = “Hello ” + TextBox1 . Text ;


    Класс может быть написан на C#, а использоваться из страницы на Visual Basic.

    using System ;
    public class CustomClass2
    {
    public String GetMessage (String input ) {
    return "Hello from C# " + input ;
    }
    }
    Код страницы CodeFolder_vb . aspx :
    < script runat = "server" >
    Sub Button1_Click (ByVal sender As Object , ByVal e As System . EventArgs )
    Dim c As New CustomClass2
    Label1 . Text = c . GetMessage (TextBox1 . Text )
    End Sub


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

    Регистрация в файле web.config:

    < configuration >
    < system . web >
    ...
    < compilation >
    < codeSubDirectories >
    < add directoryName = "VBCode" />

    < codeSubDirectories >
    < add directoryName = "CSCode" />


    ...

    ДирективыНа каждой странице aspx обычно задаются директивы, с помощью которых Вы можете контролировать поведение страницы. Можно считать их языком, с которым вы общаетесь с компилятором, указывая ему, как обрабатывать данную страницу. Директивы обычно помещают в начале файла. Мы уже встречались с директивой Page в первой лекции.

    Синтаскис объявления директив такой:


    Можно объявить несколько директив одновременно:


    В ASP.NET 2.0 существует 11 директив.
    Директива Атрибуты Описание
    @Assembly Name
    Src Импортирует на страницу или в элемент управления сборку с заданным именем
    @Control такие же, как у Page Применяется для задания свойств при создании собственных пользовательских элементов управления.
    @Implements Interface Указывает, что класс данной страницы реализует данный интерфейс
    @Import Namespace Импортирует пространство имен
    @Master такие же, как у Page Применяется на страницах шаблона дизайна(Master page). Новая в ASP.NET 2.0
    @MasterType TypeName
    VirtualPath Дает строго типизированную ссылку на класс, содержащийся в шаблоне дизайна. Позволяет обращаться к свойствам этого класса.
    @OutputCache Duration
    Location
    VaryByCustom
    VaryByHeader
    VaryByParam
    VaryByControl Управляет кэшированием страницы или элемента управления. Подробнее описана в лекции 15.
    @Page см. Ниже Атрибуты, относящиеся к данной странице. Употребляется только в файлах с расширением aspx
    @PreviousPageType TypeName
    VirtualPath Страница, с которой были отправлены данные, введенные пользователем. Новая в ASP.NET 2.0. Раньше страницы отправляли пост только самим себе.
    @Reference Page
    Control Страница или элемент управления, который нужно компилировать вместе с данной
    @Register Assembly
    Namespace
    Src
    TagName
    TagPrefix Создает псевдонимы для пространств имен и пользовательских элементов управления

    Пока что подробно рассмотрим 2 из них – Page и Import.

    Директива PageДиректива Page позволяет установить свойства страницы, которые будут использованы во время компиляции. Эта директива используется чаще остальных, поэтому ее необходимо рассмотреть более подробно.

    Наиболее важные атрибуты директивы перечислены в таблице:

    AutoEventWireup Автоматическая обработка событий страницы
    Buffer Управляет буферизацией страницы. По умолчанию буферизуется
    ClassName Позволяет назначать имя класса, сгенерированного данной страницей
    CodeFile Название файла с отделенным кодом для данной страницы
    Culture Устанавливает набор региональных параметров, т.е. язык, формат валюты, даты, чисел
    Debug Если true, на страницу выводится отладочная информация
    Trace Вывод трассировочной информации
    EnableViewState Сохранение состояния страницы. По умолчанию она сохраняется
    EnableTheming Позволяет включить или выключить поддержку тем оформления. По умолчанию включено
    Inherits Класс, от которого наследуется класс данной страницы в технологии отделенного кода
    IsAsync Показывает, обрабатывается ли страница асинхронно.
    Language Язык, используемый во внедренном коде
    WarningLevel Наибольший допустимый уровень предупреждений компилятора
    CompilerOptions Опции компилятора
    Пространства имен библиотеки классовБиблиотека классов FCL содержит тысячи классов. Для удобства использования они объединены в пространства имен. Чтобы обращаться к классам, объявленным в пространстве имен, без указания полного пути, его нужно импортировать в проект. Если вы хотите работать с файлами формата XML, вам нужно импортировать пространство имен System.XML. В страницах отделенного кода на C#, как всегда, используется директива using.

    using System . XML ;


    На странице aspx – директива Import


    Для каждого пространства имен требуется отдельная директива Import.

    Visual Studio.NET и VWD по умолчанию включают в страницу на C# наиболее часто используемые пространства имен. На страницу aspx импортировать эти пространства имен не требуется.

    using System ;
    using System . Data ;
    using System . Configuration ;
    using System . Collections ;
    using System . Web ;
    using System . Web . Security ;
    using System . Web . UI ;
    using System . Web . UI . WebControls ;
    using System . Web . UI . WebControls . WebParts ;
    using System . Web . UI . HtmlControls ;


    Например, в пространстве имен System.Web.UI находится класс Page, без которого не может существовать ни одна страница ASP.NET, в System.Web - HttpRequest и HttpResponse.Программа просмотра классовКак же узнать, какие классы имеются в библиотеке классов.NET? Для этого предназначен Object Browser (Visual Studio 2005) и Class Browser WebMatrix. Чтобы открыть Object Browser в Visual Studio 2005 или VWD Express, выберите пункт меню View-> Object Browser. Если вы используете WebMatrix, то Class Browser находится в той же папке меню Windows, что и WebMatrix – All Programs->ASP.NET WebMatrix. В формате ASP.NET Class Browser включен в состав Framework SDK.

    Все имеющиеся пространства имен показаны как узлы древовидной структуры. Нас интересует System.Web. Раскройте этот узел. Внутри оказались другие пространства имен. Раскройте System.Web.UI. Там находится большое количество классов, интерфейсов, делегатов, перечислений. Их можно узнать по иконкам. Например, иконка делегата похожа на чемодан.

    Интерфейс

    Событие

    Перечисление

    Выберите класс Page. В окошке справа появится список его методов, полей и событий. Если выбрать метод, в третьем окне под вторым появится его описание. Внутри класса находятся еще две папки – классов-прародителей(Base Classes) и классов-потомков. Все их тоже можно просмотреть. Object Browser показывает и классы текущего проекта. Если классы закомментирован тегами генерации документации XML, то эта информация тоже видна, например Summary, Parameters, Values, Returns.

    Исследуя свойство IsPostBack, можно узнать, что оно имеет булевское значение, и предназначено только для чтения.

    Проверка соответствия стандартамСуществуют разные стандарты HTML и XHTML. Более поздние стандарты предъявляют более строгие требования, например, XHTML 1.1 не разрешает пользоваться
    и другими простыми тегами без закрывающего слэша
    . В то же время старые стандарты не поддерживают новые теги.

    В заголовке HTTP-запроса указывается стандарт документа, Visual Studio 2005 во всех страницах указывает следующий стандарт:


    Этот стандарт требует наличия атрибута xmlns в теге - ссылки на сайт с описанием стандарта.

    < html xmlns = >


    Многие страницы, сделанные для предыдущих версий ASP.NET, не имеют такого атрибута. В панели инстументов Html Source Editing также находится выпадающий список, в котором можно выбрать стандарт или версию браузер, для которого предназначена данная страница. Страница автоматически проверяется на соответствие этому стандарту.
    Свойства страницы

    Страница – это основа всего в Web-приложении.

    Класс System.Web.UI.Page инкапсулирует функциональность, необходимую для создания и обработки страниц ASP.NET.

    Каждая страница ASP.NET – это объект класса, который автоматически генерируется ядром ASP.NET. Класс наследуется от ассоциированного со страницей класса, если мы используем отделенный код, или прямо наследуется от System.Web.UI.Page, если код на C# встроен в страницу. Среда также создает конструктор по умолчанию.

    Чтобы убедиться в этом, можем создать страницу “PageType.aspx”:


    < html xmlns = "http://www.w3.org/1999/xhtml" >
    < head runat = "server" >
    < title > Тип страницы

    < body >
    < div >


    < div >




    Вот результат:


    Базовый тип данной страницы System.Web.UI.Page

    Такая же страница, созданная по технологии разделения кода.


    пишет результат

    Тип данной страницы ASP.pagetype_aspx
    Базовый тип данной страницы PageType

    То, что PageType – наследник System.Web.UI.Page, прописано в файле отделенного кода:

    public partial class PageType : System . Web . UI . Page


    К текущему объекту страницы можно обращаться как к переменной Page. Page – это контейнер элементов управления данной страницы, поэтому содержит в себе коллекцию Controls. Если в теге присутствует атрибут runat = “server”, то в Page содержится и поле Header, через которое можно управлять заголовком страницы. Например, поменять название странице в заголовке браузера, назначить файл каскадных таблиц стилей.

    < script runat = "server" >
    protected void Page_Init (object sender , EventArgs e )
    {
    HtmlLink myHtmlLink = new HtmlLink ();
    myHtmlLink . Href = "printable.css" ;
    myHtmlLink . Attributes . Add ("rel" , "stylesheet" );
    myHtmlLink . Attributes . Add ("type" , "text/css" );
    Page . Header . Controls . Add (myHtmlLink );
    Page . Header . Title = "Новый заголовок" ;
    }
    protected void Page_Load (object sender , System . EventArgs e )
    {
    Style bodyStyle = new Style ();
    bodyStyle . ForeColor = System . Drawing . Color . Blue ;
    bodyStyle . BackColor = System . Drawing . Color . Beige ;
    Page . Header . StyleSheet . CreateStyleRule (bodyStyle , null , "p" );
    }



    Hello ASP.NET


    Учитесь программировать на ASP.NET




    В этом примере мы поменяли текст заголовка. Запустите эту страницу. В получившемся HTML-коде внутри тега стоит уже не «Untitled Page», а «Новый заголовок», который был установлен через Page.Header.Title. Был создан стиль для тега

    Что отразилось таким образом:

    < style type = "text/css" >
    p { color : Blue ; background - color : Beige ; }


    Внешняя страница CSS была импортирована из файла.

    < link href = "printable.css" rel = "stylesheet" type = "text/css" />< style type = "text/css" >


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

    У страницы есть два важных свойства - Response и Request. Свойство Response имеет тип HttpResponse. Response страницы можно воспринимать как выходной поток. Весь HTML код генерируемой страницы в принципе может быть выведен через запись в этот поток. Это был обычный способ работы разработчиков asp. Но в ASP.NET есть более удобные средства вывода данных с помощью серверных элементов управления. Response лучше использовать для записи Cookies, для задания различных параметров заголовка – управлять кэшированием, свойством Expires.

    Вот пример из MSDN:

    HttpCookie MyCookie = new HttpCookie ("LastVisit" );
    DateTime now = DateTime . Now ;
    MyCookie . Value = now . ToString ();
    MyCookie . Expires = now . AddHours (1 );
    Response . Cookies . Add (MyCookie );


    Можно поменять кодовую страницу.

    < head runat = "server" >

    < title > Русская кодировка


    Функция Response.Redirect перенаправляет браузер на другую страницу.

    Response . Redirect ("NavigationTarget.aspx?name=" + System . Web . HttpUtility . UrlEncode (Name . Text );


    Здесь формируется командная строка с параметрами QueryString, которые целевая страница может прочитать.

    Аналогично свойство Request – это запрос, переданный на сервер для вывода нужной страницы. Он имеет тип HttpRequest. В нем хранится все о клиенте, включая настройки его браузера, файлы-cookie и данные, введенные им в форму.

    NameLabel . Text = Server . HtmlEncode (Request . QueryString [ "Name" ]);

    События страницыРабота среды ASP.NET со страницей начинается с получения и обработки Web-сервером IIS запроса к данной странице и передачи этого запроса среде выполнения ASP.NET. Среда выполнения анализирует, нужно ли компилировать страницу или можно выдать в качестве ответа страницу из кэша.

    Затем начинается жизненный цикл страницы. Он начинается с этапа PreInit. После получения запроса среда выполнения загружает класс вызываемой страницы, устанавливает свойства класса страницы, выстраивает дерево элементов, заполняет свойства Request и Response и свойства UICulture и вызывает метод IHttpHandler.ProcessRequest. После этого среда выполнения проверяет, каким образом была вызвана эта страница, и если страница вызвана путем передачи данных с другой страницы, о чем будет рассказано далее, то среда выполнения устанавливает свойство PreviousPage.

    На этом этапе устанавливается также свойство IsPostback объекта Page, которое позволяет узнать, в первый ли раз загружается форма или она должна формироваться как результат обработки данных, введенных пользователем.

    В обработчиках событий страницы можно проверить это свойство:

    if (! Page . IsPostBack )
    {
    // обрабатывать
    }


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

    Если на странице существуют валидаторы(классы проверки данных, см. лекцию 5), то для них вызывается метод Validate(). Затем вызываются обработчики событий (при условии, что страница генерируется в ответ на действия пользователя).

    В методе Render генерируется сам HTML-код выводимой страницы. При этом страница вызывает соответствующие методы дочерних элементов, те – методы своих дочерних элементов. В методе Render код выводится в Response.OutputStream. Сама страница тоже считается элементом управления – класс Page является наследником класса Control. Если на странице есть блоки отображения, они становятся частью функции отрисовки (rendering).

    Наконец, страница выгружается из памяти сервера и происходит событие Unload.

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


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

    Полный список событий страницы, которые можно переопределить в классе страницы:

    * PreInit
    * Init
    * InitComplete
    * PreLoad
    * Load
    * LoadComplete
    * PreRender
    * PreRenderComplete
    * Unload

    Для всех событий определены обработчики – виртуальные функции OnInit, OnLoad. Когда AutoEventWireup равно true, в классе автоматически объявляются функции-обработчики событий с префиксом Page - Page_Load, Page_Init и так далее. Одно из самых популярных событий – это Page_Load. Создавая новую страницу, Visual Studio создает обработчик этого события. Здесь можно изменить внешний вид элементов и создать новые. Можно установить AutoEventWireup в false. В таком случае надо писать перегруженные версии виртуальных функций.

    protected override void OnInit (EventArgs e )
    {
    }


    Так можно добиться ускорения работы страницы.
    Способы внедрения кода ASP.NET в страницу.

    Есть три способа внедрить код на программном языке в страницу aspx.

    Блок называется блоком объявления кода.

    Тег похож на тот, которым вводятся скрипты JavaScript. Но с большим отличием – скрипт выполняется на сервере. Поэтому необходимо задавать атрибут runat="server". Атрибут language у него может принимать значения С#, VB, J#. В страницах с отделенным кодом можно писать и на C++. По умолчанию принимается значение языка Visual Basic, поэтому не надо забывать указывать язык, когда пишете на С#. Но нет необходимости это делать, если язык определен в директиве Page. Можно писать на разных языках в одном приложении, но нельзя смешивать разные языки на одной странице.

    Внутри блока можно объявлять переменные, константы и функции. На самом деле в C# нет глобальных переменных, так что это будут члены класса страницы. Но они выглядят глобальными, потому что класс не описан программистом, его генерирует ASP.NET. Поэтому будем называть их переменными страницы.

    Здесь можно переопределить виртуальные методы класса страницы. В блоке также можно объявлять классы, но они будут внутренними по отношению к классу страницы.

    Блоки отображенияЛюбой код, внедренный с помощью , обрабатывается во время события Render как часть страницы.

    В теле блока допустимо объявлять переменные, тогда они будут локальными для того метода, в котором данный блок будет реализован, но нельзя объявлять методы или типы.

    Такой стиль программирования был характерен для asp. Чаще всего в блоках отображения выводится HTML-код с помощью Response.Write.

    является сокращением .

    < html >
    < head >

    < body >
    1 Строка HTML < br />

    2 Строка HTML < br />

    3 Строка HTML < br />



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

    Объект любого класса создается с помощью синтаксиса «тег объекта»

    < object id = "items" class= "System.Collections.ArrayList" runat = "server" />


    Это эквивалентно описанию в классе страницы поля

    System . Collections . ArrayList items ;


    Еще один способ применяется для связывания с источниками данных и будет рассмотрен в 7 лекции.ЗаключениеТехнология ASP.NET построена на объектно-ориентированном событийно-управляемом подходе к созданию web-страницы. Классы, используемые для генерации web-страниц, являются частью библиотеки.NET Frameworks. Для многих из них существуют аналоги в Windows Forms, что сближает программирование настольных приложений с программированием web-приложений.

    Шаблоны дизайна - это визуальное наследование страниц, впервые появившееся в ASP.NET 2.0. Вы можете создавать основу для любого количества страниц приложения. Шаблоны позволяют легче создавать и поддерживать приложения. Visual Studio 2005 включает поддержку создания и редактирования шаблонов страниц. Эта лекция рассматривает использование шаблонов страниц в приложении и начинается с объяснения их преимуществ.

    Примечание: терминология в этой области не устоялась. В некоторых книгах используют выражение «эталонные страницы». Можно применять термин «главная страница», хотя его можно спутать с Default.aspx.

    Зачем нужны шаблоны дизайна страниц?

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

    Например, взгляните на главную страницу сайта газеты «Комсомольская правда». Каждый день там появляются разные статьи, но оформление их остается единым. Это логотип газеты, верхние, правые, левые навигационные панели, рейтинг статей справа, формы для поиска, подписки и входа в почту. Внизу страницы находится юридическая информация.

    Некоторые разработчики копируют и вставляют повторяющиеся элементы во всех страницах. Это неэффективно, если нужно изменить одну деталь в этих общих элементах, изменения придется вводить во всех страницах. Можно помещать повторяющиеся куски кода во включаемые файлы с помощью команды HTML include. Но так трудно увидеть окончательный вид страницы в среде разработки. В ASP.NET 1.1 стало возможным создавать пользовательские элементы управления. Можно создать такой элемент с нужным содержанием и помещать его на все страницы. Развитием этой идеи стало создание шаблонов страниц. Это тоже пользовательский элемент управления, только он находится не в странице, а вне ее.

    Основы Master Pages

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

    Начиная с этой лекции, будем разбирать проект, который Visual Studio 2005 создает по шаблону Personal Web Site Starter Kit. В нем показаны шаблоны страниц, темы и персонализация и навигация. Элементы управления навигации сосредоточены на странице шаблона Default.master. И это естественное решение, так как навигация нужна везде.

    В страницу шаблона также включают общие заголовки и нижние колонтитулы.

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

    Когда дочерняя страница редактируется в среде разработки, на вкладке Design видна полная страница вместе с элементами из шаблона, но они показаны серым цветом. Их редактировать нельзя. Можно редактировать то, что находится в элементах Content.

    В диалоге Add New Item выберите тип страницы Master Page. Как и обычные страницы, их можно создавать с отделенным кодом или кодом, встроенным в страницу. Это никак не влияет на модель разделения кода дочерних+ страниц. Кроме того, главная и дочерняя страницы могут разрабатываться на разных языках.

    Чтобы получить четкое разделение страницы на логические части, используют таблицы. Построим таблицу с 3 строками, где в верхней строке находится заголовок всех страниц, во второй произвольное содержание, она состоит из двух ячеек, в каждой из которых по одному ContentPlaceHolder. В нижнем ряду находится правовая информация. Таблица создается очень просто из меню Layout-Insert Table. Создайте таблицу 2 на 3. После этого объедините ячейки верхней и нижней строк, а в среднюю вставьте ContentPlaceHolder. Создайте содержание заголовка и подвала. Должна получиться подобная страница:

    Привет!
    Школа программирования ASP.NET 2.0
    Copyright © 2006 - Школа ASP.NET 2.0

    Первое отличие этой страницы от обычной в том, что она начинается с директивы Master, а не Page. Класс мастер-страницы определен в файле MasterPage.master.cs.

    public partial class MasterPage: System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e) { } }

    Класс шаблона - наследник System.Web.UI.MasterPage, который в свою очередь наследует от System.Web.UI.UserControl.

    В ней могут находиться любые элементы управления и HTML-код. В ней могут обрабатываться и события страницы. 2 элемента ContentPlaceHolder обозначают места, куда вставляется содержание страницы-наследницы.

    Теперь нужно создать страницу содержания. Она создается как обычно, только отмечается флажок с надписью Select Master Page. Появляется диалог, в котором необходимо выбрать шаблон страницы.

    Но и в этом случае назначение главной страницы в директиве Page имеет приоритет над назначением на уровне приложения. Установка web.config действует на тех страницах, в которых masterPageFile не указан, но определены элементы управления Content. Эта установка не действует на обычные aspx-страницы.

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

    Элемент location вставляется в главный узел configuration. Здесь указано, что все страницы из папки Lections используют шаблонную страницу Lections.master.

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

    Программа создала дочернюю страницу с 2 элементами управления Content. Если переключиться на вкладку Design, эти два элемента Content показаны в виде пустых прямоугольников, расположенных рядом друг с другом, так как в шаблоне они находятся в двух соседних ячейках таблицы. Директива Page отличается от обычной, кроме атрибута MasterPageFile, наличием атрибута Title. Так как теги , , наследуются из файла шаблона, это единственная возможность переопределить заголовок браузера. Заменим значение атрибута

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

    На самой странице отображается только содержание, заданное в странице шаблона.

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

    (Ее можно найти в установке.NET "Microsoft.NET\Framework\v2.0.xxx\ASP.NETWebAdminFiles\Images)

    Дочерняя страница в браузере теперь выглядит так:

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

    В главной странице может быть определено содержание, которое будет отображаться по умолчанию. Оно помещается в элементах ContentPlaceHolder и наследуется всеми дочерними страницами. Если дочерняя страница не переопределит содержание по умолчанию, оно будет использоваться при ее отображении. Создадим элемент управления SiteMapPath, которым поместим в ContentPlaceHolder1.

    На странице MainSchool.aspx он отображаться не будет, так как в ней определены оба элемента Content. Однако если в следующей странице определен только один из элементов Content:

    Какой язык программирования Вы предпочитаете?
    asp:RadioButtonList ID="rblVoting" runat="server" DataSourceID="SqlDataSource1" DataTextField="variant" DataValueField="id">


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

    Программное назначение мастер страницы

    В странице содержания можно переназначить ее главную страницу программно. Для этого нужно присвоить нужное значение свойству Page.MasterPageFile. Шаблон поменяется независимо от того, какой шаблон был назначен в директиве @Page. Но если попробуете проделать это в функциях Page_Load или Page_Init, получите ошибку времени выполнения.

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

    Страницы шаблона могут иметь методы и свойства. Чтобы можно было обращаться к ним, нужно использовать директиву @MasterType. При этом становится доступен класс страницы шаблона дизайна через строго типизированную ссылку. Атрибут TypeName задает имя типа, а VirtualPath путь относительно корневого каталога веб-приложения к файлу шаблона.

    Таким образом страница разрешает доступ извне к свойствам своих элементов.

    void Page_Load() { Master.FooterText = "This is a custom footer"; AdRotator ad = (AdRotator)Master.FindControl("MyAdRotator"); if (ad != null) { ad.BorderColor = System.Drawing.Color.Purple; ad.BorderWidth = 10; } }
    Вложенные мастер-страницы

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

    Perrenials

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

    Daffodils bloom early in spring and welcome the growing season.
    Последовательность событий

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

    Инициализация вложенных элементов управления главной страницы.

    Инициализация вложенных элементов управления страницы содержания.

    Инициализация самой главной страницы.

    Инициализация страницы содержания.

    Событие Page_LoadComplete страницы содержания

    Событие LoadComplete было введено для того, чтобы можно было обратиться из страницы содержания к элементам главной страницы, созданным в ее Page_Load. Это нельзя сделать в обработчике Page_Load страницы содержания, так как она загружается до главной страницы.

    Страницы шаблонов для конкретных платформ

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

    Поэтому ASP.NET 2.0 позволяет в атрибуте MasterPageFile директивы Page определить разные страницы шаблона для конкретных контейнеров.

    Заключение

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



    Загрузка...