Asp работа с языками сценариев


Содержание

Обзор скриптовых языков программирования

Понятие о скриптовых языках

Что такое «скриптовый язык»? Это туманный вопрос, в котором содержатся два термина — «скриптовый» (scripting) и «язык» (language), произошедшие из областей, не имеющих отношения к компьютерам. Смысл, в котором эти термины используют многие люди, расплывчат. Даже такое простое слово, как «язык», легко можно использовать неверно. Например, VBScript, VB, и VBA в грамматическом отношении и в отношении практически используемой семантики являются одним и тем же языком, а VBScript в некоторой степени похож на упрощенный пиджин 1 VB.

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

Скриптовые языки быстро становятся языками общей реализации для многих областей, блистая там, где время разработчика более важно, чем время исполнения (и даже там, где важно время исполнения; например, благодаря встроенным операциям высокого уровня быстродействие программ, написанных на Python, такое же, или даже быстрее, чем программ, написанных на Java). Многие сейчас предпочитают использовать обозначение «динамические языки» вместо «скриптовые языки», ссылаясь на отсутствие выполняемого в процессе компиляции контроля типов 2 . Какое место занимают скриптовые языки в современных компьютерных кругах?

  • Скриптовые языки позволяют разработчикам сцеплять вместе различные пакеты программ, а также согласовывать полученные в результате системы.
  • Все чаще скриптовые языки сами по себе используются в качестве полноценных базовых инструментальных платформ. Например, многие крупные коммерческие Интернет-приложения сейчас программируются преимущественно на языках Perl, Python или PHP.
  • Естественно, скриптовые языки используются для автоматизации задач системного администрирования.

Не исключено, что интерпретируемые или оперативно компилируемые языки все больше и больше будут заступать на смену предварительно компилируемым языкам. Компиляцию со временем будут рассматривать просто как инструмент оптимизации (чем она собственно и является), использование которого во всех случаях едва ли разумно. Она все еще будет полезна при отправке автономного кода за пределы среды, которой вы управляете, однако, компиляция все чаще будет рассматриваться просто как способ упаковки. С другой стороны, граница между компиляцией и интерпретацией, которая всегда была немного произвольна, будет размыта еще больше. У языка Perl уже есть фаза оперативной компиляции перед интерпретацией. Будущее будет за совместимостью платформ, так что компиляторы все чаще будут нацелены на абстрактные «виртуальные машины» (как JVM у Sun или CLR у Microsoft), которые наслаиваются на аппаратные средства. На каком этапе программирования вы компилируете или интерпретируете? И имеет ли это значение?

Динамические языки в качестве доминирующих языков реализации во многих областях могут со временем перегнать Java и С++. Закон Мура 3 на стороне динамических языков.

Статические языки во время компиляции пытаются поставить все точки над «i». Долгое время разработчики полагали, что безопасность типов статических языков означает большую надежность их кодов. Однако все чаще разработчики приходят к заключению, что дело не в этом. Конечно, теоретически возможно иметь в распоряжении переменную под названием «ИмяПользователя», но обнаружить во время исполнения, что она ссылается на объект класса «ЗаказНаПоставку». Однако на практике подобное все же маловероятно.

В чем же состоит привлекательность скриптовых языков?

  • Скриптовые языки обладают более сложным инструментарием и поддерживают более прогрессивные техники программирования. Например, возможности сортировки данных в Perl встроены прямо в язык. То, что в язык встроены все основные инструменты программирования, избавляет от необходимости создавать их самостоятельно и означает, что для решения конкретной проблемы нужно писать меньше кода, что увеличивает производительность разработчика.
  • Скриптовые языки позволяют быстро выполнять доработку кода без раздражающей потери времени на ожидание окончания компиляции.
  • Количество людей, не обладающих подготовкой, которую имеют традиционные компьютерные специалисты, но могущих заняться написанием скриптов, стало на порядок больше. Иначе говоря, программированию на скриптовых языках проще научиться. Чтобы стать средним программистом на C++, необходим больший опыт работы, чем для того, чтобы стать средним программистом на PHP.

Какие можно назвать недостатки скриптовых языков?

  • Время исполнения все еще является главной проблемой. Конечно, есть области, где скорость слишком важна, чтобы можно было программировать непосредственно на скриптовом языке. Эта проблема обычно решается тем, что код тщательно выбранной части приложения (скажем, 10-30%) пишется на языке низкого уровня (таком, как C или C++); например, в Python есть развитые механизмы для того, чтобы вставить такой код (как и в большинстве других динамических языков).
  • Общей проблемой всех скриптовых языков является отсутствие хорошей интегрированной среды разработки ( > Ниже следует обзор некоторых наиболее популярных скриптовых языков.

VBScript

Visual Basic Scripting Edition (или просто VBScript) — это язык программирования от компании Microsoft, предназначенный для создания сценариев (скриптов). Он является подмножеством языка Visual Basic и широко используется при создании административных сценариев в системе Windows. VBScript по умолчанию поддерживается в Windows Script Host (WSH), который в свою очередь по умолчанию устанавливается вместе с почти любой версией Windows. Если у вас слишком старая версия Windows, вы можете скачать WSH с сайта Microsoft и самостоятельно установить его.

Синтаксис VBScript является несколько упрощенной версией стандартного синтаксиса Visual Basic. Например, в VBScript не поддерживается типизация: все переменные имеют тип Variant. Сценарии на языке VBScript чаще всего используются в следующих областях:

  • Автоматизация администрирования систем Windows.
  • Серверный программный код на страницах ASP в Web-приложениях.
  • Клиентские сценарии на Web-страницах (в основном только в браузере Internet Explorer).

JScript

JScript — это язык программирования от компании Microsoft. Он предназначен для создания сценариев и является реализацией стандарта ECMAScript. Синтаксис JScript во многом аналогичен языку JavaScript от компании Netscape. JScript по умолчанию поддерживается в Windows Script Host (WSH), который в свою очередь по умолчанию устанавливается вместе с почти любой версией Windows. Если у вас слишком старая версия Windows, вы можете скачать WSH с сайта Microsoft и самостоятельно установить его.

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

  • Клиентские сценарии на Web-страницах.
  • Автоматизация администрирования систем Windows.
  • Серверный программный код на страницах ASP в Web-приложениях.

Язык JScript получил дальнейшее развитие в виде языка JScript.NET, который ориентирован на работу в рамках платформы Microsoft ASP.NET.

JavaScript

JavaScript — это язык программирования от компании Netscape, который является реализацией стандарта ECMAScript. Microsoft выпустила похожие версии языка под названием JScript, поэтому под названием «JavaScript» часто понимается любая версия языка, в том числе и Microsoft JScript.

В большинстве случаев при упоминании JavaScript подразумевается так называемый клиентский JavaScript, интерпретатор которого встроен в Web-браузеры. Однако JavaScript изначально был разработан как универсальный язык программирования для встраивания в любое приложение и обеспечения возможности написания в нем сценариев. Например, ActionScript, язык сценариев, доступный в Macromedia Flash 5 и MX, также смоделирован в соответствии со стандартом ECMAScript.

Интерпретатор JavaScript от Netscape был выпущен в виде открытого исходного кода и доступен через организацию Mozilla (http://www.mozilla.org/js/). Mozilla предоставляет две различные версии интерпретатора JavaScript — «SpiderMonkey» (написана на С) и «Rhino» (написана на Java).

Вопреки распространенному заблуждению, кроме некоторой синтаксической схожести, языки Java и JavaScript ничего не связывает. Схожесть имен — не более, чем уловка маркетологов (первоначальное название языка — LiveScript — было изменено на JavaScript в последнюю минуту).

Python

Python (питон) — интерпретируемый, объектно-ориентированный язык программирования высокого уровня. Он поддерживает классы, модули (которые могут быть объединены в пакеты), обработку исключений, а также многонитевую обработку. Python относится к классу языков с динамической типизацией, предоставляет программисту автоматическую «сборку мусора» и удобные высокоуровневые структуры данных, такие как словари, списки, кортежи и др. Питон объединяет поразительную мощь с простым и ясным синтаксисом, продуманной модульностью и масштабируемостью. Одной из интересных синтаксических особенностей языка является выделение блоков программы с помощью отступов (пробелов или табуляций), поэтому в Python отсутствуют операторные скобки («begin/end», как в языке Паскаль или фигурные скобки, как в Си). Python — oдно из самых простых средств обучению и применению ООП. Часто является как первым (для обучения), так и последним (в череде используемых опытными программистами) языком программирования.

Python портируем и работает почти на всех известных платформах. Существуют порты под Windows, все варианты UNIX (включая Linux), Mac OS и Mac OS X, Palm OS, OS/2 и т.д. При этом, в отличие от многих портируемых систем, на каждой платформе Python поддерживает все характерные для данной платформы технологии (например, Microsoft COM/DCOM). Более того, существует специальная версия Python для виртуальной машины Java — Jython (http://www.jython.org/), что позволяет интерпретатору выполняться на любой системе, поддерживающей Java, при этом классы Java могут непосредственно использоваться из Python и даже быть написанными на Python.

Интерпретатор языка Python распространяется свободно на основании лицензии Python Software Foundation (PSF) Licence (http://python.org/psf/license.html), которая в некотором роде даже более демократична, чем GNU General Public License (http://gnu.org/copyleft/). Официальный сайт проекта языка Python располагается по адресу http://python.org/. Здесь же в разделе «Download» можно скачать свежую версию для вашей операционной системы. Русскоязычные сайты, посвященные Python: http://www.python.ru/, http://zope.net.ru/.

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

Стандартная библиотека языка Python богата и предоставляет программисту множество возможностей. Однако, если вам не достаточно возможностей стандартной библиотеки, то существует множество библиотек, предоставляющих интерфейс ко всем мыслимым системным вызовам на разных платформах; в частности, на платформе Win32 поддерживаются все вызовы Win32 API, а также COM в объёме не меньшем, чем у Visual Basic или Delphi. Кроме того, количество прикладных библиотек для Python в самых разных областях без преувеличения огромно (веб, базы данных, обработка изображений, обработка текста, численные методы, приложения операционной системы, и т. д.). Python легко расширяется языками C и C++, а на платформе Windows — также с помощью COM. Библиотека Numeric Python для работы с многомерными массивами позволяет достичь производительности научных расчётов, сравнимой с MATLAB. Кроме того, существует специальная библиотека psyco (http://psyco.sf.net/), позволяющая оптимизировать выполнение некоторых программ, после чего скорость их выполнения можно сравнивать с программами на Си. В среде коммерческих приложений скорость выполнения программ на Python часто сравнивают с Java-приложениями. Существует реализация Python для .NET (http://ironpython.com/).

Для Python существуют библиотеки доступа к СУБД (на платформе Windows доступ к БД возможен через ADO). Существуют модули расширения для Python под Windows и Unix/Linux для доступа к Oracle, Sybase, Informix и MySQL. Существует также пакет mxODBC для доступа к СУБД через ODBC, также поддерживаемый на платформах Windows и Unix.

С Python поставляется библиотека tkinter для создания кроссплатформенных программ с графическим интерфейсом. Данная библиотека является фактически стандартом для GUI-приложений, написанных на Python. Многие люди при написании GUI программ пользуются также библиотекой wxPython, основанной на библиотеке wxWidgets. Также часто используются библиотеки PyQT (PyQt) и PyGTK.

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

Tcl (Tool Command Language) — интерпретируемый язык программирования высокого уровня. Официальный сайт языка — http://www.tcl.tk/. Ссылки на русскую документацию можно найти здесь: http://www.opennet.ru/links/sml/36.shtml. Tcl ориентирован преимущественно на автоматизацию рутинных процессов ОС и крупных программных систем и состоит из мощных команд, ориентированных на работу с абстрактными нетипизированными объектами. Принципиальное отличие Tcl от командных языков ОС состоит в независимости от типа системы (когда не надо утруждать себя изучением нового командного языка) и, самое главное, он позволяет создавать переносимые программы с графическим интерфейсом (GUI).

Tcl очень часто применяется совместно с библиотекой Тк (Tool Kit). Связку Tcl/Tk по-русски иногда называют «Так-тикль». Tcl/Tk распространяется в исходных текстах бесплатно. Tcl/Tk разрабатывался одновременно как язык и библиотека. Tk — это популярный графический инструментарий, позволяющий очень быстро создавать графические программы. Варианты Tcl/Tk доступны для множества платформ (Windows, Macintosh, практически все UNIX-платформы, включая Linux). Самые последние версии и полезные расширения Tcl доступны по адресу http://www.tcl.tk/. Библиотека Tk содержит стандартизованный набор команд поддержки GUI в стиле Motif. Управляющие элементы, хранящиеся в Tk, называются виджетами (widgets). Большое количество нетиповых виджетов можно найти в Сети.

Tcl — расширяемый язык. Можно самостоятельно определять новые команды языка (как в Форте). На Tcl написана оболочка Visual Tcl, которая позволяет разрабатывать кроссплатформенное ПО для UNIX, Windows и Macintosh. Фирмой Sun разработана версия Tcl, написанная на Java — Jacl (JAva Command Language).

Ruby — интерпретируемый скриптовый язык высокого уровня для быстрого и удобного объектно-ориентированного программирования. Ruby имеет большое количество средств для обработки текстов, для решения системных задач. Ruby является полностью свободным языком программирования с возможностью копирования, модификации и распространения. Ruby перенесён на множество платформ. Он разрабатывался на Linux, но работает на многих версиях Unix, DOS, Windows 95/98/Me/NT/2000/XP, Mac OS, BeOS, OS/2, и т.д. Целью создания Ruby был настоящий объектно-ориентированный интерпретируемый язык программирования. Название отсылает к языку Perl, наследником которого является Ruby (драгоценные камни: англ. pearl — жемчужина, англ. ruby — рубин).

Ruby имеет простой и понятный синтаксис, позволяет обрабатывать исключения в стиле Java и Python, позволяет легко переопределять операторы, которые на самом деле являются методами. Ruby — полностью объектно-ориентированный язык программирования. Все данные в Ruby являются объектами в понимании SmallTalk. Например, число «1» — это экземпляр класса Fixnum. Также поддерживается добавление методов в класс и даже в конкретный экземпляр во время исполнения программы. Ruby сознательно не поддерживает множественное наследование, вместо которого существует концепция модулей. Ruby содержит автоматический сборщик мусора. Он работает для всех объектов Ruby, так что не надо заботиться о подсчёте ссылок даже во внешних библиотеках. Ruby не требует объявления переменных. Язык использует простые соглашения для обозначения области видимости. Пример: просто ‘var’ — локальная переменная, ‘@var’ — переменная экземляра (член или поле объекта класса), ‘$var’ — глобальная переменная. Ruby имеет независимую от ОС поддержку многопоточности.

Новости Ruby: http://rubynews.ru. Специализированный форум для программистов на языке Ruby: http://ruby-forum.ru/. Примеры конструкций языка: http://pleac.sourceforge.net/pleac_ruby/index.html.

PHP (пи-эйч-пи) — интерпретируемый скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. В области веб-программирования PHP является на сегодняшний день одним из самых распространённых технологий (наряду с Perl, ASP/.NET и Python) благодаря простоте, скорости выполнения и богатой функциональности. PHP распространяется свободно. Синтаксис языка похож на синтаксис С++. PHP поддерживается подавляющим большинством предоставителей сетевого хостинга.

Название «PHP» представляет собой самоповторяющую (рекурсивную) аббревиатуру и расшифровывается как «PHP: Hypertext Preprocessor», или «Personal Home Page». PHP был создан в качестве надстройки над Perl для облегчения разработки веб-страниц. За свою жизнь PHP значительно изменялся. Одной из сильнейших сторон PHP является возможность расширения ядра. Интерфейс написания расширений привлек к PHP множество сторонних разработчиков, работающих над своими модулями, что дало PHP возможность работать с огромным количеством баз данных, протоколов, поддерживать большое число API. PHP поддерживает ООП (деструкторы, открытые, закрытые и защищённые члены и методы, final-члены и методы, интерфейсы и клонирование объектов). PHP поддерживает XML.

Официальный сайт: http://php.net/. Русское руководство по PHP: http://ru.php.net/manual/ru/. Русскоязычный ресурс о PHP: http://www.phpclub.ru/.

Perl — интерпретируемый скриптовый язык программирования, один из самых распространённых в области веб-программирования. По одной из версий, Perl — аббревиатура, которая расшифровывается как «Practical Extraction and Report Language» (практический язык извлечений и отчётов). Существует также ряд других вариантов. Согласно самому красивому из них, название «perl» произошло от слова «pearl» (жемчужина).

Основной особенностью языка считаются его богатые возможности для работы с текстом, реализованные при помощи регулярных выражений (regular expressions). Перл также знаменит огромной коллекцией дополнительных модулей CPAN, находящейся по адресу http://www.cpan.org/.

Заключение

Кроме вышеперечисленных, существует множество несколько менее популярных скриптовых языков (но, возможно, не менее интересных), информацию о которых можно найти в Интернете. Вот некоторые из них: Parser (http://www.parser.ru/), JudoScript (http://www.judoscript.com/), HaskellScript (http://www.haskell.org/haskellscript/), LuaScript (http://www.luascript.thersgb.net/luascript/), NullScript (http://www.iwebthereforeiam.com/projects/NullScript.asp).

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

2 Динамическая типизация (нестрогая типизация) — приём, широко используемый в языках программирования, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной. Таким образом, в различных участках программы одна и та же переменная может принимать значения разных типов. Противоположный приём — статическая типизация.

3 Закон Мура — В 1965 году, в процессе подготовки выступления, Гордон Мур (Gordon Moore) сделал весьма знаменательное наблюдение. Представив в виде графика рост производительности запоминающих микросхем, он обнаружил любопытную закономерность: новые модели микросхем разрабатывались спустя более-менее одинаковые периоды — 18-24 месяца — после появления их предшественников, а емкость их при этом возрастала каждый раз примерно вдвое. Если такая тенденция продолжится, заключил Мур, то мощность вычислительных устройств экспоненциально возрастет на протяжении относительно короткого промежутка времени.

Asp работа с языками сценариев

Технология Microsoft ASP представляет собой совокупность серверных средств для динамического создания Web-документов. Она позволяет:

  • получать и обрабатывать на сервере данные, введенные пользователем при помощи формы;
  • динамически создавать web-документы, не зависящие ни от платформы, ни от браузера клиента;
  • обеспечивать динамический доступ к данным, находящимся на сервере, в частности, к серверным базам данных (при таком способе доступа HTML-документ автоматически изменится, как только изменятся хранящиеся на сервере данные);
  • использовать серверные компоненты, предназначенные для решения типовых задач (таких, например, как циклическая смена рекламных баннеров и др.);
  • осуществлять аутентификацию пользователя;
  • получать информацию о браузере клиента;
  • создавать и читать ключики на стороне клиента;
  • (Мы знаем, что последние две функции можно выполнить клиентскими средствами, но серверными тоже можно!)

    Что представляет собой asp-сценарий?

    Asp-сценарий — это совокупность команд на языке JScript или VBScript. В отличие от команд JavaScript-сценариев, команды asp-сценариев могут «перемешиваться» с HTML-тэгами, но каждая команда должна быть заключена в символы «&lt%, %>«.

    Первой строкой файла, содержащего asp-сценарий, должна быть директива:

    &lt%@ language=»JScript»%>

    Файл, содержащий asp-сценарий, должен иметь расширение asp.

    Код asp-сценария автоматически выполняется web-сервером при поступлении запроса от браузера клиента. Результатом работы asp-сценария будет HTML-код. По виду получившегося таким образом HTML-документа пользователь не сможет узнать был ли он сгенерирован web-сервером или физически находился на диске.

    Простой пример

    Напишем asp-сценарий, который будет динамически создавать документ с текстом «HELLO, WORLD. » (т.е. результат его работы будет выглядеть точно так же, как файл index.html, созданный нами в конце предыдущей лекции). Код этого сценария будет выглядеть следующим образом:

    Мы видим, что серверные команды, заключенные в символы &lt%, %> соседствуют с уже знакомыми нам HTML-тэгами.

    «Сердце» ASP — объекты Request и Response

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

    Язык JScript является объектно-ориентированным. 6 объектов создаются автоматически web-сервером, поэтому их разработчику не нужно заботиться об их создании; еще несколько объектов (их называют серверными компонентами) создаются средствами asp-сценариев. Для нас наиболее важными (по крайней мере, поначалу) будут два объекта:

  • Request , содержащий информацию, введенную пользователем;
  • Response , «отвечающий» за передачу информации от сервера клиенту.


    Метод Response.write()

    В предыдущем примере мы динамически сформировали фрагмент HTML-кода, присвоив его переменной s , и применив оператор: &lt%=s%> . Альтернативой такому способу вывода значения переменной ( s ) является использование метода write() объекта Response. Так, в предыдущем примере мы могли с тем же успехом написать:

    Применение метода Response.write() является основным способом динамической генерации HTML-документов.

    Методы объекта Request : Form() и QueryString()

    Как уже было сказано, объект Request «отвечает» за получение данных от клиента.

    Клиент может передать данные серверу двумя способами:

  • С помощью формы;
  • Через параметры, указанные (в гиперссылке) после знака: ? , следующего за адресом и именем сценария (например:

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

  • POST , если объем вводимых данных заранее неизвестен;
  • GET , если передается значение одной — двух переменных. (Напомним также, что связь HTML-документа, содержащего форму для ввода данных, и серверного сценария, получающего и обрабатывающего данные из этой формы, осуществляется с помощью атрибута action тэга form . Значением этого атрибута как раз и является адрес серверного сценария.)

    Если в форме используется метод POST , то чтение данных в серверном сценарии обеспечивается методом: Request.Form() ;
    если используется метод GET или значения передаются как параметры, без формы, то чтение данных в серверном сценарии обеспечивается методом: Request.QueryString() .

    Синтаксис вызова этих методов таков:

    Замечание. Поскольку при использовании метода GET передаваемая информация отображается в адресной строке, для передачи секретной информации (в частности, паролей) следует использовать метод POST.

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

    Указанный способ подходит для передачи данных из текстовых полей ( &lt input type=text. ), текстовых областей ( &lt textarea. ), полей для передачи «пароля» ( &lt input type=password. ) и скрытых полей ( &lt input type=hidden. ).

    С другими элементами форм дело обстоит несколько сложнее. Рассмотрим их подробнее.

    Элемент формы

    Обращение на сервере

    Селекторный список

    (с единственным выбором)

    Выберите день недели:

    См. ПРИМЕР Доступ к значениям, передаваемым с помощью радиокнопок или checkbox‘ов, осуществляется аналогично.

    Итак, мы научились передавать данные серверному сценарию. Возникает вопрос: «как сохранить данные на сервере?«. Ясно, что сохранить данные можно в текстовом файле или в базе данных или . Вопросам связи asp-сценария с серверными базами данных и будет посвящена следующая лекция.

    Лекция 1. Что такое ASP.NET. Инсталляция и тестовый проект.

    Введение

    Microsoft .NET Framework — это платформа для создания, развертывания и запуска Web-сервисов и приложений. Она предоставляет высокопроизводительную, основанную на стандартах, многоязыковую среду, которая позволяет интегрировать существующие приложения с приложениями и сервисами следующего поколения, а также решать задачи развертывания и использования интернет-приложений. .NET Framework состоит из трех основных частей — общеязыковой среды выполнения (common language runtime), иерархического множества унифицированных библиотек классов и компонентной версии ASP, называемую ASP.NET.

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

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

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

    Но что, если мы хотим отобразить на странице текущий курс евро или прогноз погоды? Если мы написали страницу HTML вчера, сегодня она уже устареет. Следовательно, мы должны уметь создавать динамические страницы. Динамическое наполнение страницы – это информация, содержание которой определяется тем, кому она предназначена, и которая отличается от просмотра к просмотру. Оно позволяет обеспечить двусторонний обмен информацией – от клиента к серверу и обратно.

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

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

    Существуют языки, способные динамически изменять содержимое веб-страницы. С одной стороны, это языки скриптов, выполняющиеся непосредственно у клиента. Примеры скриптовых языков — JavaScript и VBScript. Скрипты на этих языках встроены в код HTML, который сервер посылает браузеру. Сценарии, выполняемые на стороне клиента, выделяются тегами и . Браузер интерпретирует этот код и показывает пользователю результат. Сам код можно просмотреть через View Source браузера. Естественно, эти программы не могут быть большими. Например, если нужно выполнить поиск в базе данных, мы не может отправить пользователю все ее содержимое. Но скрипты могут проверить правильность запроса, введенного в форму, тогда не придется перезагружать сервер обработкой неправильных запросов. Некоторые программисты создают на JavaScript анимационные эффекты. Одна студентка intuit.ru желала найти скрипт, который бы отправлял SMS-сообщения. Увы, это невозможно. Выполняемых на стороне клиента сценариев недостаточно для создания полноценных динамических страниц. Даже если на странице используется JavaScript, анимированные картинки .gif, она называется статической.

    Динамическая веб-странице должна быть создана «на лету» программой, исполняющейся на интернет-сервере. Широко применяются механизм шлюзов CGI(Common Gateway Interface). Вначале пользователь получает статическую страницу с формой. Вам известно, что в теге FORM существует атрибут ACTION. Именно он задает адрес (URL) исполняемого приложения. На сервере находятся исполняемые файлы программ, написанных, например на C/С++ или Дельфи, которые по протоколу HTTP принимают данные из входного потока или из переменных окружения и записывают в стандартный выходной поток готовую страницу.

    Пользователю в ответ на запрос посылается HTML код, который был специально сгенерирован для него. Это может быть, например, результат поиска в поисковой системе. CGI -скрипты могут быть написаны на интерпретируемом языке (Perl) или даже скрипте командной строки. Входной и выходной потоки переназначаются. На вход интернет-сервер принимает данные, введенные пользователем. После обработки полученных данных, пользователю возвращается результирующая страница. При исполнении cgi-программа загружается в память сервера, а при завершении – удаляется. Когда 100 клиентов одновременно обращаются к серверу, в памяти создаются 100 процессов, для размещения кода каждого из которых нужна память. Это отрицательно сказывается на масштабируемости. Напомним, что масштабируемость — это возможность плавного роста времени ответа программной системы на запрос с ростом числа одновременно работающих пользователей.

    Для решения это проблемы Microsoft была предложена альтернатива – ISAPI(Internet Server Application Programming Interface)-расширения и фильтры. Вместо исполняемых файлов используются DLL – библиотеки. Код DLL находится в памяти все время и для каждого запроса создает не процессы, а нити исполнения. Все нити используют один и тот же программный код. ISAPI –приложение выполняется в процессе IIS-сервера. Это позволяет повысить производительность и масштабируемость.

    ISAPI-расширения можно создавать в Visual Studio C++ 6.0, пользуясь мастером.

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

    Скриптовые языки, исполняющиеся на стороне сервера – php и asp. Технология asp была разработана Microsoft в 90-х годах.

    Выполнение кода asp поддерживается ISAPI-расширением сервера. В диалоге конфигурации сервера IIS определяются способы обработки файлов с различными расширениями. Для обработки URL-адреса с расширением в установках сервера определен файл asp.dll. Файлы asp отправляются к нему на обработку. На вход поступает asp, а на выходе имеем поток HTML-кода.

    Пример файла asp:

    Тег сигнализирует asp, что в нем находится код, который он должен обрабатывать на сервере. Выполняется скрипт на языке, который указан в директиве Language. Оператор Response.Write записывает текст в выходной поток сервера, таким образом, он становится частью HTML-страницы, отправленной пользователю.

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

    Скриптовые языки не поддерживают строгую типизацию. Что это значит? Вы можете не описывать переменную до ее использования и можете присваивать ей значения разных типов. Это удобно, но создает почву для ошибок. Например, у вас есть переменная x1, и вы присваиваете ей значение 1, но вы сделали опечатку и по ошибке написали x2=1. Будет создана новая переменная x2, а значение x1 не изменится. В языке со строгой типизацией компилятор заметит, что переменная x2 не описывалась, и выдаст ошибку.

    В 2000 году на конференции разработчиков в качестве части новой технологии .NET Microsoft представила ASP+. С выходом .NET Framework 1.0 она стала называться ASP.NET.

    ASP.NET — это не продолжение ASP. Это концептуально новая технология Microsoft, созданная в рамках идеологии .NET. В ASP.NET заложено все, для того, чтобы сделать весь цикл разработки веб-приложения более быстрым, а поддержку более простой. ASP.NET основана на объектно-ориентированной технологии, но сохранила модель разработки asp: вы создаете программу и помещаете ее в директорию, выделенную сервером, и она будет работать. В ASP.NET появилось много новых функций, а существовавшие в asp значительно усовершенствованы.

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

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

    Платформа .NET Framework предоставляет приложениям среду выполнения, сама непосредственно взаимодействуя с операционной системой. Выше лежит интерфейс ASP.NET приложений, на котором в свою очередь базируются веб-формы (ASP.NET страницы) и веб-сервисы. Интерфейс .NET Framework позволяет стандартизировать обращение к системным вызовам и предоставляет среду для более быстрой и удобной разработки. CLR обеспечивает единый набор сервисов для всех языков.

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

    В 2004 году появилась версия ASP.NET 2.0(бета-версия, окончательный выход – конец 2005-начало 2006). Как утверждается, эта версия позволяет сократить объем кодирования на 70%. Новые возможности версии 2.0 – например, использование шаблонов дизайна страниц(Master Page), упрощенная локализация Web-приложений, более 50 новых серверных элементов управления. Цели, которые преследовали разработчики новой версии – повысить скорость разработки сайтов, масштабируемость, легкость поддержки и администрирования сайтов, скорость работы сервера. Появилась панель остнастки MMC (консоль управления Microsoft), предоставляющая графический интерфейс для управления настройками ASP.NET. Изменять настройки проекта теперь можно и через web-интерфейс. ASP.NET 2.0 поддерживает работу на 64-битных процессорах. Сервис персонализации (personalization) предоставляет готовое решение для хранения персональных данных, непосредственно характеризующих пользователя сайта, так называемого профиля пользователя (Profile).

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

    Предыдущие версии Visual Studio для проектов ASP.NET требовали наличия на машине разработчика сервера IIS. Теперь сервер встроен в среду разработки.

    ASP.NET 2.0 и Visual Studio 2005 предоставляют инструменты для легкого построения локализируемых сайтов, которые определяют предпочитаемый язык пользователя и посылают ему страницы на его языке.

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

    В ASP.NET 2.0 встроена технология автоматического обновления кэширования баз данных. Данные, полученные из базы, хранятся на сервере и он не обращается к базе для обработки повторного запроса. При изменении базы данных кэш обновляет свое содержимое.

    ASP.NET — это технология, а не язык, и позволяет программировать на разных языках – С#, Visual Basic, J#. В платформе .NET все языки равны, но некоторые равнее(Дж. Оруэлл). Вот таким языком и является С#, потому что он был специально создан для этой платформы. Программирование C# позволяет в полной мере использовать концепции, методы и паттерны объектно-ориентированной разработки. Язык Visual Basic 8.0 наделен почти теми же возможностями. Чтобы научиться ASP.NET, вам нужно знать основы HTML, а знание asp не обязательно. Оно может даже помешать, так как придется менять образ мышления. Также для понимания многих желательно знать CSS и JavaScript.

    Процесс инсталляции

    ASP .NET 2.0 можно установить на компьютерах с ОС Windows 2000 с Service Pack 4, Windows XP с Service Pack 2 и более поздними версиями Windows. Готовые сайты предпочтительно устанавливать на Windows Server 2003.

    Для разработки приложения можно использовать любую среду разработки или даже текстовый редактор, при условии, что у вас есть доступ к IIS. Если же вы хотите воспользоваться всей мощью Microsoft .NET Framework и ASP.NET и при этом, затратить как можно меньше усилий, то нужно воспользоваться средой разработки, специально разработанной для программирования ASP.NET 2.0.

    Если вы приобретете Visual Studio .NET 2005, то для работы достаточно будет только его. .NET Framework содержится на дисках. В его состав входит Visual Web Developer, который позволяет создавать профессиональные веб-приложения, а также desktop-приложения на разных языках программирования. Продукты Microsoft выпускаются на DVD, но есть набор из двух CD от «Мегасофт». Visual Studio .NET 2005 требует около 2 Гигабайт дискового пространства. При этом инсталлируется ASP.NET 2.0, среда разработки, SQL Server Express, встроенный веб-сервер, Crystal Reports со специальными элементами управления для ASP.NET 2.0.
    Бесплатно распространяемое программное обеспечение.

    Visual Web Developer 2005 Express Edition – свободно распространяемая среда предназначенный для новичков и студентов, доступная по адресу http://msdn.microsoft.com/vstudio/express/vwd/. Список отличий VWD от Visual Studio.NET 2005 невелик и для начинающих несущественен, он приведен здесь: http://msdn.microsoft.com/vstudio/products/compare/default.aspx

    Инсталлятор VWD имеет объем 2,8 Мб, но в процессе инсталляции он загрузит еще 40 Мб и 80 Мб, если захотите установить документацию. При этом также будет установлен .NET Framework с ASP.NET 2.0.

    Системные требования – процессор с минимальной скоростью 600 МГц, 128 МБ памяти и 1.3 ГБ дискового пространства. После инсталляции нужно будет зарегистрировать свою установку, это совершенно бесплатно.

    В качестве среды разработки вы можете выбрать WebMatrix. Эта программа совмещает в себе редактор и http-сервер. Ее можно загрузить на http://www.asp.net/WebMatrix.

    У WebMatrix инсталлятор размером всего 1.2 Мб, но у него меньше возможностей, чем у VWD. Но, в общем, эти среды разработки похожи. У WebMatrix есть неприятная особенность – она дает запрос на сохранение во время закрытия файлов, которые не редактировались. VWD Express позволяет одним нажатием кнопки открыть Web-интерфейс конфигурирования проекта. В VWD работает технология IntelliSense, которая автоматически предлагает возможные в данном месте элементы кода.

    Если вы решили работать с WebMatrix, вы должны установить на своей машине .NET Framework 2.0 и ASP.NET 2.0.

    Если у вас операционная система Windows Server 2003, то .NET Framework уже предустановлен. Вы можете проверить, есть ли вас директория %WINSDIR%Microsoft.NETFramework. Если нет, вы можете ее загрузить на сайте Microsoft. Последние версии находятся по адресу http://msdn.microsoft.com/netframework/downloads/updates

    На данный момент это .NET Framework 2.0, но к моменту, когда вы будете читать эту лекцию, могут появиться более новые версии. Вы можете скачать новую версию, даже если у вас уже есть другая. Они будут существовать на компьютере одновременно в поддиректориях %WINSDIR%Microsoft.NETFramework, с именем, соответствующим номеру версии. Можно сказать, что каждая версия представляет собой сборку. Система версий поддерживается для всех приложений, созданных с использованием .NET Framework.

    Там вы увидите ссылки на .NET Framework для разных архитектур компьютера.

    При желании загрузите .NET Framework Version 2.0 SDK, которая содержит наряду с .NET Framework Version 2.0 SDK документацию и примеры, которые могут оказаться полезными.

    По адресу http://asp.net/default.aspx можно найти много полезных для разработчиков программных продуктов, примеров кода и статей.

    IIS(Internet Information Server) находится на инсталляционном диске Windows 2000/XP, но предустановлен только на серверах. Его можно установить, зайдя в Control Panel->Add or Remove Programs->Add/Remove Windows Components. Компьютер попросит вас вставить инсталляционный диск.

    IIS может понадобиться, если вам нужен полноценный сервер для работы в интернет, а не просто на своем компьютере или в локальной сети или вы решили набирать текст в обычном редакторе. Для работы на своем компьютере во все эти среды разработки встроен сервер Cassini, который первоначально появился как часть WebMatrix. Символ WebMatrix – планета Сатурн, а Кассини — известный исследователь Сатурна. Предыдущие версии Visual Studio требовали наличия IIS, но теперь Cassini встроен и в Visual Studio 2005, что позволяет работать даже в Windows XP Home Edition.

    Примеры будут даваться как для WebMatrix, так и Visual Studio. Некоторые примеры требуют VWD Express или Visual Studio.
    Сообщества разработчиков.

    Через меню помощи Visual Web Developer Express можно зайти на сайты форума по ASP.NET. А вот адреса сайтов на русском языке:

    * http://www.aspnetmania.com
    * http://www.gotdotnet.ru/
    * http://www.sql.ru/
    * http://dotsite.ru/
    * http://www.rsdn.ru/

    Вы можете завести пробный хостинг на http://europe.webmatrixhosting.net/russia/default.aspx.

    Первый проект


    Вначале решите, в какой директории будете создавать страницы. Все файлы, находящиеся в одной директории, считаются единым проектом.Запустите выбранную вами среду разработки. Выберите пункт меню File-New-Website. Появится диалоговое окно. Назначьте в нем имя проекта и выберите язык программирования С#.

    По умолчанию проект создается в файловой системе. По желанию его можно создать на HTTP или FTP-сервере. Из файловой системы проект всегда можно скопировать на сервер нажатием одной кнопки в заголовке Solution Explorer.

    В проекте будет создана страница default.aspx. Выберите ее, и появится окно редактирования с закладками Design и Source. Не меняя ничего, щелкните на кнопке со стрелкой, чтобы просмотреть страницу в браузере. Появится окно, котором спрашивается, нужно ли добавить в файл web.config возможность отладки. Нажмите OK. На панели задач должен появиться значок веб-сервера. Откроется браузер, показывающий страницу по адресу http://localhost:номерпорта/Website1/default.aspx. localhost обозначает сервер, работающий на вашем компьютере. Встроенный сервер Cassini сам назначает себе номер порта – для каждого проекта он разный. Сервер IIS обычно работает через порт 80(или 8080, если тот занят), и для него номер порта указывать не нужно. При этом ваша страница будет скомпилирована.

    Пока что страница в бразере пустая.

    Но исходный код этой страницы не пустой. Программа сгенерировала код для вас.

    Технологии ASP (стр. 1 из 3)

    Список используемых сокращений………………………………………..2

    1. Общие сведения о технологиях ASP…………………..………………..5

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

    1.2 Используемые средства для программирования…….……………….7

    1.3. Модель Active Server Pages…….…………………………. ………….8

    2. История технологий ASP…………………………………….…. 9

    3. Общие сведения о технологиях ASP.NET……………………………..13

    3.1 Преимущества ASP.NET перед ASP……………………….…………13

    3.2 Процесс создание web-сайта на платформе ASP.NET…….…..….…14

    3.3 Использование дополнительных средств………….…………………15

    Список используемых сокращений

    1). ASP — ActiveServerPage

    2). CGI — CommonGatewayInterface

    3). ISAPI — Internet Server Application Programming Interface

    4). HTML — HypertextMarkupLanguage

    5). COM -ComponentObjectModel

    6). ADO — ActiveX Data Objects

    7). MTS — Microsoft Transaction Server

    8). IIS — Internet Information Server

    9). MMC — Microsoft Management Console

    10). RDO — Remote Data Objects

    11). DAO — Data Access Objects

    12). FPSE — FrontPage Server Extensions

    13). NGWS — Next Generation Web Services

    14). CLR — Common Language Runtime

    15). CMS — Content Management Software или Content Management System

    Существует два способа создания активного сервера Web на базе Microsoft Internet Information Server — с применением программ расширения CGI или ISAPI либо с помощью активных серверных страниц ASP.

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

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

    Что же касается активных серверных страниц ASP, то они значительно проще, хотя позволяют решать те же самые задачи, что и программные расширения сервера Web. Страницы ASP представляют собой текстовые файлы с конструкциями языка HTML и сценариями, составленными на таких языках программирования, как JScript и VB Script. Фактически, если пользователь уже владеет этими языками программирования, изучение технологии ASP пройдет очень быстро.

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

    Cценарии, расположенные в страницах ASP, могут быть серверными и клиентскими. Серверные сценарии выделяются специальным образом и исполняются на сервере, в то время как клиентские сценарии работают на компьютере пользователя под управлением браузера, например Microsoft Internet Explorer.

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

    1. Общие сведения о технологиях ASP

    Active Server Page – активные серверные страницы – язык программирования, используемый для создания динамических веб-страниц, обрабатываемых на стороне сервера.

    Динамические страницы – это такие страницы, содержимое которых изменяется в зависимости от действий пользователя. Напротив, статические страницы выглядят всегда одинаково, независимо от того, кто и когда ее просматривает. Первоначально все страницы были статическими, однако развитие Интернета вызвало потребность в предоставлении быстро меняющейся информации. Самые простые примеры – курсы валют, прогнозы погоды, обновляющиеся новости. Сложные – это интернет-магазины, on-line издания. Так, система Яндекс определяет географический адрес Вашего IP и предлагает поиск, карту и другие сервисы, актуальные для Вашего региона.

    С ростом потребности в динамически изменяемых web-страницах стали появляться и технологии их создания, одним из которых и стала технология ASP.

    ASP — технология от Microsoft, позволяющая легко разрабатывать приложения для World Wide Web. ASP работает на платформе операционных систем линии Windows NT и на веб-сервере IIS. ASP не является языком программирования — это лишь технология предварительной обработки, позволяющая подключать программные модули во время процесса формирования Web-страницы. Относительная популярность ASP основана на простоте используемых языков сценариев (VBScript или JScript) и возможности использования внешних COM-компонент.

    Технология ASP предполагает широкое использование серверных сценариев и объектов СОМ для создания динамических web-серверов. Средствами технологии ASP можно легко создавать интерактивные web-страницы, выполнять обработку данных введенных пользователем через формы, обращаться к базам данных.

    Наиболее интересными и полезными качествами, которыми нас привлекает технология ASP, можно считать:

    • удобный способ объединение серверных сценариев c HTML;

    • скриптовый подход (интерпретируемый язык) – т.е. файл с исходным кодом ASP одновременно является его исполняемым файлом, что упрощает процессы разработки и поддержки;

    • концепция «Session» – переменные для каждого пользовательского соединения, как удачное решение вечной проблемы stateless-протокола HTTP;

    • возможность организации распределенной архитектуры на основе инфраструктуры COM, DCOM, COM+. Дополнительные возможности, предоставляемые MTS – такие, например, как контекст объектов, пул и т.д.;

    • удобныйнаборобъектов-утилит: Server, Application, Request, Response, Session, ObjectContext.

    Пользователь не может каким-либо образом получить содержимое страницы ASP, так как web-сервер отправляет ему не саму страницу, а результат ее интерпретации, таким образом, логика работы страницы скрыта от пользователей. Для просмотра требуется www-браузер, такой как Netscape Navigator, или Microsoft Internet Explorer.

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

    Использование ASP не требует специфичных браузеров. Все ASP-скрипты запускаются и выполняются на веб-сервере, причем браузер получает только результирующие HTML-файлы. Microsoft Internet Information Server, начинаясверсии 3.0, поддерживает Active Server Pages.

    Функционирования ASP имеет следующую последовательность. Клиент запрашивает ASP-страницу на веб-сервере. Сервер принимает запрос и начинает его обрабатывать. По расширению файла («.asp») определяет, что данный файл содержит ASP-скрипт и начинает анализировать его содержимое, последовательно интерпретируя и выполняя вставки ASP-кода. ASP-код, в свою очередь, может содержать обращения к различным источникам данных, осуществлять обработку полученных данных и добавлять содержимое генерируемой страницы. В результате формируется «обычная» HTML-страница (уже не содержащая ASP-кода), которая и отправляется обратно клиенту.

    Внешне ASP функционирует также как CGI. При передаче данных от клиентской формы серверу, последний кодирует входные данные, а сценарий CGI декодирует их, а затем функционально обрабатывает и возвращает выходные данные браузеру.

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

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

    1.2 Используемые средства для программирования

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

    1.3 Модель ActiveServerPages

    В ASP процесс создания веб-приложений, как уже говорилось выше, значительно упрощен по сравнению с другими приложениями. Достаточно знаний какого-либо языка сценариев, например, VBScript или JavaScript. ASP может использовать сторонние COM-объекты (ActiveX для работы с файлами, отправки писем …), в т.ч. самой операционной системы Windows. Это значительно расширяет возможности ASP-страниц.

    Рисунок 1. Схема модели ASP

    Когда клиент запрашивает ASP-файл, веб-сервер отправляет ASP-файл в обработчик ASP (файл asp.dll), где код сценария выполняется на стороне сервера и преобразуется в HTML-код. Затем, полученный HTML-код отправляется веб-клиенту. Простое копирование серверных сценариев клиентом невозмо­жно, поскольку обозревателю передаются только результаты их выполнения.

    2. История технологий ASP

    Когда технология ASP появилась на свет в ноябре 1996 года, она сразу же была оценена как удобный способ создания динамических Web-страниц. В то время широко использовались стандарт CGI и язык Perl, но ASP быстро завоевала популярность по четырем причинам:

    Языки сценариев для веб-программирования
    Мини-учебник по PHP

    Дайте мне хороший сценарий, и я сверну горы.

    Зачем создателю сайта нужны языки серверных сценариев?

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

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

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

    Обычно люди приходят к необходимости создания динамических сайтов, когда разросшийся объем хранящейся информации или желание часто ее обновлять требуют использования того, что на программистском жаргоне называют «движком» сайта, а официально — CMS (content management system), то есть системой управления содержимым. Создание такого движка невозможно без привлечения сценариев, выполняемых на стороне веб-сервера. Именно эти сценарии как помещают содержимое на сайт, так и формируют внешний вид страниц «на лету».

    Как работают сценарии? Языки сценариев

    Что происходит, когда вы открываете в браузере (Internet Explorer, Opera, FireFox или любой другой) страницу какого-нибудь сайта?

    • браузер, он же веб-клиент, запрашивает страницу, обращаясь к веб-серверу (чаще всего это Apache, реже — IIS).
    • если веб-сервер обнаруживает на запрошенной странице обращения к сценариям, то обращается к их интерпретаторам, которые выполняют сценарии и формируют на их основе или всю страницу, или отдельные ее фрагменты.
    • И, наконец, веб-сервер отсылает сформированную страницу на клиентскую сторону, то есть в окно браузера посетителя сайта.


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

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

    Исключительная же популярность языка PHP связана с тем, что, в отличие, скажем, от Perl, он позволяет внедрять текст сценария непосредственно в HTML-текст страницы и выполнять сценарий в контексте основного процесса обработки HTML.

    История создания PHP
    Самая лучшая книга по PHP на русском языке.

    В 1994 году датский программист (ныне живущий в Канаде) Расмус Лердорф (Rasmus Lerdorf) написал набор скриптов для обработки шаблонов HTML-документов. Вначале этот инструментарий был написан им на Perl, но когда возможностей этого языка по функциональности и быстроте перестало хватать, Лердорф создал на языке C собственный интерпретатор шаблонов и назвал его PHP/FI (Personal Home Page / Forms Interpreter — «Личная домашняя страница / Интерпретатор форм»). Поскольку коды нового инструмента были открыты и свободно распространяемы, это привело к их быстрому расширению и продвижению силами энтузиастов из различных стран. В 1997 году вторую версию интерпретатора PHP/FI 2 использовали около 50 тысяч (около 1% на тот момент) интернет-сайтов мира.

    Настоящая же революция в PHP произошла в 1998 году, когда два израильских программиста Энди Гутманс (Andi Gutmans) и Зив Сураски (Zeev Suraski) из израильского института Технион переписали код с нуля, посчитав существовавшую на то время версию не пригодной для разработки приложений электронной коммерции, над которыми они тогда работали. Так появился PHP 3 — почти тот PHP, который мы знаем сегодня: язык с модульной структурой, позволяющей расширять возможности ядра независимо работающими программистами со всего света. В третьей версии появилась поддержка огромного множества платформ, веб-серверов, интернет-протоколов и т.п. Кроме того, в языке сильно изменился синтаксис. Он стал более удобным, более мощным и, что особенно важно, объектно-ориентированным.

    Это интересно: появление настолько переработанной версии привело к новой расшифровке аббревиатуры языка. Новая, ставшая теперь уже официальной расшифровка — «PHP: Hypertext Preprocessor» — является рекурсивной, то есть ссылающейся на саму себя. Есть, впрочем, и ряд неофициальных расшифровок. Так, из-за легкости изучения и не всегда высокой квалификации разработчиков аббревиатуру иногда расшифровывают иногда как «People Have Problems».

    Победное шествие PHP 3 по всемирной паутине было впечатляющим: уже к концу 1998 года он использовался в 10% веб-сайтов интернета. С тех пор возможности PHP и его распространенность выросли многократно. На веб-серверах сегодня иcпользуются в основном PHP 4 (его поддержка прекращена совсем недавно) и PHP 5, а на стадии тестирования находится PHP 6.

    Немного практики

    Как PHP-сценарии встраиваются в HTML-страницу?

    Существует несколько синтаксически различных конструкций для внедрения PHP-кода в HTML-текст страницы. Самый ходовой из них:

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

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

    Журнал « Лучшие компьютерные игры »

    вместо блока PHP-сценария в ходе серверной обработки возникнет HTML-строка.

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

    Журнал «Лучшие компьютерные игры»

    Хотя PHP-сценарии и можно встраивать в HTML-страницы, они могут существовать и автономно, в отдельных файлах. Это очень удобно для создания больших сайтов – общий код хранится в одном экземпляре. Что самое важное – при этом и ошибки исправлять приходится только в одном месте.

    Комментарии

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

    Журнал « Лучшие компьютерные игры »

    » ); // комментарий до конца строки (стиль С)

    Многострочный комментарий в стиле С.

    В нем можно поместить не ограниченный по размеру текст

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

    Переменные и константы

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

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

    Скалярные переменные

    Основные типы скалярных переменных в PHP — это логические величины (принимающие значения «истина» или «ложь»), целые и вещественные числа, а также строки. Явно указывать, что же именно хранится в переменной, не обязательно, хотя и можно. Тип устанавливается во время присваивания переменной первого значения, но в ходе выполнения программы может много раз измениться. Вот так можно объявить переменные и присвоить им начальные значения:

    $sql = «SELECT * FROM goods» ;

    Массивы

    Массив — это набор нумерованных значений. Нумерация всегда начинается с нуля. Существуют различные способы инициализации массивов. Вот один из них:

    $languages = array ( «PHP» , «Perl» , «Python» );

    Здесь создан массив из трех строковых элементов. Если мы выполним команду echo($languages[2]), то в браузер будет выведен элемент «Python» (нумерация ведь начинается с 0!).

    Этот же массив можно было создать и иначе:

    Нумерация при этом будет произведена автоматически, но строго последовательно.

    Константы

    Константы используются для задания постоянных величин. Они объявляются в РНР при помощи функции define():

    Здесь объявлены две целочисленные константы: MIN_NUM и MAX_NUM. Основное отличие их от переменных в том, что значения им не присваиваются в ходе выполнения программы, а подменяют их символические обозначения еще до начала ее выполнения.

    Простые операторы

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

    При работе со строками важную роль играет оператор конкатенации, сшивающий несколько строк в одну. Роль плюса в арифметических операторах здесь играет точка «.». Так, в следующем примере три слова, хранящиеся в переменных $s1, $s2, $s3, будут сшиты в одну фразу, а между ними будут вставлены пробелы.

    echo ($s1 . » » . $s2 . » » . $s3);

    // в браузере появится строка «Лучшие компьютерные игры»

    Управляющие операторы

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

    Условный оператор if. elseif. else

    Рассмотрим условный оператор на примере, проверяющем (если уж база посвящена товарам) цену, которая для них указана.

    if ($price «Очень дешевый товар» );

    > elseif ($price > 100) <

    echo ( «Дорогой товар» );

    echo ( «Товар по разумной цене» );

    Разумеется, условий elseif мы можем написать сколько угодно.

    Операторы цикла while и for

    В отличие от условного оператора if, который проверяет каждое условие один раз и действует в зависимости от истинности или ложности результата, оператор while продолжает выполняться, пока его условие остается истинным. Итак, в приведенном ниже примере переменная $s накапливает в себе сумму всех натуральных чисел от 1 до 100:

    while ($i style=»color:#990000″> «Сумма = $s» );

    Начальное значение суммы $s устанавливается в 0, а натуральное число $i принимается за 1. В ходе циклического выполнения сумма увеличивается на текущее натуральное число, после чего само это число увеличивается на 1 (оператор: $i++). Так продолжается до тех пор, пока $i не превысит 100 и, как следствие, оператор цикла не прекратит выполнение заложенных в него действий из-за нарушения своего условия.

    Для выполнения той же самой задачи можно было использовать и цикл for. Запись оператора выглядит при этом проще:

    for ($i=1; $i «Сумма = $s» );

    Три выражения в цикле for, разделенные точкой с запятой, несут следующую смысловую нагрузку. Первое из них — инициализирующее. Второе определяет условие выхода из цикла (аналогично тому, как это делается в while). Третье условие определяет способ наращивания переменной цикла $i (в конце каждого набора действий она увеличивается на 1).

    Функции

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

    Строится простая собственная функция с двумя входными параметрами примерно так:

    function some_func($argument1, $argument2) <

    // тут расположен собственно текст функции

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

    • date() — возвращает текущие дату и время сервера;
    • substr(строка, стартовая_позиция, [длина]) — возвращает часть строки с указанной начальной позиции и (не обязательно) указанной длины;
    • strlen(строка) — возвращает количество символов в строке;
    • die(сообщение) — выводит сообщение, после чего прерывает выполнение сценария;
    • header() — выводит HEADER (заголовок) HTML-страницы;
    • mail(«адрес»,»тема»,»сообщение»,»от кого») — отправляет письмо с сервера (если на сервере все настроено);
    • include(имя_файла) — вставляет в текст одного сценария фрагмент текста, хранящийся в отдельном файле.

    Как осуществляется обратная связь с сайтом через формы?

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

    Клиентская отладка сценариев в ASP.NET.

    Каждый из нас хорошо знает проблемы, связанные при отладке кода сценария на стороне клиента. Эта статья рассказывает о различных новых методах и советах по устранению неполадок, которые помогают эффективно сделать отладку кода сценария на стороне клиента в Visual Studio 2005. Сценарий клиентского кода означает, что он может быть VB Script или J # скрипт или Java-скрипт.

    Клиентский сценарий вложен в ASPX страницу. HTML-файлы или внутрь . JS файлов. Вообще, сценарий на стороне клиента загружается из клиентского приложения,такого как Internet Explorer, работающего на локальном компьютере.
    Есть два способа, в которых можно отлаживать сценарии на стороне клиента в Visual Studio 2005. К ним относятся:
    Visual Studio. NET IDE
    Microsoft Script Editor
    Настройка машины для отладки клиентских сценариев
    Прежде чем мы начнём отлаживать код сценария на стороне клиента,нужно сделать некоторые настройки :
    Включить клиентскую отладку сценариев в Internet Explorer. Для этого перейдите в меню Сервис -> Свойства обозревателя и на вкладке Дополнительно убедитесь, что отладка сценариев отключена.

    Включить отладку сценариев в IE.

    Visual Studio. NET IDE
    Теперь вы можете сделать отладку кода сценария на стороне клиента непосредственно в среде Visual Studio 2005. Это стало возможным благодаря мощной отладке, которая позволяют отлаживать управляемый код, код сценария, T-SQL код и машинный код. Visual Studio 2005 поддерживает 64-разрядные отладки локально или удаленно. Теперь вы можете сделать отладку сценариев Java размещённых в IE. Отладчик Visual Studio предоставляет расширенные функции, такие как советы по новым данным, визуализаторы, которые позволяют просматривать содержание комплексных переменных и типы данных. Давайте посмотрим, новые возможности на примере проекта Visual Studio 2005.
    Мы создаём веб-приложение ASP.NET и используем Java Script для обработки результатов.
    Открыть Visual Studio 2005 Окружающая среда и в меню Файл проект с открытым образцом для этого учебника.
    Нажмите клавишу F5 (Начать отладку), чтобы начать отладку. В IEXPLORE.EXE прилагается автоматический отладчик. Мы используем IE для загрузки сценариев так как они прилагаются в IEXPLORE.EXE.

    Листинг функции JavaScript показывает, включенные в образец страницы ASP.NET. Вы всегда должны включать ключевое слово «Debugger » в качестве первой строки кода сценария Java 5если вы хотите использовать для отладки Visual Studio 2005. Это ключевое слово автоматически вызывает отладчик Visual Studio на стороне клиента.Как только мы запускаем указанный код выше, мы получаем выход смотрите на скриншоте ниже.

    Выход листинга приветствия программы.
    Вернуться в Visual Studio Чистая окружающая среда и нажмите кнопку Отладка -> Другие окна-> Script Explorer и установите точки останова в желаемом месте.
    Снова вернуться к IE. Дайте значения имя и фамилию и нажмите кнопку приветствие. Вы можете увидеть управление возвращается в сценарий Explorer, как показано ниже в листинге. Используйте клавишу F10, чтобы перешагнуть через каждую строку кода. Кроме того, можете использовать клавишу F11, чтобы войти в каждую строку кода. В сценарии Explorer, вы можете установить новые точки останова и использовать местные Окна для проверки значения локальных переменных в сценарии. Immediate Window оценивает значения переменных.
    Чтобы вызвать немедленно окно нажмите Debug-> Windows-> Интерпретация. Аналогично окна вызываются через кнопку Отладка-> Windows-> Локальные

    Сценарий Explorer в действии.
    Вы можете также использовать команду Window для выполнения команды сценария кода переменных, таких как команда Debug.Print. Чтобы вызвать окно команды нажмите кнопку-> Вид-> Other Windows-> Окно «Команда». Также доступен ряд других функций, таких как строение окна, окна стека вызова. Вы можете наблюдать в окне команд ниже в листинге.


    Microsoft Script Editor.

    Microsoft Script Editor (MSE) является мощным инструментом, который предназначен для отладки Java-скриптов, используя Internet Explorer в качестве сервера сценариев. Он поставляется как бесплатный компонент Office XP и Office 2003. Это привлекательный вариант, когда всё, что вам нужно, для отладки Java-скриптов для IE и у вас нет Visual Studio. NET установленного на вашей машине.Это Вы можете проверить на МФБ на вашей машине, нажав кнопку Просмотр опции IE и посмотреть, можете ли Вы найти вариант отладчика сценария.
    Давайте использовать тот же пример, чтобы продемонстрировать отладку кода скрипта на стороне клиента используя MSE.
    Переход на том же примере, откройте страницу в Internet Explorer и нажмите кнопку Открыть, как показано ниже в листинге.

    IE с MSE .

    После нажатия кнопки Open можно увидеть диалоговое окно Just-In-Time Debugger.

    Нажмите Да для использования МФБ и вы можете увидеть ниже перечисленные диалоговые окна.

    Нажмите кнопку ОК и вы можете видеть окружающую среду Microsoft Script Editor который открывает MSE и предлагает почти такой же вариант, как IDE Visual studio.Net и другие аналогичные характеристики, как местные окна и окно команд. Вы можете использовать те же клавиши F10, чтобы перешагнуть через код.

    Microsoft Script Editor IDE.

    Кроме того, вы также можете использовать положение линии, как это сделано в сценарии Java. Debugger, отладчика ключевого слова,который будет создавать точки останова. Когда этот рубеж запущен, ваш МФБ начнёт выполнять коамнду и вы увидите сообщение об ошибке «необработанное исключение» в сценарии Сценарий Breakpoint .

    Just-In-Time Debugger.

    Выберите Да и остальные действия такие же, как описано в первом методе работы с ММП. Управление передается Script Editor IDE.

    Microsoft Script Editor IDE.

    В итоге вы получаете после успешной отладки это сообщение в качестве вывода.

    Когда вы закончили отладку убедитесь, что браузер не ждёт отладку. Просто нажмите F5, чтобы продолжить или же явно закрыть отладчик. Нажмите кнопку «Да», когда он предлагает закрыть отладчик. Таким образом, вы можете пердотвратить компьютер от зависания. (Это случилось со мной!) При использовании MSE.
    Встроенный отладчик Visual Studio 2005 является очень мощным и богатым возможностями. Теперь вы можете сделать отладку кода сценария на стороне клиента с той же гибкостью, которую вы использовали отладку кода на стороне сервера. Вы можете сказать до свидания неуклюжим оповещениям , занятых в отладке сценариев Java. Microsoft Script Editor является еще одним привлекательным вариантом для отладки,имеющим не меньше возможностей по сравнению с отладчиком Visual Studio 2005.

    . Часть 1

    Ты никогда не будешь знать достаточно,
    если не будешь знать больше, чем достаточно.
    Уильям Блейк

    Введение

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

    Настоящая статья — попытка собрать воедино весь инструментарий, необходимый и достаточный для построения простейшего Web-интерфейса к базам данных. И хотя для простоты изложения и понимания материала рассматриваются примеры по работе с базами данных MS-Access, тем не менее, освоив их, для читателя не составит труда перейти к созданию аналогичных интерфейсов к другим базам.

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

    Немного истории

    Итак, проведем небольшой экскурс в историю развития и становления средств разработки содержания (content) и поведения (behavior) Всемирной паутины.

    HTML (HyperText Markup Language)

    HTML — язык разметки гипертекста — является приложением языка SGML (Standard Generalized Markup Language) — стандартный обобщенный язык разметки. Средствами HTML задаются синтаксис и размещение специальных встроенных указаний, в соответствии с которыми браузер отображает содержимое документа (текст, графика, мультимедиа, гиперссылки).

    Базовый синтаксис HTML определяется стандартом HTML.

    Говоря другими словами, HTML — язык компоновки документов и спецификации гиперссылок, используемый для кодировки документов в WWW.

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

    С течением времени страницы Всемирной компьютерной сети постепенно начали «оживать», если выражаться пользовательской терминологией, а по сути произошел переход от структурного предъявления гипертекстовой информации к событийному. Если быть точнее, то переходом это в полной мере называть нельзя, попросту HTML обогатился средствами динамической интерпретации, или Dynamic HTML (DHTML — Dynamic HiperText Markup Language).

    DHTML (Dynamic HyperText Markup Language)

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

    Языки сценариев (JavaScript и VBScript)

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

    Компания Netscape разработала язык создания сценариев JavaScript, а компания Microsoft — VBScript. Эти языки используются на стороне клиента, то есть генерируют объекты на основании HTML-страницы на стороне клиента в окне его браузера.

    Пример весьма полезного JavaScript сценария

    Технологии Java и CGI

    В 1994 году специалистами компании Sun Microsystems была разработана технология создания динамических интерактивных Web-страниц — Java. Программы на языке Java называются аплетами (little applications).

    Аплеты пишутся на Java и посылаются по Web как HTML-файлы браузеру, где выполняются как HTML-документы. Существенным преимуществом Java является независимость программ от платформ, на которых программы выполняются. Хотя Java не обязательно выполняется в окне браузера, возможно создание независимых (stand-alone) Java-приложений, которые могут выполняться на компьютере независимо от Интернета.

    Фактически программа на языке Java транслируется компилятором в специальный код, называемый байтовым (bytecode), а затем выполняется уже с помощью интерпретатора языка Java. Такое «разделение обязанностей» и позволяет обеспечивать полную независимость Java-кода от конечной платформы, на которой он будет выполняться. Разумеется, для каждой конкретной платформы имеется свой интерпретатор языка, называемый виртуальной машиной Java (Java Virtual Machine).

    Много полезных Java-аплетов лежат здесь.

    Сайт языка Java компании Sun Microsystem’s: http://java.sun.com/.

    Схема исполнения аплетов коренным образом отличается от схемы выполнения CGI-скриптов. Последние, в частности, выполняются на стороне сервера, в отличие от Java-аплетов, которые выполняются, как правило, на стороне клиента.

    Что же такое CGI (Common Gateway Interface), или интерфейс общего шлюза?

    По сути CGI — способ взаимодействия Web-программ с браузером пользователя. Поэтому под CGI-программами понимают программы, написанные на любом языке программирования, способного выполняться на Web-сервере, включая C, C++, Visual Basic или даже командные языки операционных сред (например, C Shell). Но большинство CGI-программ пишется на языке Perl.

    Perl (Practical Extraction and Report Language) является одним из наиболее гибких языковых средств, служащих для программирования интерфейсов CGI. Изначально Perl предназначался для обработки больших объемов данных и генерации отчетов по обработке этих данных (как явствует из его названия). За последние несколько лет Perl превратился в полнофункциональный язык программирования. Изначально созданный исключительно для работы под управлением операционных систем семейства UNIX, Perl теперь совместим с такими ОС, как Amiga, MS-DOS, OS/2 Warp, VMS, Windows NT, Window 95 и Macintosh.

    ASP и PHP

    В последнее время все большую популярность получают эти два средства создания интерактивных Web-страниц. Основным их достоинством является возможность формирования страниц на основании интерактива «клиент-сервер». Сами же программы, написанные на ASP (Active Server Pages — активные серверные страницы) и PHP (Personal Home Page), настолько просты, что программирование с их помощью доступно даже неискушенным.

    Пример PHP кода определяющего версию браузера

    PHP часто еще называют препроцессором гипертекста (Hypertext Preprocessor). По сути PHP серверный (выполняющийся на стороне сервера) мультиплатформный язык описания сценариев, встраиваемый непосредственно в HTML-код. В настоящее время PHP интенсивно используют более полумиллиона доменов Всемирной компьютерной сети, он распространяется на правах freeware и его можно свободно скачать с сайта разработчика www.php.net. Основу синтаксиса PHP составляют язык программирования C, Java и Perl. Целью создания языка является разработка динамически генерируемых страниц в кратчайшие сроки.

    Например, если Вы создаете online-каталог, вам скорее всего понадобится разрабатывать не сами HTML-страницы, а их шаблоны, по которым PHP будет формировать HTML-страницы исходя из ваших потребностей. Традиционно этот колоссальный объем работы выполняется вручную. С помощью PHP гораздо проще организовать интерфейс к базе данных и динамическое формирование страниц.

    Несмотря на то что PHP — прекрасная альтернатива ASP, мы остановимся на последнем. Сравнивая эти два средства, решающие по сути схожие задачи, следует отметить переносимость первого (PHP) в отличие от второго (ASP) и специальную «заточку» ASP под создание гибких и удобных интерфейсов к базам данных. Это включает использование ActiveX Data Objects (ADO). Колоссальная поддержка структурированного языка запросов к базам данных SQL является мощнейшим средством, используя которое разработчик может не переучиваясь, работать напрямую с базами данных привычным образом. ASP поддерживает работу со всеми базами данных, соответствующими стандарту ODBC.

    Говоря простыми словами, Active Server Pages — это обычные страницы, которые содержат скрипты, выполняющиеся на сервере наряду с обычным HTML-кодом (если вы посмотрите на строку адреса в окне браузера, то заметите довольно часто встречающееся расширение .asp). Если вы когда-нибудь программировали на Perl, то начать писать на ASP не составит для вас труда, ведь принцип почти один и тот же: после того как «серверный» код обработан сервером, результирующая страница, содержащая только клиентский код (HTML, JavaScript, VBScript), посылается клиенту. Код, выполнявшийся на стороне сервера, увидеть в окне браузера невозможно — вы видите лишь результат его работы.

    ASP работает как под управлением Windows NT-сервера (необходимо установить Windows NT Server и Web-сервер с поддержкой ASP — Microsoft’s Internet Information Server [IIS]), так и под управлением других операционных систем. В последнее время компания Chili!Soft разработала версии ASP для следующих операционных систем:

    • Linux (Red Hat Linux 6.2, 6.1, Suse Linux 6.4, Linux-Mandrake 7.0, Slackware Linux 7.0)
    • Windows NT
    • Solaris (Solaris 2.7, Solaris 2.6, 2.5.1)
    • AIX
    • HP-UX

    ASP становится совместимым со все большим числом операционных систем.

    Еще пару лет назад процесс программирования Web-серверов был отнюдь не тривиальной задачей. Написание CGI (Common Gateway Interface)-программ требовало особой осторожности и весьма высокой квалификации от программистов и администраторов, возникали сложности при отладке большинства приложений написанных на C, C++ или Perl. Когда компания Microsoft выпустила 3-ю версию своего Web-сервера (Internet Information Server), в начале 1997 года был создан принципиально новый метод написания серверных приложений.

    Зачем нужен ASP

    Активные серверные страницы (Active Server Pages) и HTML взаимодействуют с базами данных совершенно по-разному. Принципиальное отличие состоит в том, что на HTML-странице строка с директивой, осуществляющей прямое соединение с базой данных, расположена непосредственно в исходном коде страницы в окне браузера на стороне клиента. В ASP-странице она заменена переменной Web-приложения, которая определена в специальном файле global.asa и доступна всем ASP-страницам Web-приложения.

    Чем отличается ASP от других CGI

    Как известно, CGI обеспечивает способ, посредством которого Web-браузер осуществляет запуск Web-приложения на стороне сервера, результатом работы которого является HTML-страница, посылаемая клиенту. Всякий раз, когда клиент инициирует выполнение CGI-приложения, Web-сервер выполняет отдельную его копию (instance). Проблема заключается в том, что для каждого запроса клиента запускается копия Web-приложения на сервере, что резко сокращает производительность сервера при больших и средних нагрузках. Совсем иначе обстоят дела в случае использования ASP. Предположим, одно и то же приложение выполняется двумя разными клиентами. Двух приложений не существует, существуют лишь две сессии одного и того же приложения. И всякий раз, когда новым клиентом осуществляется запрос, порождается новая сессия Web-приложения.

    ASP позволяет перемешивать HTML-код с программным кодом, что, в свою очередь, позволяет легко и удобно встраивать серверные программы в страницы, причем первые будут выполняться только на стороне сервера. Еще одним мощным средством является поддержка ActiveX, так как ASP является языком, обеспечивающим полную поддержку ActiveX Scripting Interface. Итак…

    Реферат: Технологии ASP

    Список используемых сокращений………………………………………..2

    1. Общие сведения о технологиях ASP…………………..………………..5

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

    1.2 Используемые средства для программирования…….……………….7

    1.3. Модель Active Server Pages…….…………………………. ………….8

    2. История технологий ASP…………………………………….…. 9

    3. Общие сведения о технологиях ASP.NET……………………………..13

    3.1 Преимущества ASP.NET перед ASP……………………….…………13

    3.2 Процесс создание web-сайта на платформе ASP.NET…….…..….…14

    3.3 Использование дополнительных средств………….…………………15

    Список используемых сокращений

    1). ASP — ActiveServerPage

    2). CGI — CommonGatewayInterface

    3). ISAPI — Internet Server Application Programming Interface

    4). HTML — HypertextMarkupLanguage

    5). COM -ComponentObjectModel

    6). ADO — ActiveX Data Objects

    7). MTS — Microsoft Transaction Server


    8). IIS — Internet Information Server

    9). MMC — Microsoft Management Console

    10). RDO — Remote Data Objects

    11). DAO — Data Access Objects

    12). FPSE — FrontPage Server Extensions

    13). NGWS — Next Generation Web Services

    14). CLR — Common Language Runtime

    15). CMS — Content Management Software или Content Management System

    Существует два способа создания активного сервера Web на базе Microsoft Internet Information Server — с применением программ расширения CGI или ISAPI либо с помощью активных серверных страниц ASP.

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

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

    Что же касается активных серверных страниц ASP, то они значительно проще, хотя позволяют решать те же самые задачи, что и программные расширения сервера Web. Страницы ASP представляют собой текстовые файлы с конструкциями языка HTML и сценариями, составленными на таких языках программирования, как JScript и VB Script. Фактически, если пользователь уже владеет этими языками программирования, изучение технологии ASP пройдет очень быстро.

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

    Cценарии, расположенные в страницах ASP, могут быть серверными и клиентскими. Серверные сценарии выделяются специальным образом и исполняются на сервере, в то время как клиентские сценарии работают на компьютере пользователя под управлением браузера, например Microsoft Internet Explorer.

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

    1. Общие сведения о технологиях ASP

    Active Server Page – активные серверные страницы – язык программирования, используемый для создания динамических веб-страниц, обрабатываемых на стороне сервера.

    Динамические страницы – это такие страницы, содержимое которых изменяется в зависимости от действий пользователя. Напротив, статические страницы выглядят всегда одинаково, независимо от того, кто и когда ее просматривает. Первоначально все страницы были статическими, однако развитие Интернета вызвало потребность в предоставлении быстро меняющейся информации. Самые простые примеры – курсы валют, прогнозы погоды, обновляющиеся новости. Сложные – это интернет-магазины, on-line издания. Так, система Яндекс определяет географический адрес Вашего IP и предлагает поиск, карту и другие сервисы, актуальные для Вашего региона.

    С ростом потребности в динамически изменяемых web-страницах стали появляться и технологии их создания, одним из которых и стала технология ASP.

    ASP — технология от Microsoft, позволяющая легко разрабатывать приложения для World Wide Web. ASP работает на платформе операционных систем линии Windows NT и на веб-сервере IIS. ASP не является языком программирования — это лишь технология предварительной обработки, позволяющая подключать программные модули во время процесса формирования Web-страницы. Относительная популярность ASP основана на простоте используемых языков сценариев (VBScript или JScript) и возможности использования внешних COM-компонент.

    Технология ASP предполагает широкое использование серверных сценариев и объектов СОМ для создания динамических web-серверов. Средствами технологии ASP можно легко создавать интерактивные web-страницы, выполнять обработку данных введенных пользователем через формы, обращаться к базам данных.

    Наиболее интересными и полезными качествами, которыми нас привлекает технология ASP, можно считать:

    • удобный способ объединение серверных сценариев c HTML;

    • скриптовый подход (интерпретируемый язык) – т.е. файл с исходным кодом ASP одновременно является его исполняемым файлом, что упрощает процессы разработки и поддержки;

    • концепция «Session» – переменные для каждого пользовательского соединения, как удачное решение вечной проблемы stateless-протокола HTTP;

    • возможность организации распределенной архитектуры на основе инфраструктуры COM, DCOM, COM+. Дополнительные возможности, предоставляемые MTS – такие, например, как контекст объектов, пул и т.д.;

    • удобныйнаборобъектов-утилит: Server, Application, Request, Response, Session, ObjectContext.

    Пользователь не может каким-либо образом получить содержимое страницы ASP, так как web-сервер отправляет ему не саму страницу, а результат ее интерпретации, таким образом, логика работы страницы скрыта от пользователей. Для просмотра требуется www-браузер, такой как Netscape Navigator, или Microsoft Internet Explorer.

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

    Использование ASP не требует специфичных браузеров. Все ASP-скрипты запускаются и выполняются на веб-сервере, причем браузер получает только результирующие HTML-файлы. Microsoft Internet Information Server, начинаясверсии 3.0, поддерживает Active Server Pages.

    Функционирования ASP имеет следующую последовательность. Клиент запрашивает ASP-страницу на веб-сервере. Сервер принимает запрос и начинает его обрабатывать. По расширению файла («.asp») определяет, что данный файл содержит ASP-скрипт и начинает анализировать его содержимое, последовательно интерпретируя и выполняя вставки ASP-кода. ASP-код, в свою очередь, может содержать обращения к различным источникам данных, осуществлять обработку полученных данных и добавлять содержимое генерируемой страницы. В результате формируется «обычная» HTML-страница (уже не содержащая ASP-кода), которая и отправляется обратно клиенту.

    Внешне ASP функционирует также как CGI. При передаче данных от клиентской формы серверу, последний кодирует входные данные, а сценарий CGI декодирует их, а затем функционально обрабатывает и возвращает выходные данные браузеру.

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

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

    1.2 Используемые средства для программирования

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

    1.3 Модель ActiveServerPages

    В ASP процесс создания веб-приложений, как уже говорилось выше, значительно упрощен по сравнению с другими приложениями. Достаточно знаний какого-либо языка сценариев, например, VBScript или JavaScript. ASP может использовать сторонние COM-объекты (ActiveX для работы с файлами, отправки писем …), в т.ч. самой операционной системы Windows. Это значительно расширяет возможности ASP-страниц.

    Рисунок 1. Схема модели ASP

    Когда клиент запрашивает ASP-файл, веб-сервер отправляет ASP-файл в обработчик ASP (файл asp.dll), где код сценария выполняется на стороне сервера и преобразуется в HTML-код. Затем, полученный HTML-код отправляется веб-клиенту. Простое копирование серверных сценариев клиентом невозмо­жно, поскольку обозревателю передаются только результаты их выполнения.

    2. История технологий ASP

    Когда технология ASP появилась на свет в ноябре 1996 года, она сразу же была оценена как удобный способ создания динамических Web-страниц. В то время широко использовались стандарт CGI и язык Perl, но ASP быстро завоевала популярность по четырем причинам:

    — простота доступа к данным,

    — простота проектирования страниц,

    — возможность взаимодействия с технологией СОМ

    — относительная легкость изучения для программистов, знакомых с языком Visual Basic.

    Во-первых, если бы ASP была выпущена без объектов доступа к данным ADO, то, скорее всего, она не завоевала бы признание так быстро. Технология ADO заменила технологию RDO, которая, в свою очередь, пришла на смену технологии DAO. Microsoft пропагандировала ADO как наиболее предпочтительный метод доступа к базам данных. Объектная модель ADO была существенно упрощена по сравнению с предшественниками.

    Во-вторых, одновременно с выходом ASP 1.0 увидел свет первый комплект приложений для Microsoft Visual Studio, включавший, в частности, программу InterDev 1.0. Этот инструмент предоставлял широкие возможности (особенно для первой версии) и пользовался серверными расширения FPSE для упрощения работы по сопровождению Web-сайтов, в результате чего отпала необходимость в отдельном FTP-клиенте. Технология Intellisense для СОМ (автоматическое предложение списка свойств и методов объявленного объекта после ввода его имени) и наличие встроенных объектов ASP и элемента управления для доступа к данным сделали этот редактор весьма популярным, даже несмотря на некоторые недостатки. Например, его графический редактор был основан на ранней версии программы FrontPage.

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

    Четвертая особенность ASP, немало способствовавшая ее популярности, использование VBScript как языка программирования по умолчанию. Благодаря этому многие программисты, уже знакомые с языком Visual Basic, смогли быстро освоить программирование для ASP. Кроме того, Microsoft предоставила возможность использовать и другие языки от сторонних фирм, и очень скоро код для ASP стало можно писать и на Perl.

    Но, несмотря на все перечисленные достоинства у ASP 1.0 были существенные ограничения. В частности, необходимо было перезапускать Web-сервер после каждого обновления используемых DLL (a COM-объекты физически хранятся в DLL-файлах). При переходе к версии ASP 2.0 эта проблема, а также ряд других, связанных с безопасностью и производительностью, были решены, но самым крупным достижением стало появление сервера транзакций MTS. ASP 2.0 поставлялась в составе Web-сервера IIS 4.0, a MTS 1.0 — в составе бесплатного пакета дополнений Windows NT 4 Option Pack.

    В феврале 2000 года Microsoft выпустила IIS 5.0 в составе операционной системы Windows 2000. Вместе с IIS 5.0 поставлялась уже версия ASP 3.0, a MTS был заменен на сервисы СОМ+. По существу, СОМ+ объединил функциональность MTS со службами очередей сообщений, a ASP приобрела дополнительные возможности, в том числе несколько новых методов и свойств встроенных объектов. Основные различия между ASP 2.0 и ASP 3.0 заключались скорее в поддержке сервисов СОМ+, нежели в самом языке. Всякий, кто умел писать на VBScript для ASP 1.0 в среде InterDev 1.0, не испытывал никаких затруднений при работе с IIS 4.0 или IIS 5.0. Но несмотря на все эти преимущества все вышеперечисленные технологии ASP обладали рядом недостатков:

    o быстродействие сценариев оставляло желать лучшего, поскольку в основу ASP была заложена интерпретация кода на стороне сервера;

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

    o сложности с масштабированием, поскольку страницы ASP не сохраняли текущее состояние сеанса при переходе на другие серверы web-комплекса или после перезапуска;

    o отсутствие нормальной модели безопасности.

    Эти и другие проблемы решаются в новой технологии ASP.NET, в которой дело обстоит совершенно иначе.

    Сотрудники Microsoft Марк Андерс (Mark Anders) и Скотт Гатри (Scott Guthrie) начали разрабатывать продукт, ставший в конце концов ASP.NET, в начале января 1998 года. В то время технологии ASP было всего год от роду, но уже тогда стали очевидны некоторые присущие ей ограничения. Например, как уже говорилось выше, можно было использовать только сценарные языки. Кроме того, отсутствие компонентной модели ASP затрудняло разработку хороших инструментальных средств для нее. Чередование кода программы с HTML-текстом часто затрудняло совместную работу программистов и дизайнеров над одним проектом. С самого начала ASP.NET проектировалась для преодоления недостатков ASP.

    Марк и Скотт решили строить ASP.NET (тогда она называлась ASP+) в контексте новой среды исполнения NGWS, которая как раз тогда разрабатывалась. Платформа NGWS, которой суждено было превратиться в .NET, предоставляла богатые библиотеки и должна была включить в себя новый язык программирования С#, на котором и написана ASP.NET. ASP.NET (как часть платформы Microsoft .NET) — появился в январе 2002 года. Версии до ASP.NET иногда называют «классическим» ASP.

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

    3. Общие сведения о технологиях ASP.NET

    ASP.NET — это технология создания веб-приложений и веб-сервисов от компании Майкрософт. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP.

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

    Хотя ASP.NET берёт своё название от старой технологии Microsoft, ASP, она значительно от нее отличается. Microsoft полностью перестроила ASP.NET, основываясь на CLR), который является основой всех приложений Microsoft.NET. Программисты могут писать код для ASP.NET, используя различные языки программирования, поддерживаемые в .NET Framework, обычно Visual Basic.NET, JScript .NET или C#, а также «открытые» языки, например, Perl и Python. ASP.NET имеет преимущество в скорости по сравнению с другими технологиями, основанными на скриптах, так как при первом обращении код компилируется и помещается в специальный кеш, и впоследствии только исполняется, не требуя затрат времени на оптимизацию, и т. д.

    3.1 Преимущества ASP.NET перед ASP

    -Компилируемый код выполняется быстрее, большинство ошибок отлавливается ещё на стадии разработки

    -Значительно улучшенная обработка ошибок времени выполнения, с использованием блоков try..catch

    -Пользовательские элементы управления (controls) позволяют выделять часто используемые шаблоны, такие как меню сайта

    -Использование метафор, уже применяющихся в Windows-приложениях, например, таких как элементы управления и события

    -Расширяемый набор элементов управления и библиотек классов позволяет быстрее разрабатывать приложения

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

    -Возможность кэширования всей страницы или её части для увеличения производительности

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

    -Возможность разделения визуальной части и бизнес логики по разным файлам («code behind»)

    -Расширяемая модель обработки запросов

    -Расширенная событийная модель

    -Расширяемая модель серверных элементов управления

    -Наличие master-страниц для задания шаблонов оформления страниц

    3.2 Процесс создания web-сайта на платформе ASP.NET

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


    При разработке дизайна, лучше всего использовать Мастер страницы (Master Pages), которые, по сути, являются некоторыми шаблонами страниц сайта. Мастер страницы — одна из самых современных технологий web-программирования, используя их, Вы сможете легко поддерживать единый дизайн сайта. В случае необходимости изменить дизайн будет достаточно отредактировать Мастер страницы для разделов сайта, все остальные страницы, которых может быть несколько сотен или тысяч, изменять не придётся.

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

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

    3.3 Использование дополнительных средств

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

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

    Для ускорения процесса разработки web-проекта, можно взять за его основу, какую либо из свободно распространяемых или коммерческих CMS под платформу Asp.Net 2.0.

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

    · SharpZipLib.dll — для обработки заархивированных с помощью алгоритма сжатия zip файлов и потоков

    · HtmlAgilityPack.dll — библиотека, предназначенная для эффектифной работы с Html форматированием. Позволяет легко осуществлять поиск различных тегов, читать и изменять их значения и атрибуты. Прекрасно работает с плохо форматированными html данными, имеющим ошибки в разметке.

    · edtFTPnet.dll — набор классов для работы с ftp, с помощью которых можно просматривать содержимое ftp серверов, загружать и удалять файлы, создавать и переименовывать каталоги, а также выполнять многие другие действия, предусмотренные протоколом ftp.

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

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

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

    Список вопросов базы знаний

    Создание веб-приложений (ASP)

    • Страница:
    • 1
    • 2

    Почему в представленном ниже фрагменте кода не выводится сообщение «Соответствие найдено»?

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

    Какой из фрагментов кода позволяет решить поставленную задачу?

    В модуле global.asa определены события для объектов Session и Application.

    Укажите последовательность наступления событий.

    Страница ASP формирует таблицу товаров, показанную на рисунке. Ссылка «Подробнее…» указывает на файл WareDescription.asp, в котором содержится подробное описание товара.

    Как сформировать URL строку для обращения к данной гиперссылке?

    При обработке данных на форме был создан объект Dictionary, в который заносится список ошибок при заполнении формы. Создан сценарий для вывода сообщений об ошибках на страницу.

    Каким образом исправить ошибку, возникающую при обработке сценария?

    Необходимо разработать функцию, которая создает каталог «C:\MyTest» на сервере.

    Какой из фрагментов кода позволяет решить поставленную задачу?

    Какие действия выполняет данный фрагмент сценария?

    В сценарий на VBScript включена директива On Error Resume Next.

    Что происходит после генерации исключения в сценарии?

    В серверном сценарии необходимо создать объект DOMDocument с идентификатором xObj.

    Какой из фрагментов кода позволяет решить поставленную задачу?

    Для приложения «Чат» необходимо постоянно отслеживать активных пользователей.

    Какой из фрагментов кода позволяет решить поставленную задачу?

    Asp работа с языками сценариев

    Технология Microsoft ASP представляет собой совокупность серверных средств для динамического создания Web-документов. Она позволяет:

    Название: Технологии ASP
    Раздел: Рефераты по информатике
    Тип: реферат Добавлен 21:28:34 09 июня 2011 Похожие работы
    Просмотров: 838 Комментариев: 14 Оценило: 3 человек Средний балл: 5 Оценка: неизвестно Скачать
  • получать и обрабатывать на сервере данные, введенные пользователем при помощи формы;
  • динамически создавать web-документы, не зависящие ни от платформы, ни от браузера клиента;
  • обеспечивать динамический доступ к данным, находящимся на сервере, в частности, к серверным базам данных (при таком способе доступа HTML-документ автоматически изменится, как только изменятся хранящиеся на сервере данные);
  • использовать серверные компоненты, предназначенные для решения типовых задач (таких, например, как циклическая смена рекламных баннеров и др.);
  • осуществлять аутентификацию пользователя;
  • получать информацию о браузере клиента;
  • создавать и читать ключики на стороне клиента;
  • (Мы знаем, что последние две функции можно выполнить клиентскими средствами, но серверными тоже можно!)

    Что представляет собой asp-сценарий?

    Asp-сценарий — это совокупность команд на языке JScript или VBScript. В отличие от команд JavaScript-сценариев, команды asp-сценариев могут «перемешиваться» с HTML-тэгами, но каждая команда должна быть заключена в символы «&lt%, %>«.

    Первой строкой файла, содержащего asp-сценарий, должна быть директива:

    &lt%@ language=»JScript»%>

    Файл, содержащий asp-сценарий, должен иметь расширение asp.

    Код asp-сценария автоматически выполняется web-сервером при поступлении запроса от браузера клиента. Результатом работы asp-сценария будет HTML-код. По виду получившегося таким образом HTML-документа пользователь не сможет узнать был ли он сгенерирован web-сервером или физически находился на диске.

    Простой пример

    Напишем asp-сценарий, который будет динамически создавать документ с текстом «HELLO, WORLD. » (т.е. результат его работы будет выглядеть точно так же, как файл index.html, созданный нами в конце предыдущей лекции). Код этого сценария будет выглядеть следующим образом:

    Мы видим, что серверные команды, заключенные в символы &lt%, %> соседствуют с уже знакомыми нам HTML-тэгами.

    «Сердце» ASP — объекты Request и Response

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

    Язык JScript является объектно-ориентированным. 6 объектов создаются автоматически web-сервером, поэтому их разработчику не нужно заботиться об их создании; еще несколько объектов (их называют серверными компонентами) создаются средствами asp-сценариев. Для нас наиболее важными (по крайней мере, поначалу) будут два объекта:

  • Request , содержащий информацию, введенную пользователем;
  • Response , «отвечающий» за передачу информации от сервера клиенту.

    Метод Response.write()

    В предыдущем примере мы динамически сформировали фрагмент HTML-кода, присвоив его переменной s , и применив оператор: &lt%=s%> . Альтернативой такому способу вывода значения переменной ( s ) является использование метода write() объекта Response. Так, в предыдущем примере мы могли с тем же успехом написать:

    Применение метода Response.write() является основным способом динамической генерации HTML-документов.

    Методы объекта Request : Form() и QueryString()

    Как уже было сказано, объект Request «отвечает» за получение данных от клиента.

    Клиент может передать данные серверу двумя способами:

  • С помощью формы;
  • Через параметры, указанные (в гиперссылке) после знака: ? , следующего за адресом и именем сценария (например:

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

  • POST , если объем вводимых данных заранее неизвестен;
  • GET , если передается значение одной — двух переменных. (Напомним также, что связь HTML-документа, содержащего форму для ввода данных, и серверного сценария, получающего и обрабатывающего данные из этой формы, осуществляется с помощью атрибута action тэга form . Значением этого атрибута как раз и является адрес серверного сценария.)

    Если в форме используется метод POST , то чтение данных в серверном сценарии обеспечивается методом: Request.Form() ;
    если используется метод GET или значения передаются как параметры, без формы, то чтение данных в серверном сценарии обеспечивается методом: Request.QueryString() .

    Синтаксис вызова этих методов таков:

    Замечание. Поскольку при использовании метода GET передаваемая информация отображается в адресной строке, для передачи секретной информации (в частности, паролей) следует использовать метод POST.

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

    Указанный способ подходит для передачи данных из текстовых полей ( &lt input type=text. ), текстовых областей ( &lt textarea. ), полей для передачи «пароля» ( &lt input type=password. ) и скрытых полей ( &lt input type=hidden. ).

    С другими элементами форм дело обстоит несколько сложнее. Рассмотрим их подробнее.

    Элемент формы

    Обращение на сервере

    Селекторный список

    (с единственным выбором)

    Выберите день недели:

    См. ПРИМЕР

  • Доступ к значениям, передаваемым с помощью радиокнопок или checkbox‘ов, осуществляется аналогично.

    Итак, мы научились передавать данные серверному сценарию. Возникает вопрос: «как сохранить данные на сервере?«. Ясно, что сохранить данные можно в текстовом файле или в базе данных или . Вопросам связи asp-сценария с серверными базами данных и будет посвящена следующая лекция.

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