WaveMaker: AJAX в действии

Сегодня (впрочем, уже не просто сегодня, а довольно-таки давно) AJAX - уже не экзотика, а норма жизни среди сайтов Web 2.0. Для тех, кто занимается разработкой сайтов, очень важно иметь инструменты, которые позволяют создавать сайты, полностью поддерживающие эту технологию. WaveMaker - отличное решение для тех, кто работает с AJAX.


Вступление

Конечно, по-хорошему стоило бы начать эту статью с рассказа о том, что же, собственно говоря, скрывается за аббревиатурой AJAX. Однако, полагаю, если вас заинтересовала эта статья, стало быть, кое-что об AJAX'е вы всё-таки слышали. Таким образом, сразу приступим к разговору о WaveMaker'е.

Как написано на официальном сайте этого программного продукта, расположенном по адресу www.wavemaker.com, WaveMaker - это не просто какая-то среда создания AJAX-сайтов, а мощная платформа, в которую входит, помимо среды, много других интересных вещей.

Размер установочного дистрибутива WaveMaker (для Windows) составляет немногим менее восьмидесяти мегабайтов. Что касается стоимости программы... В общем-то, здесь политика создателей WaveMaker'а довольно любопытна. Существует совершенно бесплатная (более того, имеющая открытый исходный код) версия Community Edition. Параллельно с ней существуют две довольно дорогие коммерческие версии. Первая, WaveMaker Enterprise Standard, стоит $4,999. Вторая, WaveMaker Enterprise Premium, стоит уже $7999. С одной стороны, для успешной компании, которая имеет массу заказов на разработку Web 2.0-сайтов, это не такие уж и большие деньги. С другой стороны, сейчас всё-таки, как ни крути, мировой кризис, и компании по этому поводу впали в режим жёсткой экономии. Не знаю, конечно, как чувствуют разработчики WaveMaker'а влияние кризиса на себе, но, вполне возможно, цены снизятся. Впрочем, хотя коммерческие версии WaveMaker'а стоят и немало, но разработчики этой платформы знают, за что они просят деньги. Думаю, после прочтения этого обзора вы согласитесь с тем, что хороший инструмент для работы с AJAX - не роскошь, а средство для создания хороших сайтов.

 


WaveMaker вблизи

Пожалуй, больше всего в WaveMaker'е впечатляет то, что даже сама визуальная среда, с помощью которой создаются интерактивные сайты, работает через браузер. Это, конечно, несколько непривычно, зато сразу демонстрирует пользователю WaveMaker'а (или, вернее, разработчику, использующему WaveMaker в своих проектах), что AJAX - это не шутки, и что с помощью этой технологии действительно можно буквально творить чудеса. Что касается браузеров, то написано, что WaveMaker поддерживает Firefox 2.0/3.0, Internet Explorer 7.0 и Safari 3.1. С "Оперой" я его, к сожалению, попробовать вместе не смог по той простой причине, что эта самая "Опера" у меня на компьютере напрочь отсутствует. Однако с Mozilla Seamonkey WaveMaker подружился самым что ни на есть лучшим образом. Конечно, это можно списать на то, что у Firefox и Seamonkey один и тот же движок - Gecko. Но, наверное, всё-таки дело в качестве среды разработки WaveMaker.

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

Количество визуальных компонентов, доступных тому, кто решил воспользоваться WaveMaker'ом, надо сказать, тоже находится на весьма неплохом уровне. Хотя большая часть элементов управления достаточно стандартна, тем не менее, всё необходимое присутствует. В арсенале WaveMaker'а есть и вкладки (tabs), и кнопки, и текстовые поля ввода, и сетки для вывода табличных данных, и даже, между прочим, progress bar - элемент управления, позволяющий отображать прогресс при выполнении той или иной операции, занимающей достаточно длительный промежуток времени. Стоит заметить также, что оформление всех этих (да и остальных, впрочем) элементов управление также позволяет создавать сайты, выглядящие очень стильно и современно. При этом огромный плюс визуальной среды WaveMaker состоит в том, что разработчик работает с ней в режиме WYSIWYG (What You See Is What You Get). Этот режим позволяет сразу увидеть web-приложение именно в том виде, в котором его потом будет видеть и пользовать внутри своего браузера.

Что касается написания кода, который будет давать дыхание размещённым на экране компонентам, то его, конечно же, можно писать на JavaScript'е. Это очень удобно как раз профессиональным сайтостроителям, поскольку JavaScript - язык, знакомый уже даже многим дизайнерам и подразумеваемый уже просто одним только фактом использования технологии AJAX. Писать на JavaScript'е в WaveMaker'е, к сожалению, не так удобно, как во многих других средах, поскольку здесь нет даже такой повсеместно распространённой вещи, как подсветка синтаксиса. Говорить о чём-то большем, понятное дело, тоже не приходится. Это одна из издержек того, что среда разработки WaveMaker работает через браузер, однако с учётом концепции визуального программирования, лежащей в основе WaveMaker'а, это не такой уж большой минус. В крайнем случае, JavaScript-код, если вы не можете отказаться от удобств, предоставляемых современными редакторами программного кода, можно написать в каком-то внешнем редакторе, а затем уже вставить в WaveMaker. Впрочем, не обязательно программировать именно на JavaScript'е - к счастью, в этом вопросе WaveMaker предоставляет варианты. Какие? Думаю, вы сами всё поймёте, когда мы заглянем "под капот" WaveMaker'а.


WaveMaker внутри

Сами понимаете, под красивой оболочкой обязательно есть содержимое. Его качество может быть разным (хотя словосочетание "красивая оболочка" уже как-то настраивает против содержимого этой самой оболочки, согласитесь), но оно, в любом случае, есть. Конечно, писать AJAX-приложения кликами мыши - это здорово, удобно и приятно, но, в любом случае, за этим должен стоять какой-то фреймворк, который будет "мотором" нашего приложения. Вот именно об этом фреймворке и настало время сказать пару слов.

В недрах WaveMaker вы не найдёте PHP, Perl'а или других популярных скриптовых технологий, которые популярны среди отечественных заказчиков сайтов. WaveMaker - это Java. Когда вы запускаете среду WaveMaker, то автоматически запускается и Apache Tomcat, без которого не будет возможной работа ни одного web-приложения, созданного с помощью WaveMaker. Впрочем, это я уже немного перегнул палку. Ведь WaveMaker поддерживает не только Tomcat, но и JBoss, WebLogic и WebSphere. Но по умолчанию в Community Edition используется, в силу понятных причин, именно Tomcat. Думаю, для множества задач и нет веских причин менять его на что-то другое.

Авторы WaveMaker подчёркивают, что приложения, которые создаются с помощью их программного продукта, не используют сторонних библиотек и фреймворков, требующих дополнительного лицензирования, что, в общем-то, очень даже неплохо, учитывая стоимость коммерческой версии WaveMaker. Со стороны разработчиков было бы просто неприлично требовать от пользователей покупать дополнительные программные продукты, устанавливая такую стоимость для своего детища. Но в этом плане всё в порядке. Cудите сами: Spring, Hibernate, ACEGI и прочее - это некоммерческие фреймворки, лежащие в основе функциональности той замечательной платформы, которую мы с вами сейчас обсуждаем.

Быть может, вы обратили внимание на то, что в списке используемых фреймворков есть Hibernate - ORM-фреймворк для Java, о котором я сравнительно недавно рассказывал в "Компьютерных вестях". Если вы помните, этот фреймворк используется для организации взаимодействия Java-приложений с системами управления базами данных. Значит, и WaveMaker имеет поддержку баз данных? Да, это действительно так.

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

Первый вопрос, который резонно возникает в связи с этим: а какие СУБД можно использовать, разрабатывая web-приложение с помощью WaveMaker? Список, конечно, не сильно велик, но вполне пристоен. Это Postgres 8.3, MySQL 5.0, Oracle 10g, Microsoft SQL Server 2005, Hypersonic DB и DB2. В общем-то, думаю, этого вполне достаточно практически для всех видов web-приложений.

Что ещё можно добавить ко всему сказанному? Разве что рассказать, что у нас получается на выходе, когда мы собираемся разместить приложение на сервере. Сами понимаете, коль скоро у нас всё завязано на Java, то и получаем мы в итоге именно Java web-приложение. Его можно упаковать в обычный WAR-файл, который мог бы быть получен и безо всяких WaveMaker'ов, и который можно запускать при наличии соответствующих серверов приложений. Всё довольно просто и, на мой взгляд, очень удобно.


Резюме

Итак, по поводу WaveMaker'а сказано, как мне кажется, действительно всё из того, что могло бы быть сказано. Осталось, пожалуй, только подытожить, чтобы со спокойной совестью завершить статью.

Не знаю, как вам, а лично мне WaveMaker очень даже понравился. Может быть, потому, что лень - это нормальное человеческое качество, присущее каждому из нас от природы и поощряемое теми средами разработки, которые позволяют не писать код, а просто делать клики мышкой, наблюдая за тем, как шаг за шагом создаётся нужное нам web-приложение? Думаю, дело не только в этом. Просто хорошо спланированный и реализованный программный продукт, в который вложено много усилий создававших его людей, не может не вызывать уважения. Ну и, ко всему прочему, WaveMaker всё-таки довольно оригинален, хотя и у него есть ряд недостатков, о которых я говорил выше (ну а у кого, в конце концов, их нет?). Единственное, что внушает некоторый страх, это цена коммерческой версии.

Вадим СТАНКЕВИЧ

Версия для печатиВерсия для печати

Номер: 

48 за 2008 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!