Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технологии разработки Internet-приложений. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
Но, несмотря на все перечисленные достоинства у 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 Frame­work, обычно 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
безопасность и др.); элементы графического интерфейса (Web­Forms); 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]