"WinDEV is unique" |
Как бы часто и помногу мы с вами, уважаемые читатели, не говорили о средах разработки приложений для Windows, этих разговоров не будет достаточно. Потому что, как ни крути, всегда найдутся преимущества у того или иного инструмента. И это вполне естественно, потому что о тех инструментах, у которых нет никаких преимуществ, нет смысла говорить вовсе. Да и говорить о них можно чаще всего только в ретроспективе - законов рынка никто не отменял, знаете ли...
Разработка, даже под одну только платформу Windows, всё равно включает в себя весьма разнообразный спектр задач. Разработка прикладных приложений уровня от утилиты для чистки реестра до AutoCAD'а; разработка различных библиотек классов и компонентов для других программистов, разработка драйверов... Однако драйверы - удел немногих, хотя, вероятно, когда-нибудь будет рассказ и о них. Основная масса приложений, которые создаются белорусскими программистами, - это приложения прикладные. Именно поэтому я и рассказываю, в основном, о тех средах, которые предназначены для их разработки. Прикладные приложения давно уже принято разрабатывать в RAD-средах, то есть в средах быстрой разработки. Поэтому инструмент, о котором я сейчас расскажу, будет RAD-средой для Windows.
Называется эта штука WinDEV. Говорящее такое название, и довольно удачное. Найти дистрибутив бесплатной ознакомительной версии можно по адресу www.windev.com. Однако хочу сразу предупредить, что "весит" он совсем не мало - около 400 Мб. Разработала WinDEV французская фирма PC-Soft (www.pcsoft.fr), и на их официальном сайте также можно найти этот продукт.
Уже во время установки чувствуешь, что продукт отличается от большинства средств для разработки приложений. Чем? Своим интерфейсом, прежде всего. Если везде он, как правило, стандартный, такой же, как в самой системе, то в WinDEV оформление всех элементов управления особенное, фирменное. Одно окошко создания нового проекта чего стоит (см. скриншот)! Но работать этот момент никоим образом не мешает: сначала это несколько развлекает, но потом привыкаешь и совсем не замечаешь.
Процесс разработки в WinDEV соответствует классической методике: сначала строит прототип приложения в виде UML-диаграмм, содержащих его ключевые элементы, потом по этим диаграммам среда генерирует код и диалоговые окна. Редактор диаграмм французы в своём детище сделали мощный и удобный. Так, при двойном клике на элемент диаграммы, изображающий окно, автоматически открывается визуальный редактор-дизайнер окон, в котором работать так же просто, как в том же Visual Basic или Delphi. Правда, контролы (элементы управления, кирпичики интерфейса программы) в WinDEV по умолчанию предлагаются, чего уж греха таить, достаточно своеобразные. Например, на панели выбора компонентов есть пункт "Maps", в котором предлагаются на выбор изображения карт материков и некоторых европейских стран (Беларусь, конечно же, буржуи забыли). Зачем это надо, не вполне ясно, но, наверное, кому-нибудь, тем не менее, пригодится.
Впрочем, дополнительные компоненты добавить не проблема. Среда умеет работать как с собственным форматом компонентов, так и импортировать сборки .NET Framework. Конечно, такое смешивание разных технологий не может не отразиться на размере выходного файла программы... Впрочем, об этом ещё отдельно ниже.
Конечно, отечественных разработчиков не может не интересовать, как обстоит дело с разработкой приложений, взаимодействующих с базами данных. Спешу успокоить: обстоит совсем не плохо. Вместе с WinDEV поставляется СУБД HyperFile, которая поддерживает как файл-серверную, так клиент-серверную модель работы. Работать сервер HyperFile'а может и под Windows, и под Linux, и даже под управлением систем для мобильных устройств (кстати, есть версия WinDEV для разработки под эти самые устройства, однако о ней ниже или вообще потом - сейчас мы всё же говорим не об этом, а о Windows). HyperFile - достаточно удобная и надёжная СУБД, подходящая для большинства прикладных задач. Ограничения, накладываемые на объём данных, вряд ли станут проблемой, однако при этом присутствует поддержка автоматического реиндексирования базы в случае аппаратного или системного сбоя, конкурентного доступа к данным и многих других вещей, необходимых в полноценной клиент-серверной СУБД. При этом HyperFile очень хорош в качестве встраиваемой СУБД, поскольку требует минимальной настройки при установке и может отлично функционировать без дополнительного администрирования долгое время. Впрочем, пора заканчивать расписывать HyperFile, потому что это СУБД дополнение к среде, а не наоборот. Давайте посмотрим, что ещё полезного и хорошего есть в самой WinDEV.
Есть в ней, например, поддержка и других серверов баз данных, а не только HyperFile (не удержался, снова меня потянуло на БД. Ну ничего, это ведь всё равно интересно). Среди тех, которые поддерживаются без промежуточных технологий и дополнительных связок, - MS SQL Server, MySQL, Sybase, DB2, Oracle, Access, xBase и некоторые другие. Правда, можно работать вообще с любой СУБД, поскольку имеется поддержка технологий ODBC и OLE DB (о них я не так давно уже кратко рассказывал в "КВ" №11'2007). Однако если нужно воспользоваться базами данных на основе XML, не нужно искать для них ODBC или OLE DB драйвера. С ними среда разработки поможет справиться и без дополнительных средств, поскольку XML поддерживается встроенными компонентами.
Так повелось, что где базы данных, там и отчёты. Встроенный в среду генератор отчётов обладает многими возможностями, позволяющими поставить его на одну доску с таким гигантом индустрии, как Crystal Reports. Он позволяет печатать надписи, диаграммы, изображения и многое другое. Встроенная поддержка струйных, лазерных, матричных принтеров. Визуальный редактор, поддержка экспорта отчётов в PDF, Word, Excel, HTML; возможность автоматической отправки по электронной почте, предварительный просмотр перед печатью, встроенная поддержка штрих-кодов. В общем, выглядит заманчиво и работает (по крайней мере, на демонстрационных примерах) достаточно ровно и шустро.
Давайте ещё раз теперь вернёмся к UML, о котором я вскользь упомянул вначале. Благодаря ему можно создавать приложения, работающие с уже готовыми и наполненными базами данных. Программа автоматически импортирует структуру базы в проект, и потом уже можно автоматически по ней создавать диалоговые окна, отчёты и т.д. Кстати, я говорил, что WinDEV создаёт код по UML-диаграммам, как и положено любому средству, работающему с моделями? Говорил, скорее всего. Так вот, эта операция, как сказали бы математики, коммутативна. То есть можно и по коду создать диаграммы. На самом деле, конечно, эта возможность менее востребована, чем, так сказать, "прямое" моделирование, однако тоже может быть полезной.
Говоря о разработке программного обеспечения, мы так или иначе понимаем под ней программирование в той или иной его ипостаси. А программирование тесно и неразрывно связано с алгоритмическими языками. И в WinDEV тоже есть собственный язык, с помощью которого создаётся программный код продукта. Называется он W-Language, однако на самом деле до боли напоминает Visual Basic. Вполне удобный и подходящий язык для RAD-среды. Учитывая, что львиная доля рутинного кода в WinDEV генерируется разнообразными помощниками и мастерами, даже ярые поклонники Паскаля и Си-подобных языков вряд ли будут сильно обижены. Однако простота языка - это ещё не всё, что обеспечивает простоту кодирования. Объектная библиотека WinDEV весьма проста и логична в использовании, однако не лишена функциональности. Работа с сокетами, создание многопоточных приложений, объекты для связи с базами данных... Программисту практически нет никакой необходимости использовать стандартные системные API в явном виде. Очень интересная возможность языка - динамическая компиляция. То есть можно с помощью программы сгенерировать код, который тут же, "на лету", может быть выполнен. И редактор кода, которого вряд ли будет много, тем не менее, очень удобный.
Как я уже сказал, генерация кода достаточно серьёзно автоматизирована. Это относится не только к коду непосредственно самой программы, но и к коду запросов, которые пишутся на SQL. Для генерации запросов используются специальные мастера, которые черпают информацию о структуре запроса из структуры таблиц базы данных и из всё тех же UML-диаграмм, построенных программистом. Так же можно создавать новые запросы на основе результатов старых.
Создание окон в программе тоже происходит, как правило, не с нуля. В среду встроено немалое число разнообразных шаблонов, преимущественно ориентированных на создание приложений, работающих с БД: таблицы, формы с заполняемыми полями и т.п. Есть и стандартные формы: диалог поиска, диалог логина и пароля, диалоги с сообщениями и прочее. К каждому окну, как и ко всему приложению в целом, можно применить определённые стили оформления, которых в стандартной библиотеке тоже не так уж и мало, и все красивые. Хотя, может, профессиональному дизайнеру они бы и не понравились. Но на самом деле это плюс, поскольку очень легко перейти от одного стиля к другому, а даже такие косметические изменения - лучше, чем никаких в случае аврального выпуска новой версии продукта. По крайней мере, они смогут отвлечь пользователей от недоработок. Однако самое интересное в автоматическом создании окон не это. Программа позволяет создать новое окно по образу и подобию любого открытого на данный момент в системе. Правда, получается не очень ровно, но меню и большую часть стандартных элементов управления среда распознаёт корректно.
Отдельного упоминания заслуживает компонент построения графиков и диаграмм. Они получаются очень красивыми, правда, за это приходится платить тем, что для его нормального функционирования нужен DirectX. Ещё в среду встроено средство автоматической проверки интерфейса. В чём заключается его работа? В том, чтобы все элементы управления были одинаково выровнены и имели пропорциональные размеры. Вдобавок ко всему упомянутому есть возможность создания локализаций для других языков, чтобы пользователи из неанглоязычных стран могли нормально пользоваться вашим приложением, созданным с помощью WinDEV. В среде уже есть переводы всех стандартных сообщений на большое количество языков, в том числе и русский (но, к сожалению, никак не белорусский). Все стандартные компоненты среды позволяют, по заверениям разработчиков, использовать для ввода и вывода информации языки юго-восточной Азии, хотя для нашей страны вряд ли эта возможность окажется особенно полезной.
В среде присутствует поддержка командной разработки: контроль версий, да и при каждом входе в WinDEV нужно вводить логин и пароль. Есть встроенный профилировщик кода (про отладчик я молчу, это подразумевается как бы само собой). Среди дополнительных инструментов, поставляемых вместе с WinDEV - различные средства для администрирования и создания баз данных СУБД HyperFile, программа для создания дистрибутивов приложений, средство для просмотра свойств и методов установленных в системе ActiveX-компонентов, а также инструмент для тестирования программ.
Во всей этой красоте небольшой ложкой дёгтя смотрится только объём созданной с помощью WinDEV программы, стартовое значение которого начинается где-то в районе трёх мегабайт. Для работы программе нужны объёмные runtime-библиотеки, которые можно как включить в сам исполняемый модуль, так и оставить отдельно в виде DLL. Впрочем, для разработки крупных приложений это не вредно, а, напротив, придаёт им солидности.
Что ж, объём газетной статьи ограничен, а жаль. Я ещё о многом не успел рассказать... Давайте подведём краткий итог. Как написано на сайте PC-SOFT (и в эпиграфе к этой статье), "WinDEV уникальна". Смелое утверждение, но оно, в целом, отражает действительность. Замечательная среда разработки, которая при этом и стоит не слишком дорого на общем фоне, и работает хорошо... В общем, очень рекомендую взглянуть на неё. Тут действительно продукт из серии "лучше один раз увидеть, чем десять раз прочитать".
Вадим СТАНКЕВИЧ
Горячие темы