РАЗРАБОТКА ВЕБ-ПРИЛОЖЕНИЙ НА ОСНОВЕ ТЕХНОЛОГИИ AJAX В СРЕДЕ MICROSOFT VISUAL STUDIO
В.Н. Зимин, П.В. Федосов Научный руководитель - к. т.н., доцент Б.А. Крылов
Технология AJAX позволяет реализовывать качественно новый тип веб-приложений. Это касается как увеличения скорости реакции на действия пользователя, так и сокращения объема данных, передаваемых между клиентской и серверной частями приложения. Применение специализированных сред разработки, например, Microsoft Visual Studio, значительно облегчает задачу разработки приложений такого типа.
Введение
В последнее время в разработке веб-приложений наметилась тенденция усложнения и увеличения объема кода, выполняемого на стороне клиента. Это вызвано как существенным усложнением задач, решаемых веб-приложениями, и расширением круга этих задач, так и изменением архитектурной концепции построения веб-приложений. На современном этапе все большая роль в работе веб-приложения возлагается на его клиентскую часть, что заставляет разработчиков делать его все более объемным, надежным и гибким. Все это, в свою очередь, потребовало кардинального изменения подхода к самому процессу разработки таких веб-приложений и появления новых инструментов и сред разработки, отвечающих растущим требованиям со стороны пользователей. Среди технологий, используемых в веб-приложениях, все большую популярность приобретает технология AJAX (Asynchronous Javascript and XML). Технология AJAX позволяет реализовывать качественно новый тип веб-приложений. Это касается как увеличения скорости реакции на действия пользователя, так и сокращения объема данных, передаваемых между клиентской и серверной частями приложения, что, в свою очередь, увеличивает скорость работы приложения и сокращает нагрузку на сервер. Технически разработка AJAX-приложений возможна и с использованием старых средств разработки, однако применение специализированных сред, одними из которых являются Microsoft Visual Studio последних версий, серьезно облегчает эту задачу. В данной работе рассматриваются некоторые особенности разработки AJAX-приложений в интегрированной среде разработки Microsoft Visual Studio.
Свойства интегрированных сред разработки
Интегрированная среда разработки представляет собой приложение, реализующее инструменты для разработки приложений для той или иной платформы, собранные в единый набор. Как правило, интегрированная среда разработки содержит такие типичные элементы, как редактор исходного кода (обычно поддерживающий подсветку синтаксиса и автоматическое форматирование, характерное для используемого языка программирования), компилятор или интерпретатор, дополнительные утилиты и отладчик. Кроме того, часто в состав интегрированных сред разработки входят дополнительные средства, такие, как, например, утилита контроля версий. Большинство современных сред ориентированы на работу с графическими операционными системами и сами используют графический интерфейс пользователя. Для облегчения создания интерфейса пользователя графических приложений современные среды разработки содержат средства визуального проектирования, в значительной степени автоматизирующие этот процесс. Так как современные языки программирования, как правило, являются объектно-ориентированными, для автоматизации и стандартизации работы с классами и объектами среды разработки содержатся специализированные инструменты, такие как инспектор объектов (object inspector) или обозреватель классов (class browser) [1].
Таким образом, можно прийти к выводу, что интегрированные среды разработки созданы для повышения производительности труда программистов. В значительной степени это достигается путем предоставления программисту возможности использования больших фрагментов готового кода, поставляемого в рамках компонентов. Типичная среда ориентированна на конкретный язык программирования и оптимизирована для максимальной поддержки концепций и парадигм, свойственных этому языку. Тем не менее, существуют и многоязыковые среды, позволяющие использовать в рамках единой среды преимущества того или иного языка в зависимости от задачи, стоящей перед разработчиком. Примером таких сред могут служить такие продукты, как NetBeans и Microsoft Visual Studio.
Потребность в создании интегрированных сред разработки возникла тогда, когда производительность труда программиста при использовании классических (не интегрированных) средств перестала отвечать растущим запросам индустрии. Первым языком, ориентированным на использование в рамках единой среды разработки, был один из вариантов Бейсика. Разумеется, эта среда не имела графического интерфейса пользователя и других типичных для сегодняшних продуктов этого класса элементов. Однако она объединяла в себе средства редактирования исходного программного кода, управления файлами, компиляции, выполнения и отладки программ, т.е. имела все основные черты, характерные для современных приложений такого класса.
Стоит так же отметить, что, несмотря на очевидные преимущества, даваемые интегрированными средствами разработки в сравнении с классическими средствами, их внедрение не сразу было воспринято положительно использовавшими их разработчиками программного обеспечения. Причина этого кроется в том, что из-за стандартизации подходов к разработке программных продуктов, лежащих в основе самой концепции интегрированной среды, поле для творчества разработчиков неизбежно сужалось. Это стало одним из неизбежных следствий внедрения новой модели разработки программного обеспечения [1].
На современном этапе все большее распространения получают системы визуального программирования. Особенность визуальных интегрированных сред заключается в том, что процесс программирования в значительной степени автоматизируется за счет использования «строительных блоков» из готового кода, которые используются для сборки приложений. Причем это касается не только визуального проектирования интерфейса пользователя. Собранные воедино компоненты, графически представляемые в процессе разработки в виде диаграмм или иных образов, затем обрабатываются компилятором аналогично классическому исходному тексту.
Используя гибкость и мощь такого подхода в области распределенных систем и широкие возможности современных веб-браузеров (таких как Internet Explorer и Firefox), можно с минимальными трудозатратами создавать достаточно мощные веб-приложения. Такой подход используется также в специализированных программах, таких, как Openlab, где конечным пользователям требуется гибкость и широкие возможности полноценного языка программирования, но без проблем, связанных с обучением ему [1].
Среда Microsoft Visual Studio 2008
Одной из самых современных интегральных сред разработки на сегодняшний день является продукт Microsoft Visual Studio 2008. Среда разработки Microsoft Visual Studio - это набор инструментов и средств, предназначенных для помощи разработчикам программ любого уровня квалификации в решении сложных задач и создания новаторских решений. Роль Visual Studio заключается в том, чтобы улучшить процесс разработки и упростить разработку высокоэффективных программ. Следует отметить
высокопроизводительные редакторы кода, поддержку технологии IntelliSense, мастеров и различных языков кодирования в одной интегрированной среде разработки. Разработчики, применяющие Visual Studio, получают в свое распоряжение интегрированный продукт, включающий инструменты, серверы и службы. В Visual Studio содержатся инструменты для всех этапов разработки программного обеспечения (разработка, тестирование, развертывание, интеграция и управление). Visual Studio 2008 в сравнении с предыдущими версиями имеет переработанный пользовательский интерфейс. Общий вид главного окна Microsoft Visual Studio 2008 представлен на рис. 1 [2].
Рис. 1. Вид главного окна VS 2008
Технология AJAX
Суть технологии AJAX (Asynchronous Javascript and XML) заключается в изменении содержимого загруженной веб-страницы без ее полной перезагрузки, благодаря чему достигается высокая динамичность сайтов. Технология основывается на разделении данных и подзагрузки тех или иных компонентов по мере необходимости [3].
С архитектурной точки зрения технология AJAX представляет собой совокупность двух элементов: библиотеку клиентских скрипов и набор сервисных расширений. Библиотека клиентского кода реализована на языке JavaScript и, таким образом, совместима со всеми современными браузерами. Серверные расширения полностью интегрированы с серверными сервисами, элементами управления и т.д. [4].
С другой стороны, AJAX - это не самостоятельная технология, а, скорее, концепция использования нескольких смежных технологий. AJAX базируется на двух основных принципах:
• использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью (например: с использованием XMLHttpRequest; через динамическое создание дочерних фреймов; через динамическое создание тега <script>);
• использование DHTML для динамического изменения содержания страницы.
В качестве формата передачи данных обычно используются JSON или XML. Впервые термин AJAX был публично использован в 2005 г., однако в той или иной
форме многие технологии были доступны и использовались гораздо раньше, например, в подходе «Remote Scripting», предложенным компанией Microsoft в 1998 г., или с использованием HTML элемента IFRAME, появившегося в Internet Explorer 3 в 1996 г.
Технология AJAX имеет следующие основные преимущества.
• Экономия трафика. Использование AJAX позволяет значительно сократить трафик при работе с веб-приложением благодаря тому, что часто вместо загрузки всей страницы достаточно загрузить только небольшую изменившуюся часть.
• Уменьшение нагрузки на сервер. AJAX позволяет несколько снизить нагрузку на сервер. К примеру, в Gmail, при работе с письмами, серверу достаточно внести изменения в базу данных и отправить клиентскому скрипту сообщение об успешном выполнении операции без необходимости повторно создавать страницу и отсылать ее клиенту.
• Ускорение реакции интерфейса. Поскольку нужно загрузить только изменившуюся часть, то пользователь видит результат своих действий быстрее.
Недостатки AJAX:
• Интеграция со стандартными инструментами браузера. Динамически создаваемые страницы не регистрируются браузером в истории посещения страниц, поэтому не работает кнопка «Назад», предоставляющая пользователям возможность вернуться к просмотренным ранее страницам. Другой недостаток изменения контента страницы при постоянном URL заключается в невозможности сохранения закладки на желаемый материал.
• Динамически загружаемое содержание недоступно поисковикам. Поисковые машины не могут выполнять JavaScript, поэтому разработчики должны позаботиться об альтернативных способах доступа к содержимому сайта.
• Старые методы учета статистики сайтов становятся неактуальными. Многие сервисы статистики ведут учет просмотров новых страниц сайта, для сайтов, страницы которых широко используют AJAX, такая статистика теряет актуальность [5].
Разработка AJAX-приложения в Microsoft Visual Studio
Итак, обычно, когда программист начинает писать веб-приложение на основе AJAX предполагается, что у него уже есть как минимум базовое представление об объекте XMLHttpRequest и о том, как его создать и использовать. Но одно дело, когда речь идет об отправке пары HTML-форм, которые несложно реализовать вручную, и совсем другое, когда создается большое приложение, где только форм сотни.
Microsoft Visual Studio 2008 предоставляет уникальные возможности для создания приложений подобного рода. Благодаря наличию большого числа встроенных компонентов веб-разработчик избавлен от необходимости самостоятельно реализовывать многие компоненты, такие как календарь, часы, а порой и целые формы. На рис. 2 показано рабочее окно Visual Studio с подключенным набором Ajax элементов управления, разработанных фирмой Telerik [6].
Данный набор дополнений реализует свыше 400 различных элементов управления, которые позволяют прозрачно добавлять интерактивность фактически в любой проект. Также немаловажным преимуществом использования Visual Studio является то, что любое обычное веб-приложения легко хотя бы частично перевести на технологию AJAX в максимально сжатые сроки.
Немаловажную роль играет глубокая интеграция Visual Studio с другими компонентами, например Internet Information Services - сервером приложений, позволяющим проводить отладку веб-приложений. А тесная интеграция Visual Studio c Bug Tracking системами и отлаженная методика проведения Regression Testing позволяет всегда быть уверенным в качестве получаемого результата.
Рис. 2. Visual Studio с набором AJAX-элементов
Заключение
В развитии современных веб-приложений наметилась тенденция значительного увеличения объема и усложнения кода, выполняемого на стороне клиента. Это, с одной стороны, значительно повышает качество пользовательского интерфейса такого положения (как с точки зрения функциональности, так и скорости работы), а с другой стороны, снижает нагрузку на сервер и каналы связи. Одна из распространенных технологий, реализующая подобную модель - технология AJAX (Asynchronous Javascript and XML). Разработка AJAX-приложений является задачей, решаемой с помощью различных сред разработки. Одна из таких сред - Microsoft Visual Studio 2008. В данной статье рассматриваются некоторые особенности самой среды разработки Microsoft Visual Studio, а также процесса разработки AJAX-приложений с ее помощью.
Литература
1. Integrated development environment [Электронный ресурс]. - Режим доступа: http://en.wikipedia.org/wiki/Integrated_development_environment
2. Microsoft Developer Network [Электронный ресурс]. - Режим доступа: -http://msdn2.microsoft.com/ru-ru/vstudio/products/default.aspx
3. Документация по веб-дизайну [Электронный ресурс]. - Режим доступа: http://webdesign.site3k.net/?/consulting/ajax.html
4. Esposito D. Introducing Microsoft ASP.Net Ajax. - Redmond: Microsoft Press, 2007 -352 с.
5. AJAX. Материал из Википедии - свободной энциклопедии [Электронный ресурс]. -Режим доступа: http://ru.wikipedia.org/wiki/Ajax
6. Ajax: Microsoft asp.net official site [Электронный ресурс]. - Режим доступа: http://asp.net/ajax/default.aspx