Visual... Visual... Visual DataFlex!

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

Поэтому я сейчас расскажу об одной среде разработки, "заточенной" как раз под разработку приложений, работающих с базами данных. Название его, как видно из заголовка статьи, Visual DataFlex, а сайт русскоязычного представительства компании-разработчика расположен по адресу www.visualdataflex.ru.

Сейчас Visual DataFlex не слишком заметен в тени других игроков, присутствующих на рынке (особенно таких, как Visual Studio или PowerBuilder). Однако на самом деле это очень мощный продукт, имеющий давнюю и богатую историю. Язык, который используется в Visual DataFlex, называется - совпадение, не иначе - DataFlex, и он берёт своё начало ещё в 70-х годах (двадцатого века, естественно). Собственно, можно считать, что Visual DataFlex тоже отсчитывает время своего существования с появления DataFlex'а. Правда, Visual DataFlex продолжает не все традиции своего "пращура". Кросс-платформенность разработчики выкинули (видимо, за ненадобностью), и теперь среда разработки умеет работать только под Windows 2000/XP/2003.

Однако давайте пойдём по порядку. Что предоставляет Visual DataFlex разработчику? Во-первых, отличную современную среду разработки приложений с удобным редактором кода и не менее удобным визуальным редактором графического пользовательского интерфейса. Язык программирования DataFlex чем-то напоминает Basic, хотя в чём-то схож и с Pascal'ем. Поддерживает объектно-ориентированное программирование, так что, зная любой другой высокоуровневый объектно-ориентированный язык, вы сможете работать с DataFlex, не особо напрягаясь для его изучения, хотя, конечно, в нём есть своя специфика, и немного разобраться в языке придётся. Приведу небольшой фрагмент кода на нём, чтобы можно было иметь лучшее представление.

Procedure End_Construct_Object
 Boolean bAutoActivate
 Get Auto_Activate_State to bAutoActivate
 Forward send End_Construct_Object
 If bAutoActivate begin
  send AutoActivate
  send MakeGoodPanelSize
 end
End_Procedure

В целом, работа с интерфейсом организована так же, как и в любой другой визуальной среде - есть компоненты, есть события, код программы состоит, в основном, из обработчиков событий для компонентов. При этом стандартных компонентов вполне достаточно для разработки большинства приложений: есть визуальные элементы управления, компоненты для работы с интернетом (HTTP, FTP, Web-отчёты, XML). Есть ряд дополнительных компонентов, которые позволят привязать к приложению справку в формате HTML Help, использовать для хранения настроек программы INI-файл, использовать системный таймер или работать с электронной почтой через интерфейс MAPI. Есть импортированные ActiveX-компоненты, так что, по всей видимости, можно использовать любые элементы управления ActiveX, однако как быстро и просто импортировать их (например, как это делается в Visual Basic 6 или Delphi), пока не совсем ясно.

Редактор кода вполне стандартный и не претендующий на что-то эпохальное. Единственное, что может серьёзно заинтересовать, это поддержка макросов в редакторе и изрядное количество оных готовых в стандартном комплекте среды разработки. А так редактор самый обычный. Как и отладчик. Присутствует. Работает. Умеет достаточно для того уровня, на котором выполнено всё остальное в среде Visual DataFlex - и ладно, не надо на нём подробнее останавливаться. Лучше поговорим про то, с чего начинали - про базы данных. Вы ведь ещё не забыли, надеюсь, о том, что Visual DataFlex изначально предназначен для разработки приложений, имеющих дело как раз таки с ними?

Для работы с базами данных в пакете Visual DataFlex имеются такие инструменты, как Database Builder и Database Explorer. Для чего они нужны, собственно, несложно догадаться из названий, благо, названы они не на латыни, а на обычном английском. Database Builder нужен для создания новых баз данных и редактирования уже существующих. Базы данных редактируются, как и положено, в виде таблиц, которые содержатся в них. Правда, для тех, кто впервые работает с Visual DataFlex, может показаться странным, что в меню нет пункта, позволяющего создать новую базу данных - работа ведётся только с таблицами. Это проистекает из того, что в Visual DataFlex используется концепция проекта, который может содержать внутри себя одну базу данных (не суть важно какую - локальную, удалённую; проекту также совершенно неинтересно, что она физически собой представляет). Поэтому, собственно, работает каждый проект в рамках своей базы данных, а внутри базы можно изменять уже сами таблицы. Это самый оптимальный подход, потому что мне ещё не приходилось видеть проекты, где нельзя было бы обойтись одной, пусть даже и большой, содержащей много таблиц и огромное число записей в этих таблицах базой данных. Правда, одним только редактированием таблиц возможности Database Builder'а не исчерпываются. С его помощью можно формировать отчёты по базе, реиндексировать её, чистить, упаковывать, восстанавливать после повреждений, переводить из одного формата в другой (например, из внутреннего формата Visual DataFlex в формат Microsoft SQL Server). При этом можно работать практически с любыми СУБД, если, конечно, для них существуют (и установлены в системе) ODBC-драйверы. В общем, Database Builder - это мощный и универсальный инструмент для работы с базами данных, который очень удачно сочетается с остальными компонентами Visual DataFlex.

Database Explorer - инструмент, тоже не лишённый пользы для разработчика, который пользуется Visual DataFlex. Он предназначен для просмотра сведений об уже существующей базе данных (то есть, поскольку речь идёт о Visual DataFlex, то здесь "базу данных" можно было заменить на "таблицу"). Так, можно узнать, какие в ней содержатся таблицы, что содержится в записях в этих таблицах, какие присутствуют индексы, а также прочую информацию об интересующей таблице. Какие таблицы ссылаются на другие таблицы, какие доступны только для чтения (кстати, этот атрибут можно менять), какие присутствуют фильтры для данных... Можно экспортировать данные в CSV или XML, можно узнать, какие доступны драйверы для СУБД. В общем, вкупе с Database Builder'ом получается универсальная связка для создания и администрирования БД, к которым обращается разрабатываемое приложение.

Ещё один инструмент, который может пригодиться при работе с БД, называется Error Code Maintenance. Фактически, он нужен для локализации приложений, использующих базы данных в формате Visual DataFlex, поскольку представляет собой редактор базы данных, содержащей сообщения об ошибках. То есть, в базе записан код ошибки и соответствующее ей сообщение. При установке Visual DataFlex спрашивает, какие языковые файлы для сообщений об ошибках устанавливать. Можно выбрать русские, но если интерфейс программы выполнен на другом языке, то, естественно, придётся всё переводить самостоятельно.

Впрочем, это ещё не всё, что умеет Visual DataFlex. В программе имеется поддержка разработки web-приложений, что, в общем-то, вполне естественно, так как базы данных давно стали неотъемлемой частью Всемирной паутины. Поэтому для разработчиков DataFlex было бы удивительно не попытаться отрезать кусок от лакомого пирога и не внедрить в своё детище поддержку разработки приложений для интернета. Другое дело, что, из-за ориентированности Visual DataFlex на платформу Windows эта поддержка получилась достаточно скромной, но, впрочем, от этого не менее полезной.

Приложения для web разрабатываются точно так же, как обычные приложения для настольных систем Windows, то есть можно использовать те же компоненты, и вообще, как говорится на сайте компании-разработчика, "для портирования Windows-программ в сеть интернет вы можете использовать большую часть уже написанного программного кода, что существенно сокращает время, необходимое для данного процесса". Такие фразы не могут не привлекать, не так ли? Однако работают приложения, написанные для web в Visual DataFlex, довольно своеобразно. Им нужен собственный промежуточный сервер Web Application Server (производства всё той же фирмы, естественно). Он запускает под своим управлением написанные на Visual DataFlex программы, и, таким образом, по словам разработчиков, способствует стабильности web-сервера. Учитывая, что речь идёт о Windows, и web-сервером, стало быть, будет IIS, можно сказать, что забота о безопасности и стабильности будет совсем не лишней. Это, в общем-то, неплохое решение, но оно будет сказываться на стоимости проекта (естественно, в сторону её увеличения), поскольку бесплатна только облегченная версия сервера, поддерживающая не более пяти подключений одновременно, чего, естественно для любого полноценного web-приложения недостаточно.

Что ж, это, пожалуй, всё, что я хотел и мог рассказать вам о Visual DataFlex. Подводя итог, можно отметить, что это качественное, удобное и современное средство для разработки приложений, работающих с базами данных (как настольными, так и для web). Его можно порекомендовать разработчикам, которым нужно создавать такие приложения, но которых по каким-либо причинам не устраивают другие среды разработки. Потому что по продуктивности Visual DataFlex едва ли превосходит другие RAD-среды, а, как показывает практика, разработчики уже имеют навыки использования, по крайней мере, одной из них. Смысла в переходе на Visual DataFlex с того же, например, C++ Builder'а, я не вижу, поэтому Visual DataFlex стоит иметь в виду прежде всего тем, кто ещё не имеет опыта работы с RAD-средами.

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

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

Номер: 

10 за 2007 год

Рубрика: 

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

Комментарии

Аватар пользователя Сергей Натаров
Вадим,

Спасибо за хороший отзыв и обзорную статью.

В целом, большинство сильных и слабых сторон отражены правильно. Однако, целый ряд ключевых особенностей в сравнении с другими средствами разработки пропущены. Например, встроенные словари данных (Data Dictionaries), возможность создания Web-сервисов и т. д.

Словари данных позволяют не только существенно повысить скорость разработки приложений, но и предлагают беспрецедентную поддержку целостности базы данных в приложении. Создаются все в том же Database Builder.

С уважением,

Сергей Натаров

Аватар пользователя Вадим Станкевич
>>Спасибо за хороший отзыв и обзорную статью.

Всегда пожалуйста и спасибо Вам за дополнение!