Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Технологии разработки Internet-приложений. Учебное пособие
.pdf
Но, несмотря на все перечисленные достоинства у 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.
Вместе с IIS 4.0 был представлен новый интерфейс управления – MMC, который применялся для администрирования IIS 4.0 и
MTS. Сервер транзакций сильно упростил жизнь всем, кто разрабатывал или использовал компоненты СОМ. Он управлял инсталляцией и деинсталляцией компонентов, позволял избегать перезагрузки Web-сервера (а иногда и всей машины), а также снимал с
разработчика обязанности по управлению транзакциями. Кроме
того, он выступал в роли объектного брокера, осуществляя эффективное кэширование экземпляров объектов и выдавая их по запросу. Эта техника потребовала создания объектов «без состояния»,
поскольку только так можно было обеспечить эффективное повторное использование. Кроме того, новые версии ADO расширили возможности работы с удаленными данными, для чего, в частности, применялись XML-потоки.
В феврале 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 обладали рядом недостатков:
71

- быстродействие сценариев оставляло желать лучшего, по-
скольку в основу ASP была заложена интерпретация кода на стороне сервера;
- разработка и сопровождение сценариев затруднялись тем,
что представление страницы не отделялось от управляющего кода;
- сложности с масштабированием, поскольку страницы ASP
не сохраняли текущее состояние сеанса при переходе на другие
серверы web-комплекса или после перезапуска;
- отсутствие нормальной модели безопасности.
Эти и другие проблемы решаются в новой технологии
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-приложений. Разработчикам удалось повысить скорость разработки сайтов, масштабируемость, легкость поддержки и администрирования сайтов, скорость работы сервера. Шаблоны дизай-
72

на, темы и скины позволяют разделить дизайн сайта и его функциональность, темы включают графику и каскадные таблицы стилей.
В ASP.NET 2.0 также встроена технология автоматического обновления баз данных. Данные, полученные из базы, хранятся на
сервере, при изменении базы данных кэш обновляет свое содержимое.
6.4. Общие сведения о технологиях ASP.NET
ASP.NET – это технология создания Web-приложений и
Web0-сервисов от компании Майкрософт. Она является составной
частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP.
Естественно, ASP.NET внешне во многом сохраняет схожесть
с более старой технологией ASP, что позволяет разработчикам относительно легко перейти на ASP.NET. В то же время внутреннее
устройство ASP.NET существенно отличается от ASP, поскольку
она основана на платформе .NET и, следовательно, использует все
новые возможности, предоставляемые этой платформой.
Microsoft полностью перестроила ASP.NET, основываясь на
CLR), который является основой всех приложений Microsoft.NET.
Программисты могут писать код для ASP.NET, используя различные языки программирования, поддерживаемые в .NET Framework, обычно Visual Basic.NET, JScript .NET или C#, а также «открытые» языки, например, Perl и Python. ASP.NET имеет преимущество в скорости по сравнению с другими технологиями, основанными на скриптах, так как при первом обращении код компилируется и помещается в специальный кеш, и впоследствии только
исполняется, не требуя затрат времени на оптимизацию, и т. д.
Преимущества ASP.NET перед ASP:
- компилируемый код выполняется быстрее, большинство
ошибок отлавливается ещё на стадии разработки;
- значительно улучшенная обработка ошибок времени выпол-
нения, с использованием блоков try ... catch;
- пользовательские элементы управления (controls) позволяют
выделять часто используемые шаблоны, такие как меню сайта;
- использование метафор, уже применяющихся в Windows-
приложениях, например, таких как элементы управления и события;
73

- расширяемый набор элементов управления и библиотек
классов позволяет быстрее разрабатывать приложения;
- ASP.NET опирается на многоязыковые возможности .NET,
что позволяет писать код страниц на VB.NET, Delphi.NET, Visual
C#, J# и т. д;
- возможность кэширования всей страницы или её части для
увеличения производительности; кэширования данных, используемых на странице;
- возможность разделения визуальной части и бизнес логики
по разным файлам («code behind»);
- расширяемая модель обработки запросов;
- расширенная событийная модель;
- расширяемая модель серверных элементов управления;
- наличие master-страниц для задания шаблонов оформления
страниц
6.5. Процесс создания Web-приложения на платформе
ASP.NET
Начинать создание Web-приложения на платформе ASP.NET,
как и любого другого, лучше всего с разработки проекта, который
должен включать в себя детальное описание его функциональности, его архитектуры и примерный дизайн.
При разработке дизайна, лучше всего использовать Мастер стра-
ницы (Master Pages), которые, по сути, являются некоторыми шаблонами страниц сайта. Мастер страницы - одна из самых современных
технологий web-программирования, используя их, Вы сможете легко
поддерживать единый дизайн сайта. В случае необходимости изменить дизайн будет достаточно отредактировать Мастер страницы для
разделов сайта, все остальные страницы, которых может быть несколько сотен или тысяч, изменять не придётся.
После создания Мастер страниц для разделов сайта, следует
перейти к созданию обычных страниц. Категорически не рекомендуется хранить контент сайта внутри обычных ASP страниц, лучше использовать для этого XML - файлы или базу данных.
Платформа .NET Framework предоставляет возможность разработки и интеграции Web-приложений. ASP.NET является одной
из составляющих инфраструктуры .NET Framework и фактически
74

является платформой для создания Web-приложений и Web-
сервисов, работающих под управлением IIS.
ASP.NET внешне во многом напоминает более старую технологию ASP, но в то же время внутреннее устройство ASP.NET существенно отличается от ASP. Компания Майкрософт ASP.NET построила на базе CLR (Common Language Runtime), который является
основой всех приложений .NET. Разработчики могут создавать код
для ASP.NET, используя языки программирования, входящие в .NET
Framework: C#, Visual Basic.NET, JScript.NET и другие.
Классический ASP имеет следующие недостатки:
- используются только языки сценариев, которые дают большой проигрыш в производительности (из-за их интерпретируемости) и не поддерживают многие возможности объектноориентированного программирования;
- логика представления (в виде кода HTML) не отделена от
бизнес-логики (исполняемого кода), что приводит перемешиванию
в одном файле кода HTML с кодом сценария;
- невозможно повторно использовать готовые решения в других проектах (возможно только копирование кода сценариев).
В файлах ASP.NET включается код на таких языках програм-
мирования как C#, JScript.NET, VisualBasic.NET, что позволяет
применять непосредственно в Web-приложениях возможности
объектно-ориентированного программирования. Также существенно сокращается объем кода, написанного вручную за счет
применения серверных объектов, автоматически генерирующих
код элементов управления HTML. Возможно использование стандартной среды разработки Visual Studio.NET, т.е. ASP.NET имеет
преимущество в скорости по сравнению со сценарными технологиями, так как при первом обращении код компилируется и помещается в специальный кэш, а впоследствии только исполняется, не
требуя затрат времени на парсинг, оптимизацию, и т. д.
Несмотря на возможность совместной работы ASP и ASP.NET
на одном Web-сервере, они не могут использовать общий сеанс.
Файлы ASP.NET обрабатываются библиотекой aspnet_isapi.dll (а
не asp.dll), которая, в свою очередь, использует для выполнения
кода технологию .NET.
Библиотека базовых классов .NET содержит пространства
имен 3 основных групп: элементы web-приложений (протоколы,
75

безопасность и др.); элементы графического интерфейса (WebForms); web-службы.
ASP.NET использует возможности стандартной среды разработки Visual Studio.Net, и в частности классы библиотеки FCL
(Framework Class Library).
В основу разработки Web-приложений на ASP.NET положена
модель разделения кода представления и кода реализации, рекомендуемая Microsoft при создании динамических документов на с
помощью программных кодов. Это делается путем размещения
программного кода либо в отдельный файл, либо внутри специального тэга для сценариев. Файл такого рода обычно имеет расширение *.aspx.cs (*.aspx.vb) и имеет имя, совпадающее с именем
основного ASPX файла. В принципе такой подход позволяет Web-
дизайнеру сконцентрироваться работе с кодом разметки документа
с минимальными изменениями программного кода, в обычном
ASP внедряемого непосредственно в код разметки.
Взаимодействие пользователя с Web-приложением, реализованном на ASP.NET включает в себя следующие процессы:
1. При запросе страницы ASPX инициируется событие
Page_Init, производящее начальную инициализацию страницы и ее
объекта.
2. Далее инициируется событие Page_Load, которое может
быть использовано, например для установки начальных значений
для элементов управления. При этом также можно определить была ли загружена страница впервые или обращение к ней осуществляется повторно в рамках обратной отсылки в ответ на события,
связанные с элементами управления, размещенными на странице;
т.е. проверить свойство Page.IsPostBack.
3. Далее выполняется проверка валидности элементов страницы с точки зрения корректности введенных пользователем данных.
4. И, наконец, следует обработка всех событий, связанных с
действиями пользователя с момента последней обратной отсылки.
Для сохранения данных Web-страницы в промежутках между
обращениями к ней в ASP.NET используются состояния отображения (view state).
Если данные, введенные в Web-форму, необходимо сделать
доступными другим Web-формам того же приложения, эти данные
76

необходимо сохранить в объектах Application и Session. Объекты
Application доступны всем пользователям приложения и могут
рассматриваться как глобальные переменные, обращение к которым возможно из любых сеансов. Объекты Session доступны только в рамках одного сеанса, и поэтому они оказываются доступными только одному пользователю.
6.6. Использование дополнительных средств при разработке приложений на основе технологий ASP. Net
В случае если пользователю необходимо добавить к своему
Web-проекту некоторые стандартные функции, такие как, например, форум или гостевая, то вполне вероятно имеет смысл использовать готовое решение, а не программировать все самому.
В последнее время в сети стало появляться большое количество ASP скриптов и различных библиотек классов для платформы
Asp.Net 2.0, многие из которых распространяются бесплатно, или
стоят существенно дешевле вашего времени, необходимого для
реализации подобной функциональности самостоятельно.
Для ускорения процесса разработки web-проекта, можно взять
за его основу, какую либо из свободно распространяемых или
коммерческих CMS под платформу Asp.Net 2.0.
В сети доступны библиотеки классов, предназначенные для
решения различных задач:
- SharpZipLib.dll – для обработки заархивированных с помо-
щью алгоритма сжатия zip файлов и потоков;
- HtmlAgilityPack.dll – библиотека, предназначенная для эф-
фектифной работы с Html форматированием. Позволяет легко
осуществлять поиск различных тегов, читать и изменять их значения и атрибуты. Прекрасно работает с плохо форматированными
html данными, имеющим ошибки в разметке;
- edtFTPnet.dll – набор классов для работы с ftp, с помощью
которых можно просматривать содержимое ftp серверов, загружать и удалять файлы, создавать и переименовывать каталоги, а
также выполнять многие другие действия, предусмотренные протоколом ftp.
В случае необходимости, также можно разработать собственные библиотеки классов или настраиваемые серверные элементы
77

управления, которые можно многократно использовать на различных страницах сайта, и даже в других ваших проектах.
6.7. Серверные элементы управления ASP.NET
Важной особенностью ASP.NET является использование серверных элементов управления на Web-странице (элементы Web-
Form), которые являются фактически тэгами, понятными Web-
серверу. Эти элементы определены в пространстве имен Sys-
tem.Web.UI.WebControls.
Принято выделять три типа серверных элементов управления:
серверные элементы управления HTML (обычные HTML тэги),
элементы управления Web-сервера (новые тэги ASP.NET), серверные элементы управления для проверки данных (валидации), которые применяются для валидации входных данных от клиентского приложения (Web-браузера).
Преимущества от использования таких элементов при разработке Web-приложений:
- сокращается количество кода, написанного вручную (что
особенно заметно в для сложных элементов документа). Элемент
просто «перетаскивается» из панели инструментов, после чего выполняется настройка его параметров в специальном окне. При
этом все изменения автоматически заносятся непосредственно в
*.aspx файл;
- c программной точки зрения каждому из этих элементов
управления соответствует определенный класс в библиотеке базовых классов .NET, что позволяет писать для них такой же код как
и для любых других классов;
- для любого элемента управления WebForm определен набор
событий, обрабатываемых на Web-сервере;
- для любого элемента управления WebForm предоставляется
возможность для проверки ввода данных пользователем.
По умолчанию серверные элементы управления HTML в
ASP.NET файлах рассматриваются как текст. Для их программирования требуется добавление атрибута runat = «server» в соответствующий HTML элемент. Кроме того, все серверные элементы
управления HTML должны быть размещены внутри области действия тэга <form>, также имеющего атрибут runat = «server».
78

Подобно серверным элементам управления HTML элементы
управления Web-сервера также создаются на Web-сервере и предполагают добавление атрибута runat = «server». Однако они могут
и не соответствовать конкретным элементам HTML, но представлять более сложные элементы.
6.8. Работа с источниками данных в ASP.NET
В ASP.NET используются два элемента управления WebForm
для управления отображением данных, получаемых из источника
данных:
- DataGrid – элемент управления, отображающий содержимое
объекта ADO.NET DataSet в виде таблицы;
- DataList – элемент управления для выбора значений, запол-
няемых из источника данных.
Если необходимо отобразить данные, полученные по запросу
пользователя из источника данных, в виде таблицы на Web-
странице, то ASP.NET предоставляет в распоряжение Web-
программиста удобный элемент управления DataGrid.
Выводы
1. Рассмотрена технология Active Server Pages: основные
понятия; принципы функционирования Active Server Pages.
2. Приведена модель Active Server Pages.
3. Подробно рассмотрена история развития технологий от
ASP к ASP.NET.
4. Дана характеристика технологий ASP.NET.
5. Описан процесс создания Web-приложения на платформе
ASP.NET.
6. Изучены дополнительные средства, использующиеся при
разработке приложений на основе технологий ASP.NET.
7. Показана работа с серверными элементами управления и
источниками данных в ASP.NET.
Вопросы для самопроверки
1. Сформулируйте определение понятия «динамическая
страница».
2. Охарактеризуйте технологию Active Server Pages (ASP).
3. Перечислите полезные качества технологии ASP.
79

4. Дайте характеристику принципам функционирования
Active Server Pages.
5. Охарактеризуйте базовую модель ASP.
6. Какие этапы прошла в своем развитии технология ASP?
7. Каковы недостатки технологии ASP?
8. Дайте характеристику технологии ASP.NET.
9. В чем заключается процесс создания Web-приложения на
платформе ASP.NET?
10. На основе каких принципов осуществляется взаимодействие пользователя с Web-приложением, разработанным с
помощью технологии ASP.NET?
11. Перечислите и охарактеризуйте дополнительные средства,
которые могут использоваться при разработке приложений на
основе технологии ASP.NET.
12. Дайте характеристику серверным элементам управления
ASP.NET.
13. Каким образом осуществляется работа с источнками
данных в ASP.NET? Какие элементы для этого используются?
Литература Internet-ресурсы
Основная: [1, 2, 4, 6,7].
Дополнительная: [2, 3, 7].
Internet-ресурсы: [2, 3, 4, 5, 6, 9].
80
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
