Asp создание страницы asp


Содержание

Технология активных серверных страниц ASP

ASP (англ. Active Server Pages — «активные серверные страницы») — технология, предложенная компанией Microsoft для создания Web-приложений в 1996 году вместо провалившегося проекта Dynamic HTML, в котором была сделана попытка «динамизировать» web-страницы за счет модернизации HTML, внедрением в него «динамических тэгов», то есть тэгов, имеющих алгоритмические свойства наподобие объектов в ООП. Но появление JavaScript от корпорации Netscape сделало это бессмысленным.

Технология ASP также, как и Dynamic HTML, основана на внедрении в обыкновенные веб-страницы специальных элементов управления, допускающих программное управление, но с куда большим риском для безопасности клиента.

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

Для реализации приложений ASP используются языки сценариев (VBScript или JScript). Также допускается применение COM-компонентов.

Технология ASP разработана для операционных систем из семейства Windows NT/Server и функционирует под управлением веб-сервера Microsoft IIS.

Технология ASP получила своё развитие в виде ASP.NET — технологии создания веб-приложений, основанной уже на платформе Microsoft .NET.

Синтаксис

Страница на ASP — это обычная страница HTML, со вставками, обозначенными ограничителями :

То что находится внутри ограничителей — это текст программы, интерпретируемый при запросе страницы. VBScript является языком по умолчанию, хотя возможно использование и JScript[источник не указан 1108 дней] (или любого другого языка, если установлен соответствующий интерпретатор):

Версии

ASP в своём развитии прошёл через несколько версий:

  • ASP 1.0 (распространяется с IIS 3.0) в декабре 1996 года.
  • ASP 2.0 (распространяется с IIS 4.0) в сентябре 1997 года.
  • ASP 3.0 (распространяется с IIS 5.0) в ноябре 2000 года.

Apache::ASP

Apache::ASP (англ.) предоставляет функциональность ASP на основе веб-сервера Apache, со скриптами на основе Perl.

ASP в Sambar Server

На сервере Sambar Server используется функциональность ASP, которая использует язык CScript в качестве основного языка программных вставок.

Обзор технологии Active Server Pages (ASP)

Сергей Верязов, Microsoft Special Interest Group «Neva»

Active Server Pages это среда программирования, которая обеспечивает возможность комбинирования HTML, скриптов и компонент для создания динамических Web-приложений. Возможность встраивания в Web-страницы скриптов (кода, написанного на языке программирования, например, VBScript или JScript) позволяет логичным образом объединить оформление с данными, полученными из различных источников, например, из БД.

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

Принципы функционирования

Использование Active Server Pages как бы не требует специфичных браузеров, но требует включения небезопасного ActiveX. Все ASP-скрипты запускаются и выполняются на Web-сервере, причем брaузер получает только результирующие HTML-файлы. Microsoft Internet Information Server, начиная с версии 3.0, поддерживает Active Server Pages.
Рассмотрим последовательность функционирования ASP. Клиент запрашивает ASP-страницу на Web-сервере. Сервер принимает запрос и начинает его обрабатывать. По расширению файла (.asp) определяет, что данный файл содержит ASP-скрипт, и начинает анализировать его содержимое, последовательно интерпретируя и выполняя вставки ASP-кода. ASP-код, в свою очередь, может содержать обращения к различным источникам данных, осуществлять обработку полученных данных и добавлять содержимое генерируемой страницы. В результате формируется обычная HTML-страница (уже не содержащая ASP-кода), которая и отправляется обратно клиенту.

Внешне ASP функционирует также, как CGI. Аналогичным образом передаются параметры (формат-строки запроса) и осуществляется вывод результатов. Однако производительность ASP оказывается гораздо выше, т. к. при каждом запросе не происходит отдельной загрузки ASP-интерпретатора. Использование компонент ActiveX также значительно повышает производительность Web-сервера.

Описание синтаксиса

ASP-код, который нужно выполнить на сервере, размещается внутри специальных тегов . Так как данный код обрабатывается на сервере, он не доступен пользователю. Сам код может быть написан с использованием Visual Basic Scripting Edition (VBScript) или JScript (JavaScript). Технология ASP позволяет использовать и другие языки программирования. По сути, нужно говорить не о синтаксисе ASP, а о том языке, который используется для написания ASP-кода. Синтаксис VBScript намного проще других языков, поэтому новичку будет легко в нем разобраться.

Объекты и компоненты

VBScript не является полнофункциональным языком программирования и использования встроенных в него средств явно недостаточно. Поэтому в ASP-страницах используются специальные объекты и компоненты ActiveX.

Существует набор встроенных объектов, которые инициализируются и предоставляются ASP-скрипту автоматически при начале обработки. Эти объекты обеспечивают доступ к основным жизненно важным функциям:

  • Объект Application позволяет создавать переменные, доступные всем пользователям Web-приложения.
  • Объект Session позволяет сохранять данные, связанные с отдельным пользователем.
  • Объект Request предоставляет параметры CGI-запроса, отправленные методом POST 99или GET.
  • Объект Response предоставляет методы для добавления информации, а также для формирования заголовков страницы ответа Web-сервера.
  • Объект Server содержит множество различных методов, одним из которых является метод CreateObject, позволяющий создавать экземпляры компонент ActiveX.

В отличие от встроенных ASP-объектов, ASP-компоненты явно необходимо создавать в коде скрипта. Существует огромное количество ActiveX-компонент, которые можно использовать в ASP-страницах, причем большинство из них распространяются бесплатно. Более того, разработчик может сам создавать ActiveX-компоненты в любой среде программирования, поддерживающей COM-технологию, например, Visual C++ или Visual Basic.

Следует уделить особое внимание объектам ADO (ActiveX Data Objects), которые представляют собой мощные интегрированные средства для создания приложений для работы с БД. Компоненты ADO обеспечивают быстрый и удобный интерфейс к БД на самом высоком уровне, при этом сохраняется переносимость разрабатываемых приложений для работы с другими БД. Использование компонент ADO значительно упрощает работу программиста, ему остается лишь правильно составить SQL-запросы к БД и позаботиться о выводе результатов.

В рамках функционирования Web-приложения существует возможность создания обработчиков основных событий, таких как запуск и остановка Web-приложения, а также открытие и закрытие пользовательской сессии. Эти события описываются в специальном ASP-файле global.asa. Обработчики данных событий можно использовать для инициализации объектов или установки значений глобальных переменных.

Средства разработки

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

Microsoft Visual InterDev 6.0 (входящий в состав Microsoft Visual Studio) является одним из лучших средств, которое позволяет не только быстро и эффективно создавать ASP-код, но и осуществлять расширенную отладку кода. Основные особенности этого продукта:

  • Просмотр списка используемых объектов, и возможность быстрого написания кода.
  • Подсветка синтаксиса кода (VBScript и JScript).
  • Автоматическое формирование содержимого global.asa.
  • При запуске в режиме отладки InterDev автоматически настраивает Web-сервер (IIS) в нужный режим, а по окончании отладки восстанавливает настройки.
  • Возможность установки точек прерывания (breakpoints).
  • Просмотр значений переменных (watches) и списка вызванных процедур (call stack).

Существуют также и другие специализированные редакторы, позволяющие разрабатывать ASP-приложения, например, Home Site 4.5, Macromedia UltraDev 4.0 или ASP Express. Однако эти средства не полностью охватывают возможности Visual InterDev.

Новые возможности в IIS 5.0

Последняя версия Web-сервера Internet Information Server (IIS) 5.0 значительно усовершенствована, благодаря чему повышена надежность и производительность ASP-приложений. Встроенные объекты ASP в Windows 2000 обладают новыми методами, которые расширяют возможности разработчика.
Появились новые средства обработки ошибок. С помощью нового объекта AppError теперь можно получать сведения об ошибках, происходящих как на стадии выполнения, так и на стадии разбора страницы.

В новой версии ядра управления сценариями Script Engine из состава Windows 2000 появились новые мощные средства поддержки языков VBScript и JScript. В сценариях на VBScript теперь можно пользоваться средствами проверки и разбора сложных выражений, а также создавать классы.
Средства доступа к данным также претерпели значительные изменения теперь в составе ОС поставляется ядро MDAC 2.5, которое, в частности, обеспечивает интеграцию со средствами XML.

Поддержка других языков программирования

Наравне с Visual Basic Scripting Edition (VBScript), IIS поддерживает обработку JScript (JavaScript). Вы можете использовать все те же объекты, при этом меняется только синтаксис связующих конструкций.
Преимущество технологии ASP в том, что она позволяет использовать и другие языки программирования. Для их поддержки необходимо установить соответствующие модули Script Engine. Например, поддержку языка Perl (а точнее ActivePerl) можно осуществить с помощью модуля от компании ActiveState (http://www.activestate.com/). Также существуют модули для поддержки REXX и Python.
Существуют продукты сторонних компаний, поддерживающие технологию ASP на других платформах. Например, Chili!Soft ASP, компании Chili!Soft, Inc., (http://www.chilisoft.com/) обеспечивает поддержку ASP на множестве Web-серверов, таких как: Apache, Lotus, Netscape, OReilly, которые могут функционировать под управлением различных ОС.

Достоинства и недостатки

Язык VBScript, обычно используемый в ASP, имеет менее удобный синтаксис, чем другие языки, например язык PHP. Однако основной недостаток VBScript — неприемлемо снижающаяся безопасность клиента, а в связке с ActiveX — практически нулевая. Не является компенсацией этого и то, что производительность интерпретатора VBScript значительно выше, чем PHP.

JScript от Microsoft лишен этого недостатка, но имеет другой, более серьёзный — неприятную обработку типов данных OLE Automation, что приводит к скрытым, трудным в обнаружении ошибкам.

ASP может использовать очень довольно набор классов для работы с SQL базами данных — ADO, который примерно аналогичен Perl DBI и лучше, чем вызовы mysql_xxx в PHP. Однако технология ADO тоже устарела.

ASP поддерживает объекты Session и Application, с которыми в PHP/Apache традиционно есть огромные сложности, связанные с архитектурой процессов Apache 1.x (а она восходит к нелюбви к потокам в мире UNIX и использованию fork() вместо них везде, где возможно).

Однако, так как объект Session ныне считается совершенно не удовлетворяющим требованиям безопасности, и зачастую вместо него все его содержимое помещают в один огромный cookie, и передают туда-обратно между клиентом и сервером. Такое легко реализуемо в PHP, этим пользуются, например, phpBB и его коммерческий дериватив vBulletin.

Asp создание страницы asp

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

Общие сведения

ASP (Active Server Pages) – это мощная технология от Microsoft, позволяющая легко разрабатывать приложения для WWW. ASP работает на платформе Windows NT и IIS (Internet Information Server), начиная с версии 3, хотя вроде есть реализации на других платформах. ASP – это не язык программирования, это внутренняя технология, позволяющая подключать программы к Web-страницам. Основа успеха ASP – простой скриптовый язык (Visual Basic Script или Java Script) и возможность использования внешних COM-компонент.

Как это все происходит?

Вы пишете программу и складываете в файл на сервере. Браузер клиента запрашивает файл. Файл сначала интерпретируется сервером, на выходе производится HTML-код. Этот HTML посылается клиенту. Файлы с программами имеют расширение .asp. Файлы asp – это обычные текстовые файлы, содержащие исходные тексты программ. Файлы делаются с помощью любого текстового редактора. Каталог, в котором размещены файлы asp должен иметь права на выполнение, так как сервер исполняет эти файлы, когда браузер их запрашивает. Собственно программы пишутся на любом скриптовом языке, который установлен в системе. По умолчанию поддерживаются VBScript и JavaScript. Можно доустановить другие (например, Perl). Если ничего специально не указывать используется VBScript. В дальнейшем будем ссылаться только на него. Программные фрагменты заключаются в скобки . Можно ставить открывающую скобку в начале файла, закрывающую – в конце, все что между ними – программа на Visual Basic’е.

Какие средства есть для программирования?

Web – нормальная среда программирования, если правильно понять, что есть что. В VBScript есть все нормальные конструкции структурного программирования (if, while, case, etc). Есть переменные (описывать не обязательно, тип явно не задается). Поддерживаются объекты. Работа с ними обычная – Object.Property, Object.Method. Есть ряд встроенных объектов (Request, Response, Session, Server, Connection, Recordset). Можно доустанавливать другие компоненты (скачивать, покупать, программировать), например для работы с электронной почтой.

Вывод

Понятия «экран», куда можно выводить данные нет. Все, что надо показать пользователю, выбрасывается в выходной поток на языке HTML. Браузер пользователя интерпретирует этот HTML. Для упрощения вывода существует объект Response . Вывод осуществляется с помощью метода Write .

Так производится запись во внутренний буфер объекта Response. Когда скрипт заканчивает работу, весь буфер выдается клиенту. Надо заметить, что клиент получает «чистый» HTML, таким образом программы на ASP не зависят от клиентского ПО, что очень важно. Если внутри выводимой строки нужно использовать кавычку, кавычка удваивается. Другие методы и свойства Response позволяют управлять выводом. Так Response.Buffer регулирует, получает ли клиент данные по мере из записи в Response, или все сразу по завершении исполнения страницы. Метод Response.Redirect перенаправляет браузер на другую страницу. Чтобы им пользоваться, нельзя до него на странице использовать Response.Write.

Программа на ASP не может явно спросить пользователя о чем-то. Она получает данные из других страниц, либо через URL. Передаваемые параметры помещаются во входной поток и доступны через объект Request . Чтобы передать переменную var в программу test.asp , надо написать:

Чтобы из программы получить значение этой переменной, надо написать:

Несколько переменных разделяется знаком &:

Кроме того, чтобы задавать параметры в URL, можно воспользоваться формами HTML. В вызывающей странице пишем так:

Так это выглядит:

При этом пользователь увидит форму из одного поля ввода (var1), в нем будет значение по умолчанию «default». Второе поле (var2) будет невидимо и будет передавать всегда фиксированное значение «var2value». Кнопка «Submit Form» завершает заполнение формы и передает все переменные на test.asp (action). Если method=»get», переменные передаются через URL (test.asp?var1=default&var2=var2value). Если method=»post», передаются вместе с запросом так, что внешне передача переменных не заметна. В вызываемой программе безразлично, какой метод изпользовался (почти). Если у вас нет специальных аргументов за метод GET, используйте метод POST.

Формы

Формы HTML используются для организации диалога с пользователем. Поддерживаются стандартные элементы управления. Все многообразие задается немногими тэгами:

  • INPUT (с параметром TYPE=)
  • SELECT
  • TEXTAREA

Описание – в документации по HTML.

Взаимосвязь между отдельными страницами

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

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

ASP, используя cookies, предоставляет программисту более простое средство — объект Session (сессия). Сессия стартует, когда новый пользователь обращается к любому asp-файлу приложения. Сессия заканчивается при отсутствии активности пользователя в течение 20 минут, либо по явной команде. Специальный объект Session хранит состояние сессии. Туда можно записывать переменные, которые доступны из любой страницы в этой сессии. Записать данные в этот объект можно просто:

Считать потом еще проще:

Сессия, таким образом, – это еще один метод передачи данных между страницами. Одна страница пишет данные в сессию, другая – берет потом оттуда.

Наряду с объектом Session существует объект Application . Если сессия создается для каждого нового пользователя, до Application существует в единственном экземпляре, и может использоваться всеми страницами приложения.

Управление приложением

Программисту предоставляется возможность реагировать на 4 события: старт/стоп приложения и старт/стоп каждой сессии. Для реализации этих событий предназначен файл global.asa , который должен располагаться в корневом каталоге приложения. Вот его примерный скелет:

Нужно «просто» вписать Ваш код на соответствующее место. Нужно заметить, что отлаживать код для global.asa довольно непросто, так как он выполняется при очень специфических обстоятельствах (к примеру при старте или остановке сервера).

Использование внешних компонент

Если на сервере установлены дополнительные компоненты, их можно использовать из ASP. Стандартные объекты (например из библиотек ADO (Connection и Recordset) и Scripting (Dictionary, FileSystemObject)) доступны всегда. Установка новой компоненты обычно состоит в копировании dll-файла в каталог на сервере и ее регистрации с помощью программы regsvr32.exe. [В COM+ используется своя процедура инсталляции объектов, это однако не влияет на использования объектов.]

Создать экземпляр объекта можно так:

Class.Object указываются в документации на компоненту. В переменной var запоминается ссылка на созданный экземпляр объекта. Когда объект не нужен, ссылку нужно обнулить с помощью команды:

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

В остальном использование компоненты зависит от самой этой компоненты.

Работа с базами данных

Из ASP можно легко и просто работать с любыми базами данных. Это делается через две промежуточные технологии: ODBC и ADO.

ODBC позволяет организовать доступ к любым базам данных через унифицированный интерфейс с помощью языка SQL. Специфика конкретных СУБД учитывается при помощи специальных драйверов БД. Такие драйверы существуют для всевозможных СУБД (в частности SQL Server, Oracle, Access, FoxPro). Поддержка ODBC обеспечивается на уровне операционной системы Windows (NT). Настройка – через Control Panel/ODBC. Базовым понятием является источник данных или data source. Источник данных – это совокупность сведений о базе данных, включая ее драйвер, имя компьютера и файла, параметры. Чтобы пользоваться базой надо создать источник данных для нее. Важно, чтобы источник данных был «системным», в отличии от «пользовательского». После этого надо лишь знать имя источника данных. [В настоящее время ODBC отступает перед натиском технологии OLE DB. На практике это однако практически ничего не изменяет. Вместо имени источника данных нужно использовать Connection String, в которой указывается имя ODBC-драйвера и все его параметры.]

ADO – это совокупность объектов, доступных из ASP, позволяющих обращаться к источнику данных ODBC [или OLE DB]. Фактически нужны лишь 2 объекта – Connection , представляющий соединение с базой данных и Recordset , представляющий набор записей, полученный от источника. Сначала необходимо открыть соединение, потом к нему привязать Recordset, потом, пользуясь методами Recordset’а, обрабатывать данные. Вот пример:

Если команда SQL не возвращает данных, recordset не нужен, надо пользоваться методом Conn. Execute (SQL_COMMAND).

Если Вы хотите вызывать хранимые процедуры сервера БД с параметрами, нужно воспользоваться объектом Command , который в свою очеред содержит объекты Parameter .

Методики программирования, советы


Описание переменных

VBScript — очень нетребовательный к программисту язык. Так он не требует описывать переменные и не содержит явных типов данных. Все переменные принадлежат одному типу Variant . Из-за отсутствия описаний могут произойти очень трудно обнаруживаемые ошибки. Одна опечатка может стоить полдня поисков.

Однако, есть возможность явно потребовать описания переменных. Для этого первой строкой в ASP-файле нужно написать Option Explicit . После этого обращение к переменной, которая не была объявлена с помощью Dim , вызывает ошибку с указанием номера строки.

Кстати, где расположены описания Dim в процедуре — совершенно не важно. Они могут стоять как до использования переменной, так и после, и даже в цикле. Видимо они отрабатываются препроцессором. Явно задать тип переменной с помощью Dim Var as Typ , как в Visual Basic, все равно нельзя.

Чередование ASP/HTML

Если нужно выдать большой кусок HTML, можно не пользоваться Response.Write. Если в asp-файле встречается кусок текста вне скобок , он трактуется просто как HTML, который надо вывести. Пример:

Обработка ошибок

Для отслеживания ошибок используется специальный объект Err . Он устанавливается в ненулевое значение, если предыдущая команда породила ошибку. Ее можно проверять с помощью If, и таким образом реагировать на ошибки. Чтобы из-за ошибки не прерывалось выполнение программы, в начале нужно включить команду

Включение других файлов

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

Важно: все includes в тексте отрабатываются до исполнения файла. Т.е. даже если include стоит внутри if, то сначала будут включены все includes во всех ветках, и только потом, во время исполнения, будет принятно решение, какую ветку выполнять. Т.е. следующий код не дает условного включения файлов:

Обработка форм

Если надо что-то спросить у пользователя и на основании этого что-то сделать, в простейшем случае создается два файла: один с формой, второй – с ее обработчиком. Обработчик выполняет все действия. Пример:

Рекурсивная обработка форм

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

Переменные HTTP

Запрос от браузера, кроме запрашиваемой страницы несет еще некоторые данные. Эти данные, например, IP-адрес клиента, доступны через специальные переменные объекта Request. IP-адрес – Request(«REMOTE_ADDR»). Другие — см.документацию (ASPSamp\Samples\srvvar.asp).

Переадресация

Очень легко написать на ASP скрипт, который будет производить некоторые расчеты, и в зависимости от результатов переадресовывать браузер на разные URL (например, подставлять нужный баннер). Делается это так:

Только надо следить, чтобы до выполнения команды redirect ничего не было записано в Response (даже коментарии HTML).

Электронная почта

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

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

Для этого существуют внешние компоненты, есть и бесплатные. Например, компонента Jmail от Dimac. Все, что для нее нужно – это адрес SMTP-сервера. Вот пример ее использования:

ASP.Net — введение, жизненный цикл и программа Hello World

ASP.Net — это платформа для веб-разработки, созданная корпорацией Microsoft . Она была выпущена в 2002 году.

Последняя версия ASP.Net — 4.6. предназначена для работы с протоколом HTTP . Это стандартный протокол, используемый во всех веб-приложениях.

ASP.Net-приложения можно создавать на различных .Net-языках . К ним относятся C # , VB.NET и J # .

Из этой статьи об ASP.Net для начинающих вы узнаете:

  • Что такое ASP.Net ?
  • О жизненном цикле ASP.Net ;
  • О жизненном цикле страницы ASP.Net ;
  • Как создать простую программу на ASP.Net .

Что такое ASP.Net?

ASP.Net — это платформа, которая используется для разработки веб-приложений. Базовая архитектура ASP.Net приведена ниже:

Архитектура .Net Framework включает в себя следующие компоненты:

  1. Язык — в .Net для разработки веб-приложений используются VB.net и C# ;
  2. Библиотека — .NET включает в себя набор библиотек стандартных классов. В частности, библиотека Web используется для разработки веб-приложений;
  3. Common Language Runtime (CLR) — общеязыковая инфраструктура или CLI . На ее основе выполняются .Net программы. CLR используется для выполнения ключевых действий. Действия включают в себя обработку исключений и освобождение ресурсов ( Garbage Collection ).

Ключевые характеристики ASP.Net , важные для начинающих:

  • Разделения дизайна и кода — позволяет легче поддерживать приложения ASP.NET . Общий тип файлов ASP.Net — aspx . Предположим, что у нас есть веб-страница с именем MyPage.aspx . К ней должен прилагаться еще один файл с именем MyPage.aspx.cs , содержащий часть кода страницы. Таким образом, Visual Studio создает отдельные файлы для каждой веб-страницы: один для дизайна, а второй для кода.
  • Управление состоянием — ASP.Net позволяет управлять состоянием. HTTP известен, как протокол, не имеющий состояний. Давайте в качестве примера рассмотрим приложение корзины интернет-магазина. Когда пользователь решил, какой товар он хочет купить, он нажимает кнопку « Добавить в корзину ».

Приложение должно запомнить информацию, касающуюся того, что пользователь решил приобрести. Это называется запоминание состояния приложения в текущий момент времени. Протокол HTTP не поддерживает состояний. Когда пользователь переходит на страницу оплаты товара, HTTP не сохраняет информацию о товарах, находящихся в корзине. Чтобы перенести их на страницу оплаты, нужно добавить код. Такая реализация может стать более сложной. Но ASP.Net позволяет управлять состояниями: запоминать товары в корзине и передавать их на страницу оплаты.

  • Кэширование — ASP.Net реализовывает концепцию кэширования. Это улучшает производительность приложения. Кэшируя те страницы, которые часто запрашиваются, их можно держать во временном хранилище. Эти страницы можно быстрее извлечь, уменьшая время отклика. Так что кэширование может значительно повысить производительность приложения.

Жизненный цикл ASP.Net

При изучении ASP.Net mvc 4 для начинающих важно знать жизненный цикл приложения. Когда запускается приложение ASP.Net , выполняется несколько этапов. Эта цепочка составляет жизненный цикл приложения:

  1. Запуск — жизненный цикл приложения ASP.NET начинается, когда пользователь выполняет запрос, направленный на веб-сервер к приложению ASP.Net . Обычно это происходит, когда пользователь переходит на главную страницу приложения в первый раз. В течение этого времени существует метод, называемый Application_Start , который выполняется на веб-сервере. В этом методе для всех глобальных переменных устанавливаются их значения по умолчанию;
  2. Создание объектов — создание на веб-сервере HttpContext , HttpRequest и HttpResponse . HttpContext — это контейнер для объектов HTTPRequest и HTTPResponse . Объект HttpRequest содержит информацию о текущем запросе, включая куки и информацию браузера. Объект HttpResponse содержит ответ, который отправляется клиенту;
  3. Создание HttpApplication — этот объект создается на веб-сервере. Он используется для обработки каждого последующего запроса, адресованного приложению. Предположим, что у нас есть два веб-приложения. Одним из них является приложение корзины, а другое — это новостной сайт. Для каждого приложения создается объект HttpApplication . Все дальнейшие запросы к каждому сайту будут обрабатываться соответствующим экземпляром HttpApplication ;
  4. Сброс — это событие вызывается до удаления экземпляра приложения. В это время можно использовать данный метод, чтобы вручную сбросить любой неуправляемый ресурс;
  5. Конец приложения — на данном этапе приложение окончательно выгружается из памяти.

Жизненный цикл страницы ASP.Net

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

В рамках этой статьи ASP.Net для начинающих рассмотрим последовательность этапов обработки страницы:

  1. Запрос страницы — когда страница запрашивается, сервер проверяет, запрашивается ли она в первый раз. Если да, то страница создается, обрабатывается ответ и отправляется пользователю. Если страница запрашивается не в первый раз, проверяется кэш. Если страница существует в кэше, сохраненный ответ отправляется пользователю;
  2. Запуск страницы — на этом этапе создаются объекты Request и Response . Объект Request используется для хранения информации, которая была отправлена при запросе страницы. Объект Response используется для хранения информации, которая отправляется обратно пользователю;
  3. Инициализация страницы — на этом этапе инициализируются все элементы управления веб-страницы;
  4. Загрузка страницы — страница загружается со всеми значениями по умолчанию. Например, если текстовое поле должно иметь значение по умолчанию, оно загружается во время page load ;
  5. Валидация — в некоторых случаях для определенных форм может быть задана валидация. Например, может запрашиваться подтверждение того, что элемент списка содержит определенный набор значений. Если условие не выполняется, должна выводиться ошибка при загрузке страницы;
  6. Повторная обработка событий — возникает, если страница загружается снова. Это происходит в ответ на предыдущее событие. Если пользователь нажимает на кнопку отправки данных на странице. В этом случае та же страница отображается снова. Тогда вызывается повторный обработчик события;
  7. Отображение страницы — происходит перед тем, как ответ отправляется пользователю. Вся информация о форме сохраняется, а результат отправляется пользователю в виде полной веб-страницы;
  8. Выгрузка — после того, как страница отправляется пользователю, больше нет необходимости хранить объекты веб-формы в памяти. Таким образом, процесс выгрузки включает в себя удаление всех ненужных объектов из памяти.

Программа «Hello World» в ASP.Net

Изучение ASP.Net web forms для начинающих лучше начать с создания простого приложение « Hello, World «. Для этого необходимо выполнить следующие шаги.

Шаг 1: Создание нового проекта в Visual Studio . После запуска Visual Studio нужно выбрать пункт меню Новый> Проект :

Шаг 2: Следующим шагом является выбор типа проекта — веб-приложение ASP.NET . Здесь нужно указать название и расположение проекта.

  1. В диалоговом окне проекта выберите вариант « Веб » в левой панели. А затем « Веб-приложение ASP.Net »;
  2. Задайте имя приложения и место его хранения;
  3. Нажимаем на кнопку « OK », чтобы Visual Studio создал проект.

Шаг 3: В следующем окне нужно выбрать тип веб-приложения ASP.NET , которое должно быть создано. Мы хотим создать простое приложение веб-формы.

  • Выберите тип проекта – « Пустой »;
  • Выберите опцию « Веб-форма ». После этого будут добавлены общие папки. Они необходимы для создания базового приложения веб-формы;
  • В конце нажимаем на кнопку « OK », чтобы Visual Studio создал приложение.

Если вы выполните указанные выше шаги руководства ASP.Net для начинающих, то получите в Visual Studio результат, продемонстрированный на рисунке ниже:

В « Solution explorer » появится приложение DemoApplication . Оно содержит два файла проекта, как показано на рисунке выше. Один из ключевых файлов проекта — это Global.asax.cs . Он содержит информацию конкретного приложения. В этом файле можно инициализировать все переменные, определив для них значения по умолчанию.

Шаг 4: Теперь пришло время добавить в проект файл веб-формы. Это файл, который будет содержать весь код проекта.

  • Кликните правой кнопкой мыши по DemoApplication ;
  • Выберите из контекстного меню пункт Добавить> Веб-форма .

Шаг 5: В следующем окне задайте имя веб-формы. В нашем случае это будет Demo .

Visual Studio автоматически создаст веб-форму Demo и откроет ее.

Шаг 6: Следующим шагом является добавление кода, который позволит отобразить « Hello World «. Это можно сделать, добавив одну строку кода в файл Demo.aspx :

  • Объект Response в ASP.Net используется для передачи информации обратно пользователю. В данном случае мы используем метод Write объекта Response , чтобы написать текст « Hello World «. Маркеры используются для добавления специфического кода ASP.net .

Если вы выполните все шаги, перечисленные в этой статье об ASP.Net mvc для начинающих и запустите созданную программу в Visual Studio , то получите следующий результат:

В окне браузера отображается фраза « Hello, World «.

Создание страниц в ASP проекте

День добрый! У меня довольно мудреная ситуация.
Необходимо при нажатии Button создать отдельную страницу на которой будет находиться таблица и кнопка.
Создание страницы как файла не проблема. Проблема в том что как только я делаю на ссылку, то при отображении страница выдает ошибку

Строка 1:
Строка 2:
Строка 3:

Т.е. в частности ругается на этот кусок Inherits=»iuse.bayerID1″
Имя_Проекта.Название_Страницы.
И это пол беды. Естественно не срабатывают процедуры например

Первые страницы на ASP.NET

Первые страницы на ASP.NET дают первоначальное знакомство с солидной технологией создания веб-приложений. Не усложняя первые шаги фреймворками WebForms, MVC, WebAPI создадим простые веб-страницы с внедренным программным кодом для двух обработчиков представлений — ASPX и Razor. Обработчики кода, называемые еще механизмами визуализации или движками, предназначены для динамического создания веб-страницы путем замены программного кода соответствующей html разметкой.

Движок ASPX — стандартная модель добавления кода на веб-страницу ASP.NET. ASPX использует блоки объявления типов, процедур и переменных и встроенный блок отрисовки html разметки . Модель добавления программного кода ASPX с некоторыми изменениями перешла в ASP.NET из первой платформы ASP.

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

Для создание первых веб-страниц будем использовать бесплатную программную среду для работы с веб-сайтами WebMatrix. На текущий момент создана 3-я версия этого, достаточного для создания профессиональных сайтов, инструмента программирования. Скачать ее можно с сайта компании Microsoft по ссылке WebMatrix. В состав программы WebMatrix входит все необходимое для создания и тестирования веб-сайтов на основе ASP.NET: редактор кода с подсветкой и IntelliSense, вебсервер IIS Express, система управления базами данных SQL LocalDB.

Сайт включает из три страницы: главная и две одинаковые страницы динамического создания таблиц на движках ASPX и Razor. Размерность таблицы можно задавать в строке запроса двумя параметрами. Надо сказать, что в принципе оба обработчика эффективно создают html разметку, но предоставляют разный комфорт работы.

Движок ASPX требует заключения всех частей и частичек программного кода в блоки вида . Типы, процедуры и переменные можно объявлять в блоке . Атрибут runat=»server» отличает данный блок от блока javascript и обозначает обработку кода в этом блоке непосредственно на сервере.

Листинг №1 Вебстраница на движке ASPX

Ниже показан код веб страницы для обработчика внедренного программного кода Razor. Обратите внимание на гармоничное слияние html кода и выражений на языке C#. Движок Razor позволяет использовать html теги непосредственно внутри программного кода: интеллектуальная составляющая обработчика ловко отделяет html разметку от программного кода C#.

Листинг №2 Вебстраница на движке Razor

Протестировать работу сайта можно несколькими способами:

  1. MS Visual Studio — Файл->Открыть веб-сайт ->Выбрать папку в которую распакован архив Запуск в браузере (или клавиша F5)
  2. WebMatrix — Открыть->Папка->Выбрать папку в которую распакован архив сайта->Выбор папки Запуск
  3. Распаковать архив в физическую папку локального или интернет сайта. Запустите сайт в браузере по его URL адресу.

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

Программирование на asp net введение. ASP — Создание страницы ASP. Пустые промежутки в сценариях

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

Я рассказывать не буду. Если вы попали в этот раздел, значит вы примерно понимаете, что вам нужно. Если не понимаете — скажу вам, что программированием на ASP .NET я не занимаюсь и никогда не буду это делать. Подсказывать вам специалиста по программированию на ASP .NET я тоже не стану. Я специализируюсь на веб-разработке , на системном администрировании. ASP .NET совсем не для этих целей создавалась. Да, на этом языке можно «написать» сайт. Но это равносильно тому, что вы купите себе пассажирский автобус, а ездить на нем будете только сами на работу.

Почему ASP .NET используют в веб?


Во многом из-за того, что продукты, созданные на этом языке программирования, идеально интегрируются в Windows (что не удивительно, ведь у них один разработчик, но это в теории). На практике очень часто происходит совсем не так. К чему всех нас приучают Windows -системы? Нам ничего не надо делать кроме как щелкать клавишами мыши. Мы не говорим операционной системе, что мы хотим сделать и как мы это хотим сделать. Мы указываем ей на это мышкой. А программисты же тоже «люди». Им тоже хочется минимизировать свои усилия для получения результата.

Для написания программного кода для ASP .NET существует множество приложений, облегчающих жизнь программиста. Те, кто в начале текущего столетия пробовали создавать сайты, наверняка пользовались программой Dreamviewer (когда он еще был продуктом корпорации Macromedia). Очень удобно, с одной стороны, открыть программу, выбрать тип создаваемого файла HTML и нажать Ok. Программа, создавая новый документ, сама формирует в нем такие важные элементы, как тип документа и его блок заголовков. А разработчику даже не нужно понимать, что там написано. Пользуясь такими программами, разработчик теряет способность мыслить, думать. Можете быть уверены, 95% разработчиков ASP .NET не смогут написать код своей программы в обычном Windows -приложении «Блокнот» (Notepad). А большинство PHP -программистов пишут свои программы именно в Блокноте и подобным ему приложениям. Многие программисты ASP .NET , создающие веб-сайты, даже не знают, какая структура должна быть у HTML-документа. Какие обязательные требования предъявляются к документам типа HTML5 и XHTML. Многие из этих разработчиков даже не поняли бы что я хотел этим сказать.

На ASP .NET хорошо писать приложения, которые должны работать в среде Windows с пользовательскими данными (например, логином, под которым пользователь авторизуется в домене или в своем компьютере). Также на ASP .NET хорошо писать приложения, которые работают с данными, хранимыми в СУБД MS SQL . Но и здесь большинство программистов ASP .NET умудряются «упрощать» себе задачу. Для построения запросов к базам данных MS SQL они используют специальные программки — query-менеджеры. И можно с уверенностью заявлять, что такие программисты понятия не имеют, как должны выглядеть запросы к базе данных.

1) Общие сведения об ASP
ASP (Active Server Pages) – это технология программирования, позволяющая создавать на Web-сервере (с IIS, 1997 г.) динамические интерактивные Web-страницы. ASP представляет собой файлы с расширением *.Asp, содержащие смесь кода HTML, кода сценариев на языке VBScript или JavaScript, средств доступа к БД (ADO), управления внешними COM-объектами и внутренних объектов ASP. Эта технология впервые была реализована в Web-сервере IIS фирмы Microsoft и фактически является интерпретируемым вариантом ISAPI-расширения сервера.

2) Встроенные объекты
ASP включает семь встроенных (не требующих создания и инициализации) объектов, используемых для пересылки HTML-страниц и данных браузеру, извлечения данных, обмена данными с сервером и т.д. среди них:
. Response – пересылает данные клиенту
. Request – обрабатывает данные, поступающие с запросом от клиента.
. Server – обеспечивает взаимодействие с сервером.
. Application – кэширует данные о приложении.
. Session – кэширует данные о браузере.
. ObjectContext – запускает транзакции и управляет их выполнением.
. ASPError – поддерживает работу с ошибками.

3) Особенности ASP
Помимо встроенных, в комплект ASP входит ряд устанавливаемых объектов, часть из которых бывает полезна, а часть незаменима. Так COM объект Dictionary незаменимый.

В отличие от CGI, ASP-сценарий выполняется как внутренний процесс сервера, кроме того, он многопоточен и оптимизирован для работы с большим количеством пользователей. ASP-сценарий начинает выполняться после того, как браузер запросит файл с расширением *.Asp с Web-сервера. Web-сервер посылает вызов встроенному в IIS ASP-механизму обработки (..\System\InetSrv\Asp.Dll), который считывает сценарий и выполняет все встретившиеся команды. В результате генерируется HTML-страница, которая посылается браузеру.

Для того, чтобы с помощью ASP сделать что-либо серьезное на Web-сервере, необходимо создать COM-объекты и использовать их службы (методы). Компоненты ASP Должны использовать модель потоков STA – каждый объект выполняется в контексте собственного потока и защищен от конкурирующих потоков.

4) Доступ к встроенным объектам
Для доступа от создаваемых COM-объектов ко встроенным необходимо использовать интерфейсы:
a) С помощью функции GetObjectContext получить указатель на интерфейс IObjectContext;
b) С помощью указателя следует получить указатель на интерфейс IGetContextProperties;
c) Вызвав метод GetProperties() и передав ему имя встроенного объекта, например, Request или Response, и вариантную переменную, можно получить через нее указатель на IDispatch интерфейс запрашиваемого объекта;
d) Далее можно вызывать методы встроенного объекта.

5) Недостатки ASP
. Программы ASP не компилируются, а интерпретируются. Следовательно, они исполняются медленнее компилируемых.
. ASP не имеет развитых средств определения типов. Все переменные имеют тип Variant (16 байт). Это удобно, но не способствует повышению скорости работы.
. Внешние файлы приходится включать (include) при каждом обращении.
. ASP трактует все объектные (object) переменные как объекты с поздним связыванием. При каждом обращении к свойству или методу запрашиваются все данные об объекте, что увеличивает время отклика.

6) Пример реализации ASP
— Необходимые настройки и установки
На сервере необходимо установить IIS (каталог WEB5), ADO, ODBC (System DSN – SLS), InterBase (FireBird). В качестве источника данных воспользуемся БД Sales.Gdb.

— Структура программы доступа к БД

Подключение к БД



Подключение к БД:

HTML-подвал:

Цикл считывания данных:


Fields.Count-1 %>


Fields.Count-1 %>

— Работа с программой
Для запуска программы следует в браузере набрать: http://localhost/web5/sales/php

7) ASP клоны и аналоги
. Chili!Soft
Chili!Soft, продукт одноименной компании, — достаточно гибкий клон ASP, способный работать на разнообразном оборудовании, операционных системах и Web-серверах. Считается, что Chili!Soft и ASP совместимы на 90%.

. Java Server Pages
Java Server Pages (JSP) – технология, напоминающая ASP, но в которой используется только язык Java в сочетании с HTML, для поддержки динамического формирования страниц на любой платформе с поддержкой Java. Аналогом COM-объектов являются объекты JavaBeans.

. Apache::ASP
Apache::ASP на основе PerlScript от Apache Perl International Project работает на множестве операционных систем, но только с Web-сервером Apache.

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

8) ASP.NET
После получения запроса сервер (в данном случае IIS) по расширению *.Aspx выясняет, что клиент запросил страницу ASP.NET. Затем IIS передает Web-страницу выделенному серверу ISAPI, aspnet_isapi.dll. Этот сервер пересылает страницу процессу Asp.Net: ..\Framework\v4..\aspnet_wp.exe. Рабочий процесс вызывает среду исполнения общего языка (Common Language Runtime – CLR), которая и берет на себя ответственность за компиляцию и выполнение кода страницы. На практике приходится подключать Dll-серверы через механизм COM-Interop, которые могут запускаться в основном процессе сервера.

Как известно, форум — это средство общения пользователей сети Интернет, и в тоже время, это большой справочник вопросов и ответов определенной тематики, и, пожалуй, ни один современный сайт не может обойтись без форума. В данной статье я расскажу, как можно быстро сделать собственный форум на ASP, причем, для этого не надо никуда ходить, искать и закачивать какие-либо дополнительные программы, и даже вовсе не обязательно быть программистом. Для этого достаточно иметь Windows 2000/XP и комплект программ MS Office, а именно — MS Access. В качестве реактора ASP-страниц, можно использовать обычный Блокнот.

Active Server Pages

ASP (Active Server Pages) — технология динамического создания Web-страниц, разработанная корпорацией Microsoft для серверов Windows NT/2000/XP/2003. Основой синтаксиса ASP является язык программирования высокого уровня — Visual Basic. Если вы ранее работали с Visual Basic, то для вас не составит особо труда разобраться с ASP. Но даже, если вы вообще никогда не встречались с программированием, вам все равно будет не сложно разобраться с ASP, поскольку, как известно, Visual Basic довольно легкий для освоения язык.

Собственный Web-сервер? Легко!

Прежде чем приступать к созданию форума, вам потребуется установить IIS (Internet Information Services) — это профессиональный Web-сервер, разработанный компанией Microsoft. В состав Windows 2000 и Windows XP входит IIS версии 5.0. По умолчанию, IIS не устанавливается, поэтому его нужно установить отдельно. Для этого нажмите «Пуск» => «Панель управления» => «Установка/удаление программ», в появившемся окне, нажмите «Установка Windows». Должно появиться окно компонентов Windows. Выберите «Internet Information Services» и нажмите «Далее».

По завершению установки, в «Панель управления» => «Администрирование», появится ярлык — «Internet Information Services», более того, теперь ваш компьютер может играть роль Web-сервера! Для проверки этого, запустите браузер (например, Internet Explorer) и в строку адреса введите: http://localhost/, после чего откроется Web-узел, созданный по умолчанию IIS. Кроме этого, получить доступ к серверу можно, если в строку адреса ввести http://имя_вашего_компьютера, либо указать локальный IP-адрес — http://127.0.0.1.

Теперь, когда собственный Web-сервер у нас есть, его нужно настроить. Запустите IIS: «Пуск» => «Панель управления» => «Администрирование» => «Internet Information Services».

В появившемся окне отображается структура каталогов вашего Web-узла, а также серверов SMTP и FTP, если данные компоненты были установлены. Разверните список «Веб-узлы» и щелкните правой кнопкой мышки по «Веб-узел по умолчанию», выберите меню «Создать» => «Виртуальный каталог». Появится окно «Мастер создания виртуальных каталогов». Нажмите «Далее», Мастер предложит указать Псевдоним виртуального каталога. Псевдоним должен состоять из латинских символов, напишите, например, «myforum.ru» и нажмите «Далее». Мастер предложит выбрать физический каталог на диске. Нажмите на кнопку «Обзор», в появившемся окне выберите «Диск C:» и нажмите на кнопку «Новая папка», имя папки может также быть любым, но во избежание недоразумений, русские символы использовать не рекомендуется. Чтобы не путаться, назовите ее, например, «first_web_page». Выберите созданный каталог и нажмите «Далее». В появившемся окне поставьте опции «Чтение» и «Запуск сценариев (например ASP)», и нажмите «Далее», а затем «Готово».

Теперь, в списке «Веб-узел по умолчанию» должен появиться только что созданный вами виртуальный каталог — myforum.ru. Вот собственно и все, больше настраивать ничего не требуется.

Сообщения форума нужно где-то хранить. Обычно для этого используют базы данных. Базы данных бывают разные, но наиболее доступны базы MS Access. Программа MS Access входит в состав MS Office. Если у вас по каким-то причинам MS Access не установлена, ее нужно установить. Для этого нажмите «Пуск» => «Панель управления» => «Установка/удаление программ», в появившемся окне найдите «Microsoft Office» и нажмите на кнопку «Изменить» (либо, «Изменить/Удалить»). В появившемся окне установите опцию «Access» и нажмите на кнопку «Обновить». Процесс установки займет несколько минут. После чего, на Рабочем столе появится иконка «Microsoft Office Access».

Запустите MS Access и создайте новую базу данных. Программа сразу предложит вам сохранить бузу данных, сохраните ее под именем «db.mdb» в созданную ранее папку — «C:\first_web_page». Далее, должно появиться окно управления базой данных.

В разделе «Объекты», выберите «Таблицы» и нажмите «Создание таблицы в режиме конструктора». Добавить следующие поля таблицы:

Закройте окно Конструктора, на предложения сохранить изменения, ответьте «Да» и укажите имя таблицы «tblMessages», на предложение создать ключевые поля, ответьте «Нет».

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

Итак, дело за малым, осталось создать asp-странички, их будет три: default.asp, show.asp и add.asp. Для этого, в папке C:\ first_web_page создайте три обычных текстовых документа (правая кнопка мышки => Создать => Текстовой документ) и переименуйте их в default.asp, show.asp и add.asp. Обратите внимание, чтобы изменить расширение файла (с txt, на asp), необходимо, чтобы в параметрах папки была отключена опция «Скрывать расширения для зарегистрированных типов файлов» (меню папки «Сервис» => «Свойства папки», вклада «Вид»).

Файл default.asp — это основной файл, который будет искать Web-сервер, при обращении к созданному вами виртуальному каталогу (http://localhost/myforum.ru). В этом файле будет отображать список тем форума. Откройте default.asp блокнотом и введите следующий код:

«параметры кэширования страницы

Response.Expires = -1
adOpenStatic = 3
«создаем объекты доступа к базе данных

«получаем путь к базе данных

«подключаемся к базе данных
Conn.Open & _
strDBPath
«создаем запрос выборки данных

«WHERE (parent_ >
«выполняем запрос в подключенной БД

Краткий обзор мастер-страниц (Master Pages) в ASP.NET 2.0

Written on 29 Ноября 2008 . Posted in ASP.NET

ОГЛАВЛЕНИЕ

При создании веб-приложений ASP.NET 1.x вам часто придется использовать пользовательские элементы управления для верхней (header) и нижней (footer) частей страниц (User Control). Пользовательские элементы управления для верхней части страницы обычно содержат начальный элемент вместе с тем содержимым, которое мы желаем отображать в верхней части каждой страницы. Пользовательские элементы управления для нижней части страницы могут содержать общую для всех страниц информацию, отображенную в нижней части, закрывающий , а также все сопутствующие тэги. Это применимо тогда, когда верстка вашего сайта может быть разделена на верхний и нижний HTML-блоки, но что делать в других случаях?

При использовании ASP.NET 1.x у вас не будет возможности создать сайт, обладающий соответствующим сценарием диалога с пользователем. Да, вы можете применить пользовательские элементы управления как описано выше, но вам придется вручную добавлять стандартные пользовательские элементы управления на каждую страницу. Более того, пользовательские элементы управления не обрабатываются в Visual Studio .NET в виде маленьких серых прямоугольников, тем самым нейтрализуются достоинства VS.NET Designer относительно способа редактирования WYSIWYG. Более практичной техникой предоставления соответствующей верстки сайта в ASP.NET 1.x является использование мастер-страниц (MasterPages). Уже не раз говорилось, что мастер-страница предоставляет средства для определения общего сценария диалога с пользователем при помощи редактируемых областей содержимого. Страница может использовать мастер-страницу, тем самым унаследовать стандартизированный сценарий диалога с пользователем, и все что останется разработчику, это настроить редактируемые области.

К сожалению, ASP.NET 1.x не предоставляет поддержку для мастер-страниц в Visual Studio .NET. Однако это было исправлено в ASP.NET 2.0. Visual Studio 2005 обладает богатой WYSIWYG поддержкой мастер-страниц. В данной статье мы ознакомимся с поддержкой мастер-страниц в Visual Studio 2005 и ASP.NET 2.0. Данная статья не углубляется во всю суть мастер-страниц. В добавок, данная статья была написана во время существования Beta 1 версии ASP.NET 2.0; скриншоты/инструкции, рассматриваемые здесь, могут отличаться от версий, выполненных в ASP.NET 2.0/Visual Studio 2005. Вы можете загрузить последнюю версию 2.0 beta по данной ссылке http://labs.msdn.microsoft.com/.

Краткое ознакомление с мастер-страницами (MasterPages)

Назначением мастер-страниц является предоставление легкого пути создания шаблона сайта. Работа с мастер-страницами подразумевает создание HTML-страницы с редактируемыми областями. Данные области, называемые местами для информации (content placeholders), представляют собой части шаблона, которые впоследствии будут настроены для каждой страницы. Область, находящаяся за данными местами, будет общей для всех страниц на сайте и не редактируется для каждой из страниц.

Например, представьте, что мы хотим создать шаблон сайта, похожий на следующее изображение.

С данной разметкой, давайте предположим, что шапка статическая и отображает один и тот же текст на всех страницах. Тем не менее, основное содержимое и область меню будут различиться. Помните, что используя ASP.NET 1.x и Visual Studio .NET единственным выходом для реализации такой идеи будет выполнение одного из следующих вариантов:

  • Реализовать необходимый HTML на каждой странице сайта
    • За: Visual Studio .NET обладает богатой средой разработки WYSIWYG.
    • Против: Если мы хотим изменить вид нашего сайта, нам придется редактировать каждую его страницу!
  • Реализовать верстку при помощи пользовательских элементов управления для верхней и нижней частей страниц (User Control), добавленных на каждую страницу
    • За: Чтобы произвести изменения на сайте необходимо изменить максимум два файла — содержащие пользовательские элементы управления для верхней и нижней частей страниц .
    • Против: Вам нужно вручную добавить данные элементы управления на все страницы; никакой поддержки WYSIWYG.
  • Использовать поддержку мастер-страниц в ASP.NET 1.x
    • За: Вы легко сможете изменить верстку вашего сайта путем редактирования только мастер-страницы ; предоставляет более гибкую верстку, по сравнению с использованием пользовательских элементов управления для верхней и нижней частей страниц .
    • Против: Никакой поддержки способа WYSIWYG во время редактирования в VS.NET.

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

Создание мастер-страницы в Visual Studio 2005

При создании нового веб-сайта в Visual Studio 2005, вы наверняка захотите сначала создать мастер-страницу. Чтобы создать новую мастер-страницу, вам необходимо просто добавить новый объект в проект (Project), который отобразит окно добавления нового объекта (Add New Item), как на изображении внизу. Находясь в данном диалоговом окне, просто выберите и добавьте объект под названием MasterPage (мастер-страница). Как вы уже могли заметить на изображении, мастер-страницы имеют расширение .master.

Заметьте, что когда вы добавляете мастер-страницу, вам необходимо выбрать для нее язык программирования (Visual Basic, C#, или J#). Как вы уже могли догадаться, мастер-страницы поддерживают код серверной стороны. Например, вы можете добавить код в обработчик события Page_Load. Это также полезно в случае, если вы хотите создать мастер-страницу, обладающую содержимым, которое не должно быть редактируемо на каждой странице, но, тем не менее, будет динамическим. К примеру, вы хотите отобразить имя авторизированного пользователя в правом верхнем углу; или же вам нужно отобразить количество авторизированных на данный момент пользователей в верхней части страницы.

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

Мастер страница может обладать несколькими областями для содержимого. Чтобы добавить новую область для содержимого в конструкторе (Designer), просто перетащите и киньте элемент управления ContentPlaceholder из Toolbox. Вы также можете добавить элемент ContentPlaceholder декларативным методом в режиме просмотра HTML. Элемент ContentPlaceholder, как и любые другие элементы управления, имеет свой собственный декларативный синтаксис, как показано ниже:

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

. Часть 1

Интерфейс к базе данных с помощью ASP

Постановка задачи

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

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

Я почти уверен, что подобная задача актуальна применительно практически к любому сайту, тем более что подобным образом (разве что без возможностей поиска, сортировки и удаления) работает большинство гостевых книг (guestbook).

Что нам понадобится

Для реализации вышеизложенной задачи нам потребуется персональный компьютер с Microsoft Windows NT или Windows 2000 (можно и Workstation, и Server), установленный IIS (Internet Information Server), какой-нибудь HTML-редактор (советую использовать Macromedia Dreamweaver), Microsoft Access (версии 95, 97 или 2000) и самый обычный текстовый редактор.

Создание и подготовка базы данных

Прежде всего создадим базу данных статей, для чего:

  • запустим приложение Microsoft Access;
  • любым из известных способов создадим новую базу данных. Назовем ее «Articles»;
  • в созданной базе данных создадим таблицу с именем, например «Articles»;
  • пользуясь инструментом «Конструктор», определим поля нашей таблицы и типы принимаемых ими значений (рис. 1);
  • заполним таблицу несколькими статьями в соответствии с созданными полями (рис. 2);
  • сохраним базу данных в файле «ArticlesDB.mdb».

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

  • запустим программу-конфигуратор источников данных (Data Sources ODBC) — Start->Settings->Control Panel->Administrative Tools->Data Sources ODBC;
  • перейдем во вкладку «System DSN» и создадим новый источник данных, нажав на «Add…»;
  • в появившемся списке драйверов выберем драйвер баз данных Microsoft Access — «Microsoft Access Driver (*.mdb)» и нажмем на «Finish»;
  • в строке «Data Source Name» зададим имя нашей базы данных, например «Articles» (это то имя, по которому мы в дальнейшем будем обращаться к ней);
  • нажмем на «Select…», выберем подготовленный нами файл «ArticlesDB.mdb» и нажмем «OK».

В результате в списке источников данных в вашей системе появится строка, представленная на рис. 3.

Оформляем главную страницу (index.asp)

С ASP работать очень просто. Для этого надо всего лишь вставить текст скрипта ASP в пару тэгов . В остальном ASP-файл ничем не отличается от HTML-файла (за исключением, пожалуй, расширения). Комментарии в HTML, как известно, вставляются в пару тэгов , в ASP же закомментировать строку можно при помощи символа ‘ (апостроф) в ее начале.

Теперь давайте разберемся. Во-первых, как вы наверняка заметили, ASP-код легко сочетается с HTML-тэгами; в этом его достоинство. Так, к примеру, строка Response.Write Link & «
» отображает на экране браузера клиента подготовленное сервером значение переменной Link и HTML-тэг
, то есть перевод строки. Особый интерес вызывает переменная rs. Для искушенных программистов сразу скажу — это указатель. Однако в ASP с целью облегчения работы начинающих указатели маскируются. Здесь не встретишь громоздких С’шных конструкций, типа «я знаю, что ты знаешь, что я знаю», или, выражаясь программистским языком, указатель на указатель… Однако сделано это так искусно, что гибкость программирования при этом не теряется, нет лишь прямой работы с указателями, а только работа с помощью специальных функций, скрывающих от программиста рутину и защищающих указатели от некорректных действий. Таким образом, выражение rs.Fields («Article»).value означает значение поля «Article» текущего значения указателя на элемент базы данных (в нашем случае статей) и содержит текст статьи, которая соответствует текущей позиции указателя на все статьи. Переход к следующему элементу базы (смещение указателя) выполняется с помощью инструкции Rs.MoveNext. В приведенном выше примере это не делается, а попросту формируется ссылка на текст статьи в виде ее названия и отображается комментарий самой первой статьи, соответствующей результату запроса. Давайте попробуем отобразить все статьи нашей базы данных на главной странице в виде HTML. И еще, обратите особое внимание на директиву:

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

Первая строчка скрипта шаблона HTML присваивает переменной TheID значение, переданное ссылкой с использованием метода Request.QueryString. Далее открывается база данных, из которой читается статья (запись), соответствующая идентификатору, переданному из главного скрипта (index.asp).

Создаем главную страницу

Таким образом в таблицу в цикле будут добавляться ряды со ссылками на статьи и с аннотациями, пока не будут отображены все статьи из базы данных. Следует обратить внимание на переменную Cnt. По окончании цикла она будет содержать число обработанных статей (рядов таблицы).

Язык структурированных запросов — SQL

Настала пора разобраться с тем, что таится за строчками:

По сути, именно за этими двумя строчками кроется работа с нашей базой данных: первая представляет собой текстовую строку с запросом к базе данных (текстовые строки в ASP записываются в двойных кавычках); вторая — содержит директиву выполнения этого запроса с одновременным присвоением результата переменной (указателю на записи в базе данных). В рамках настоящей статьи мы не будем рассматривать SQL (Structured Query Language) во всех деталях, а остановимся лишь на тех его операторах, без понимания которых дальнейшая работа будет невозможна. Для тех, кому этого покажется недостаточным, советую посетить отобранные мною сайты с детальной документацией по SQL.

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

DELETE удаляет те ряды из «Имя Таблицы», которые удовлетворяют условию, определенному в «Определении», и возвращает число удаленных рядов. Если выполнить команду DELETE без условия WHERE, то все ряды указанной таблицы будут удалены. В этом случае DELETE возвратит 0. Ключевое слово LOW_PRIORITY откладывает выполнение операции DELETE до завершения работы чтения из таблицы других клиентов.

SELECT используется для извлечения рядов (записей) из одной или более таблиц. Выражение_Select определяет столбцы таблицы, значения которых необходимо извлечь. Все ключевые поля должны быть заданы в строгой последовательности. К примеру, выражение HAVING должно следовать за любым выражением GROUP BY и до любого выражения ORDER BY.

Выражение_Select можно заменить псевдонимом (alias) с помощью ключевого слова AS. Псевдоним используется в качестве идентификатора имени столбца и может быть использован наряду с ключевыми словами ORDER BY или HAVING.

Выражение HAVING может относиться к любому столбцу или псевдониму в Выражении_Select. Оно применяется к запросу в последнюю очередь, непосредственно перед посылкой данных клиенту. SELECT . INTO OUTFILE ‘имя_файла’ заносит отобранные записи в файл. Файл создается непосредственно на сервере и не может «уже существовать» (одна из основных причин такого механизма заключается в предотвращении случайного «затирания» различных важных файлов).

INSERT используется для добавления новых записей в существующую таблицу. Допустимо две формы использования INSERT.

Первая форма — INSERT . VALUES — вставляет ряды на основании заданных значений. Вторая форма — INSERT . SELECT — вставляет ряды, выбранные из другой таблицы.

Ключевое слово LOW_PRIORITY откладывает выполнение операции до завершения работы чтения из таблицы других клиентов. Ключевое слово IGNORE в команде INSERT позволяет избегать вставки повторяющихся строк (используется в сочетании с ключевыми словами PRIMARY или UNIQUE). Для второй формы INSERT INTO . SELECT операция не может содержать выражения ORDER BY. Таблица, в которую производится добавление записей, не может присутствовать в выражении FROM части SELECT запроса потому, что запрещено производить выделение из той же самой таблицы, в которую производится вставка.

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

UPDATE обновляет поля существующей таблицы новыми значениями. Выражение SET показывает, какие поля (столбцы) должны быть изменены, и значения, которые должны быть им присвоены. Выражение WHERE, если оно есть, указывает, какие ряды должны быть обновлены. В противном случае операция применяется ко всем рядам таблицы. Ключевое слово LOW_PRIORITY откладывает выполнение операции до завершения работы чтения из таблицы других клиентов. Выражения UPDATE выполняются слева направо.

Обновляет значение поля Password в таблице WAPassword, записывая в поле, чей идентификатор ID равен 1 значение ‘passw’.

Увеличивает значение поля counter таблицы Счетчик на 1.

Удваивает поле age, а затем прибавляет 1 к его значению в таблице persondata.

Что такое Global.asa

Global.asa позволяет выполнять определенные скрипты в начале работы клиентской сессии или при инициализации IIS. Примером тому может служить простейший счетчик числа посещений сайта. Более того, допустимо использовать множественные файлы Global.asa. Однако следует помнить, что ASP-скрипт ищет самый близкий (расположенный в том же каталоге) файл Global.asa и использует именно его.

По сути, этот файл может содержать четыре скрипта: первый будет выполняться при инициализации службы IIS/PWS (Application_OnStart), второй — при остановке службы IIS/PWS (Application_OnEnd) (обычно эти первые два скрипта отрабатывают в процессе перезагрузки компьютера), и еще два скрипта выполняются дополнительно при инициализации сессии пользователя (Session_OnStart) и по ее окончании (Session_OnEnd). Данная схема очень сильно напоминает пары «конструктор-деструктор». Неспроста всякая переменная, которая должна быть использована (например, в текущей сессии), может быть инициализирована в Session_OnStart с тем, чтобы быть использованной в процессе работы сессии, она же уничтожается (обнуляется) в Session_OnEnd.

Global.asa не может содержать тэгов HTML. Недопустимо использование JavaScript. Не рекомендуется писать файл Global.asa с помощью каких-либо HTML-редакторов, для этого гораздо лучше использовать NotePad. И еще один совет: прежде чем вставлять скрипт в файл Global.asa, попробуйте его в работе в обычном ASP-файле.

Пример файла Global.asa

Добавляем новую статью (UploadForm.asp и Upload2DBS.asp)

Теперь, когда мы разобрались с SQL, можно приступать к добавлению новой статьи, причем делать мы это будем прямо с сайта, а если быть точнее — непосредственно с HTML-формы. Для этого сначала создадим файл с самой формой и определим скрипт-реакцию на подтверждение (кнопку «Publish the article!»). (Предполагается, что читатель знаком с азами построения HTML-форм, поэтому мы рассмотрим этот процесс, не вдаваясь в детали построения форм.)

Прежде всего следует уточнить задачу на этом этапе. Итак, очевидно следующее:

  • на загрузку статьи с сайта должен иметь право не каждый (следовательно, желательно предусмотреть пароль для доступа к этой функции);
  • у каждой статьи есть определенная тема (рубрика), причем она не может быть произвольной, а должна выбираться из списка;
  • список можно хранить непосредственно в HTML-файле и, каждый раз изменяя его, изменять сам файл. Это самый простой и быстрый способ;
  • однако для того, чтобы позволить динамически изменять и пополнять этот список, рекомендуется держать его в базе данных. Это позволит пользователям произвольным образом изменять его содержимое и не потребует переделки формы. Для простоты сначала рассмотрим вариант со встроенным («жестко прошитым») рубрикатором.

Как видим, передача управления осуществляется благодаря директиве ACTION=»http://localhost/Upload2DBS.asp»> в тэге формы. Тем самым указывается скрипт-ответ на реакцию пользователя после нажатия на кнопку «Publish the article!». Теперь остановимся на селекторе рубрик. Как уже отмечалось, желательно перевести его содержимое в базу данных. Для этого в нашей базе данных (файл ArticlesDB.mdb) создадим новую таблицу с именем, к примеру «Topics», в которой с помощью конструктора определим всего одно поле — «Topic» типа «текст». Далее заполним эту таблицу произвольными значениями нашего рубрикатора и отсортируем полученный список в алфавитном порядке. После чего следует заменить тэг

Теперь давайте разберемся с самой сутью дальнейшей работы. Что же должен делать наш скрипт-реакция?

Во-первых, следует позаботиться о том, чтобы все обязательные поля (а они отмечены звездочкой) были введены. Наиболее правильным способом проверки этого является скрипт, написанный на любом языке описания скриптов (например, JavaScript), который будет проверять, введены ли значения обязательных полей. Для этого достаточно добавить в определение тэга формы параметр onsubmit=»preprocess();», где preprocess() — имя функции-скрипта, который и будет осуществлять проверку. Здесь как нельзя кстати видно преимущество языков описания сценариев (JavaScript, Jscript, VBScript) перед ASP. ASP выполняется на стороне сервера, а перегружать связь «клиент-сервер» простой проверкой типа «введены ли значения», согласитесь, неправильно. Однако специально в целях обучения мы будем делать это с помощью ASP.

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

Удаляем статью (RemoveForm.asp и Rem.asp)

Было бы неплохо предусмотреть возможность удаления статьи с нашего сайта: во-первых, она может устареть, а во-вторых, в процессе ее подготовки не исключены ошибки или опечатки. Останавливаться на форме удаления статьи не будем, скажем лишь, что она содержит единственные элементы с запросом пароля и кнопкой удаления (см. файл RemoveForm.asp), и сразу перейдем к рассмотрению непосредственно процесса удаления:

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

Таким образом, в текущий скрипт передается в качестве параметра сеансовая переменная с идентификатором текущей статьи, которую необходимо удалить. Имеется в виду, что ссылка на удаление присутствует в странице с шаблоном (файл ArtTmp.htm) и удаляемая статья является текущей.

Организуем поиск (SearchForm.asp и SearchDBS.asp)

Как известно, без поиска навигация в сколь-нибудь солидной базе данных невозможна в принципе. Попробуем организовать поиск статьи по ее реквизитам, причем постараемся организовать булев (логический) поиск, соединяя отдельные значения критериев поиска с помощью логики «И/ИЛИ».

Опять же не заостряя внимание на поисковой форме (файл SearchForm.asp), перейдем непосредственно к самому процессу поиска:

Самое интересное происходит при формировании запроса к базе из составляющих:

В зависимости от введенной пользователем комбинации исходных полей из этих компонентов формируется окончательный запрос, в частности для полей «Author» и «Title». Возможны четыре случая: оба поля пусты, пусто первое поле, пусто второе поле и оба поля не пусты. Соответствующая строка SQL-запроса в каждом из этих случаев формируется по-своему. То же самое относится к состоянию селекторов рубрик статей и порядку их сортировки. При добавлении той или иной подстроки учитывается состояние «радиокнопок» И/ИЛИ и соответствующая подстрока добавляется в SQL-запрос, предваряясь логическим элементом «and» или «or» соответственно. После того как окончательный запрос сформирован, он выполняется, а результирующая страница формируется исходя из списка статей, удовлетворяющих критериям.

Полный код приведенных в статье примеров, включая файл базы данных, находится на нашем CD-ROM.

И в заключение

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

Среди множества инструментальных средств, служащих для облегчения создания ASP-приложений, выделяются два: Easy ASP © Eric Banker, 2000 и Microsoft InterDev из комплекта Microsoft Visual Studio 6.0. Первый — очень удобное, несложное и небольшое средство для быстрого создания ASP-приложений. Второй представляет собой мощный, тяжеловесный интегрированный пакет в духе Microsoft для разработки всевозможных Web-приложений.

Временная версия EasyASP 4.0 находится на нашем CD-ROM.

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

http://www.15seconds.com/issue/000210.htm — создание динамичных JavaScript-скриптов с помощью ASP и интерфейсов к базам данных

http://www.alphasierrapapa.com/iisdev/ — сайт, посвященный разработке серверов IIS с помощью ASP

http://www.websiteresources.com/ — огромная база исходных текстов всевозможных Web-программ

Примеры ASP-кода для профессионалов

http://www.asptoday.com/search.asp?category=ASP Tricks — масса полезных советов для начинающих программировать на ASP

http://www.oreilly.com/catalog/aspnut/ — замечательная книга популярнейшей серии «In a Nutshell» всемирно известного издательства O’REILLY «ASP in a Nutshell A Desktop Quick Reference». На сайте бесплатно размещена одна из глав книги

http://www.chilisoft.net/ — версии ASP для различных платформ можно скачать с этого сайта

http://www.willcam.com/sql/ — введение в структурированный язык запросов SQL

SQL Reference and Example Site — хорошо структурированный материал по SQL

Создание макета сайта с помощью эталонных страниц (C#) Creating a Site-Wide Layout Using Master Pages (C#)

В этом учебнике показано основы главной страницы. This tutorial will show master page basics. А именно, каковы главные страницы, как один создать главную страницу, каковы содержимого заполнители, как один создает страницу ASP.NET, которая использует главной страницы, как изменение главной страницы автоматически отражаются в его связанные содержимого страницы и т. д. Namely, what are master pages, how does one create a master page, what are content place holders, how does one create an ASP.NET page that uses a master page, how modifying the master page is automatically reflected in its associated content pages, and so on.

Вступление Introduction

Одним из атрибутов хорошо спроектированный веб-сайта является согласованный сайта макет страницы. One attribute of a well-designed website is a consistent site-wide page layout. Возьмем для примера на веб-сайте www.asp.net. Take the www.asp.net website, for example. Во время написания этой статьи каждая страница имеет то же содержимое, в верхней и нижней части страницы. At the time of this writing, every page has the same content at the top and bottom of the page. Как показано на рис. 1, самой верхней части каждой страницы отображается серую линию со списком сообщества Майкрософт. As Figure 1 shows, the very top of each page displays a gray bar with a list of Microsoft Communities. Под то есть логотипа веб-узла, список языков, в которых была переведена сайта и в основных разделах: Домашняя, приступить к работе, Дополнительные сведения, загрузки и т. д. Beneath that is the site logo, the list of languages into which the site has been translated, and the core sections: Home, Get Started, Learn, Downloads, and so forth. Аналогично нижней части страницы включает в себя сведения о рекламе на www.asp.net заявление об авторских правах и ссылку на заявление о конфиденциальности. Likewise, the bottom of the page includes information about advertising on www.asp.net, a copyright statement, and a link to the privacy statement.

Рис 01: Www.asp.net веб-сайт использует согласованную выглядят и чувствовать через все страницы (Просмотр полноразмерного изображения) Figure 01: The www.asp.net Website Employs a Consistent Look and Feel Across All Pages (Click to view full-size image)

Другой атрибут хорошо спроектированной узла заключается в простоте, с помощью которого можно изменить внешний вид веб-узла. Another attribute of a well-designed site is the ease with which the site’s appearance can be changed. Рис. 1 показан на домашней странице www.asp.net, начиная с марта 2008 г., но между текущей датой и публикации в этом руководстве, могло измениться внешний вид. Figure 1 shows the www.asp.net homepage as of March 2008, but between now and this tutorial’s publication, the look and feel may have changed. Возможно пунктов меню в верхней будет расширен для включения новый раздел для MVC. Perhaps the menu items along the top will expand to include a new section for the MVC framework. Или может быть совершенно новый дизайн с различные цвета, шрифты и макет будет. Or maybe a radically new design with different colors, fonts, and layout will be unveiled. Применение таких изменений на весь сайт должен быть быстрой и простой процесс, который не требует изменения тысячи веб-страницы, входящие в состав сайта. Applying such changes to the entire site should be a fast and simple process that does not require modifying the thousands of web pages that make up the site.

Создание шаблона всех страниц в ASP.NET можно воспользоваться главные страницы. Creating a site-wide page template in ASP.NET is possible through the use of master pages. По сути, Главная страница — это специальный тип страницы ASP.NET, которая определяет разметки, который является общим для всех страниц с контентом а также области, которые можно настраивать на основе содержимого страницы, содержимое страницы. In a nutshell, a master page is a special type of ASP.NET page that defines the markup that is common among all content pages as well as regions that are customizable on a content page-by-content page basis. (Страницу содержимого является страницей ASP.NET, который привязывается к главной страницы). Каждый раз, когда изменяется макет главной страницы или форматирования, все выходные данные его содержимого страницы аналогично немедленно обновляется, что делает применение изменений внешнего вида всего веб-узла, так же просто, как обновление и развертывание одного файла (а именно, главной страницы). (A content page is an ASP.NET page that is bound to the master page.) Whenever a master page’s layout or formatting is changed, all of its content pages’ output is likewise immediately updated, which makes applying site-wide appearance changes as easy as updating and deploying a single file (namely, the master page).

Это первый учебник в серии учебников, в которых рассматриваются использование главных страниц. This is the first tutorial in a series of tutorials that explore using master pages. В ходе этой серии руководств мы: Over the course of this tutorial series we:

  • Изучите создание главных страниц и их связанные содержимого страницы Examine creating master pages and their associated content pages,
  • Рассматриваются разнообразные советы, приемы и ловушки, Discuss a variety of tips, tricks, and traps,
  • Определить типичные проблемы главной страницы и изучение обходные пути, Identify common master page pitfalls and explore workarounds,
  • Как получить доступ к главной странице из страницы содержания и a обратно, см. в разделе See how to access the master page from a content page and vice-a-versa,
  • Узнайте, как указать страницу содержимого главной страницы во время выполнения, и Learn how to specify a content page’s master page at runtime, and
  • Другие дополнительные разделы главной страницы. Other advanced master page topics.

Учебных курсах предусмотрена краткая форма изложения и предоставляются поэтапные указания со множеством снимков экранов покажем процесс визуально. These tutorials are geared to be concise and provide step-by-step instructions with plenty of screen shots to walk you through the process visually. Каждое руководство доступно в C# и Visual Basic версии и загрузить полный код, используемый. Each tutorial is available in C# and Visual Basic versions and includes a download of the complete code used.

Это первая статья руководства начинается со взгляда на главную страницу основы. This inaugural tutorial starts with a look at master page basics. Мы обсудим, как функционируют главные страницы, рассмотрим создание главной страницы и связанного содержимого страниц, с помощью Visual Web Developer и см. в разделе, как изменения к главной странице немедленно отражаются в его страниц. We discuss how master pages work, look at creating a master page and associated content pages using Visual Web Developer, and see how changes to a master page are immediately reflected in its content pages. Давайте начнем! Let’s get started!

Основные сведения о том, как функционируют главные страницы Understanding How Master Pages Work

Создание веб-сайта с макетом согласованные страницы сайта требует, что каждой веб-странице создавать общие форматирования разметку в дополнение к его пользовательское содержимое. Building a website with a consistent site-wide page layout requires that each web page emit common formatting markup in addition to its custom content. Например, во время публикации руководства или форум на www.asp.net включать свои собственные уникальные материалы, каждой из этих страниц также визуализировать серии общих

Существуют различные методы для создания веб-страниц с помощью согласованного внешнего вида и поведения. There are a variety of techniques for creating web pages with a consistent look and feel. Наивный подход — просто скопируйте и вставьте распространенных макета разметки во все веб-страницы, но такой подход имеет ряд недостатков. A naive approach is to simply copy and paste the common layout markup into all web pages, but this approach has a number of downsides. Во-первых каждый раз при создании новой страницы, не забудьте скопировать и вставить общего содержимого на страницу. For starters, every time a new page is created, you must remember to copy and paste the shared content into the page. Такое копирование и вставка операций богатыми возможностями ошибка как случайно может скопировать только подмножество общих разметки в новую страницу. Such copying and pasting operations are ripe for error as you may accidentally copy only a subset of the shared markup into a new page. И ко всему, такой подход делает, заменив существующий внешний вид сайта новый настоящие боль, потому что каждый одной страницы на сайте необходимо отредактировать для использования нового интерфейса. And to top it off, this approach makes replacing the existing site-wide appearance with a new one a real pain because every single page in the site must be edited in order to use the new look and feel.

До ASP.NET версии 2.0, странице разработчики часто размещаются общие разметки в пользовательские элементы управления и затем добавить эти пользовательские элементы управления для каждой отдельной страницы. Prior to ASP.NET version 2.0, page developers often placed common markup in User Controls and then added these User Controls to each and every page. Этот подход требуется разработчик вручную добавьте пользовательские элементы управления для каждой страницы, что допускается для изменения проще всего сайта, так как при обновлении общих разметку только пользовательские элементы управления необходимо изменить. This approach required that the page developer remember to manually add the User Controls to every new page, but allowed for easier site-wide modifications because when updating the common markup only the User Controls needed to be modified. К сожалению Visual Studio .NET 2002 и 2003 — версиях Visual Studio используется для создания приложений ASP.NET 1.x — к просмотру пользовательских элементов управления в режиме конструктора, как серые поля. Unfortunately, Visual Studio .NET 2002 and 2003 — the versions of Visual Studio used to create ASP.NET 1.x applications — rendered User Controls in the Design view as gray boxes. Следовательно разработчикам страниц, при таком подходе была недоступна WYSIWYG среды разработки. Consequently, page developers using this approach did not enjoy a WYSIWYG design-time environment.

Описанные недостатки использования пользовательских элементов управления в ASP.NET версии 2.0 и Visual Studio 2005 с появлением главные страницы. The shortcomings of using User Controls were addressed in ASP.NET version 2.0 and Visual Studio 2005 with the introduction of master pages. Главная страница — это специальный тип страницы ASP.NET, которая определяет разметку сайта и регионах там, где связанные страниц с контентом определить их пользовательской разметки. A master page is a special type of ASP.NET page that defines both the site-wide markup and the regions where associated content pages define their custom markup. Как мы увидим в шаге 1, эти регионы определяются элементы управления ContentPlaceHolder. As we will see in Step 1, these regions are defined by ContentPlaceHolder controls. Элемент управления ContentPlaceHolder просто указывает позицию в иерархии элементов управления на главной странице, где могут внедряться пользовательское содержимое, страницы содержимого. The ContentPlaceHolder control simply denotes a position in the master page’s control hierarchy where custom content can be injected by a content page.

Основные понятия и функциональные возможности главных страниц не изменялась после ASP.NET версии 2.0. The core concepts and functionality of master pages has not changed since ASP.NET version 2.0. Тем не менее Visual Studio 2008 предлагает поддержку времени разработки для вложенные главные страницы, это функция, которая не было в Visual Studio 2005. However, Visual Studio 2008 offers design-time support for nested master pages, a feature that was lacking in Visual Studio 2005. Мы рассмотрим использование вложенные главные страницы в следующем учебном курсе. We will look at using nested master pages in a future tutorial.

Рис. 2 показано, как может выглядеть на главную страницу для www.asp.net. Figure 2 shows what the master page for www.asp.net might look like. Обратите внимание на то, что главная страница определяет общий макет сайта — разметку в верхней, нижней и правой части каждой страницы — а также ContentPlaceHolder в середине левом углу, где находится уникальным контентом для каждого отдельного веб-страницы. Note that the master page defines the common site-wide layout — the markup at the top, bottom, and right of every page — as well as a ContentPlaceHolder in the middle-left, where the unique content for each individual web page is located.

Рис. 02: Определяет главной страницы макета всего веб-узла, а также области редактирования на основе содержимого страницы, содержимое страницы Figure 02: A Master Page Defines the Site-Wide Layout and the Regions Editable on a Content Page-by-Content Page Basis

После определения главной страницы его можно привязать к новых страниц ASP.NET через такта флажок. Once a master page has been defined it can be bound to new ASP.NET pages through the tick of a checkbox. Эти страницы ASP.NET — страницы содержимого с именем — включают элемент управления содержимым для каждого из элементов управления ContentPlaceHolder на главной странице. These ASP.NET pages — called content pages — include a Content control for each of the master page’s ContentPlaceHolder controls. При посещении страницы содержимого через браузер модуль ASP.NET создает иерархию элементов управления на главной странице и внедряет иерархии элементов управления страницы содержимого в соответствующих местах. When the content page is visited through a browser the ASP.NET engine creates the master page’s control hierarchy and injects the content page’s control hierarchy into the appropriate places. Эта иерархия объединенный элемент управления отрисовывается и результирующий HTML возвращается обозревателю конечного пользователя. This combined control hierarchy is rendered and the resulting HTML is returned to the end user’s browser. Следовательно страницы содержимого выдает общие разметки, определенные в его главной страницы за пределами элементов управления ContentPlaceHolder и разметку страницы, определенные в свои собственные элементы управления содержимым. Consequently, the content page emits both the common markup defined in its master page outside of the ContentPlaceHolder controls and the page-specific markup defined within its own Content controls. Этот принцип показан на рис. 3. Figure 3 illustrates this concept.

Рис 03: Разметка страницы запрошенный является включенные в главной страницы (Просмотр полноразмерного изображения) Figure 03: The Requested Page’s Markup is Fused into the Master Page (Click to view full-size image)

Теперь, когда мы рассмотрели, как функционируют главные страницы, давайте рассмотрим создание главной страницы и связанного содержимого страниц, с помощью Visual Web Developer. Now that we have discussed how master pages work, let’s take a look at creating a master page and associated content pages using Visual Web Developer.

Для достижения максимально широкой аудиторией, веб-узла ASP.NET, мы создаем данной серии учебных курсов будет создан с помощью ASP.NET 3.5 с помощью бесплатной версии Visual Studio 2008, корпорации Майкрософт Visual Web Developer 2008. In order to reach the widest possible audience, the ASP.NET website we build throughout this tutorial series will be created using ASP.NET 3.5 with Microsoft’s free version of Visual Studio 2008, Visual Web Developer 2008. Если вы еще не обновлены до ASP.NET 3.5, не беспокойтесь — обсуждавшиеся в этих руководствах работают одинаково хорошо с ASP.NET, 2.0 и Visual Studio 2005. If you have not yet upgraded to ASP.NET 3.5, don’t worry — the concepts discussed in these tutorials work equally well with ASP.NET 2.0 and Visual Studio 2005. Тем не менее некоторые демонстрация приложения могут использовать новые возможности .NET Framework версии 3.5; При использовании функции 3.5, я включил примечание, которое описывает, как реализовать аналогичные функциональные возможности в версии 2.0. However, some demo applications may use features new to the .NET Framework version 3.5; when 3.5-specific features are used, I include a note that discusses how to implement similar functionality in version 2.0. Имейте в виду, что демонстрационных приложений, доступных для загрузки из каждого учебника целевого объекта .NET Framework версии 3.5, что приводит к Web.config файл, который содержит элементы конфигурации 3.5 и ссылки на пространства имен 3.5 зависящие в using инструкций в классы фонового кода страницы ASP.NET. Do keep in mind that the demo applications available for download from each tutorial target the .NET Framework version 3.5, which results in a Web.config file that includes 3.5-specific configuration elements and references to 3.5-specific namespaces in the using statements in ASP.NET pages’ code-behind classes. Короче говоря, если вы еще установка .NET 3.5 на компьютере, затем загружаемые веб-приложение не будет работать без предварительного удаления разметки 3.5 зависящие от Web.config . Long story short, if you have yet to install .NET 3.5 on your computer then the downloadable web application will not work without first removing the 3.5-specific markup from Web.config . См. в разделе разбор ASP.NET версии 3.5 Web.config файл Дополнительные сведения по этой теме. See Dissecting ASP.NET Version 3.5’s Web.config File for more information on this topic. Также необходимо будет удалить using инструкций, ссылающихся на конкретных 3.5 пространства имен. You will also need to remove the using statements that reference 3.5-specific namespaces.

Шаг 1. Создание главной страницы Step 1: Creating a Master Page

Прежде чем мы можем рассмотреть создание и использование страницах, необходимо сначала на веб-сайте ASP.NET. Before we can explore creating and using master and content pages, we first need an ASP.NET website. Начните с создания нового файла на основе системы веб-узла ASP.NET. Start by creating a new file system-based ASP.NET website. Для этого запустите Visual Web Developer и затем перейдите к меню «файл» и выберите новый веб-сайт, отображение диалогового окна нового веб-сайта (см. рис. 4). To accomplish this, launch Visual Web Developer and then go to the File menu and choose New Web Site, displaying the New Web Site dialog box (see Figure 4). Выберите шаблон веб-сайт ASP.NET, задайте раскрывающемся списке расположение в файловой системе, выберите папку для размещения веб-сайта и задать язык C#. Choose the ASP.NET Web Site template, set the Location drop-down list to File System, choose a folder to place the web site, and set the language to C#. Это создаст новый веб-сайт с Default.aspx страницы ASP.NET, App_Data папки и Web.config файла. This will create a new web site with a Default.aspx ASP.NET page, an App_Data folder, and a Web.config file.

Visual Studio поддерживает два режима управления проектом. Проекты веб-сайтов и проектов веб-приложений. Visual Studio supports two modes of project management: Web Site Projects and Web Application Projects. Проектов веб-сайтов не хватает файл проекта, тогда как Web Application Projects имитируют архитектура проекта в Visual Studio .NET 2002/2003 — они включают файл проекта и компиляции исходного кода проекта в единую сборку, которая помещается в /bin папка. Web Site Projects lack a project file, whereas Web Application Projects mimic the project architecture in Visual Studio .NET 2002/2003 — they include a project file and compile the project’s source code into a single assembly, which is placed in the /bin folder. Проекты Visual Studio 2005 изначально только поддерживаемые веб-узла, несмотря на то что модели проекта веб-приложения был снова с пакетом обновления 1; Visual Studio 2008 включает в себя оба проекта модели. Visual Studio 2005 initially only supported Web Site Projects, although the Web Application Project model was reintroduced with Service Pack 1; Visual Studio 2008 offers both project models. Visual Web Developer 2005 и 2008 выпусков, однако поддерживают только проектов веб-сайтов. The Visual Web Developer 2005 and 2008 editions, however, only support Web Site Projects. Я использую модели проекта веб-сайта для приводить свои примеры в этой серии руководств. I use the Web Site Project model for my demos in this tutorial series. Если вы используете отличных от Express edition и хотите использовать модели проекта веб-приложения, вместо этого, вы можете сделать это, но имейте в виду, что могут существовать некоторые несоответствия между отображаемые на экране и шаги, которые необходимо предпринять и снимки экрана и инструкций в этих учебниках NS. If you are using a non-Express edition and want to use the Web Application Project model instead, feel free to do so but be aware that there may be some discrepancies between what you see on your screen and the steps you must take versus the screen shots shown and instructions provided in these tutorials.

Рис. 04: Создание веб-сайта New File System-Based (Просмотр полноразмерного изображения) Figure 04: Create a New File System-Based Web Site (Click to view full-size image)

Затем добавьте главную страницу на сайт в корневом каталоге, щелкнув правой кнопкой мыши имя проекта и Добавление нового элемента и выбрав шаблон главной страницы. Next, add a master page to the site in the root directory by right-clicking on the Project name, choosing Add New Item, and selecting the Master Page template. Обратите внимание на то, что главные страницы заканчиваться расширением .master . Note that master pages end with the extension .master . Имя этой новой главной страницы Site.master и щелкните «Добавить». Name this new master page Site.master and click Add.

05 рис: Добавление именованных Master страницы Site.master на веб-сайт (Просмотр полноразмерного изображения) Figure 05: Add a Master Page Named Site.master to the Website (Click to view full-size image)

Добавление нового файла главной страницы через Visual Web Developer создает эталонную страницу со следующей декларативной разметке: Adding a new master page file through Visual Web Developer creates a master page with the following declarative markup:

В первой строке в декларативной разметке @Master директива. The first line in the declarative markup is the @Master directive. @Master Аналогична директиве @Page директива , отображаемый на страницах ASP.NET. The @Master directive is similar to the @Page directive that appears in ASP.NET pages. Он определяет язык на стороне сервера (C#) и сведения о расположении и наследования класса фонового кода на главной странице. It defines the server-side language (C#) and information about the location and inheritance of the master page’s code-behind class.

DOCTYPE И декларативной разметке страницы появится под @Master директива. The DOCTYPE and the page’s declarative markup appears beneath the @Master directive. На странице имеется статический HTML вместе с четырьмя элементами управления на стороне сервера: The page includes static HTML along with four server-side controls:

Знакомство с ASP.NET 2.0
Страница 10. Создание страницы

Создание страницы

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

Также как и в случае с шаблоном, код логики страницы создается обычным образом. Единственное отличие в том, что страница не имеет собственных объектов вроде HeadControl, поэтому нужно использовать ссылку на страницу шаблона через свойство Master.

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

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

Обработка шаблонов средой ASP.NET

Во время первого обращения к какой-либо странице, ASP.NET осуществляет поиск и компиляцию сборок для всех шаблонов в директории. Эта операция занимает некоторое время, зависящее от количества страниц шаблонов в директории, но выполняется только один раз. Поэтому, если в директории присутствуют не использующиеся шаблоны, это не приводит к потерям производительности в процессе работы приложения, единственное неудобство – дополнительное время, а компиляцию ненужных сборок для неиспользуемых страниц.
При обращении к aspx файлу страницы с заданным шаблоном оформления процесс компиляции почти ничем не отличается от обычного процесса компиляции страницы, за исключением того, что создается класс шаблона MasterPage ссылка на который доступна в свойстве Page.Master.
Затем страница проходит все те шаги, которые описаны выше в этой статье, в результате чего генерируется HTML код, который отправляется клиенту. В полученном браузером HTML коде уже нельзя определить, какая часть кода задана в шаблоне оформления, а какая часть кода определена на самой странице, поскольку элементы управления ContentPlaceHolder и Content не имеют каких-либо HTML соответствий и не порождают дополнительных тегов, кроме своего содержимого.

Поскольку шаблон является подмножеством страницы, то допустимо создавать вложенные шаблоны, указывая для шаблона в директиве Master путь к другому шаблону с помощью атрибута MasterPageFile. Для этого необходимо в основном шаблоне определить элементы управления ContentPlaceHolder, а в «дочерних» шаблонах на ряду с ContentPlaceHolder элементами определить элементы управления Content для замещения содержимого элементов ContentPlaceHolder базового шаблона.

Илон Маск рекомендует:  Что такое код onexit
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL