Среда программирования CA-Visual Objects

Новый продукт СА-VisualObjects, разработанный фирмой Computer Associates, является преемником широко распространенной системы программирования Clipper. Он ориентирован на создание информационных приложений с графическим интерфейсом пользователя в среде Windows.

С точки зрения синтаксиса VisualObjects почти на 90 процентов совпадает с CA-Clipper. Но VisualObjects не является просто продолжением линии Clipper. Хотя, конечно, при работе с VisualObjects можно использовать Clipper и включать разработанный раннее код в новую систему приложений.

Разработчику, использующему новую среду программирования, необходимо четко понимать особенности и преимущества объектно-ориентированного подхода, иметь представления о динамически компонуемых библиотеках (DLL) и принципах программирования в среде Windows.

Для работы систем VisualObjects требуется как минимум Intel 386 с 8 Мб оперативной памяти и Windows (с версией не менее, чем 3.1), а также примерно 40 МБ свободного дискового пространства. Но чтобы сделать работу более комфортной, лучше иметь 486-й (или более старший) процессор и 16 Мб памяти. Для создания приложений в среде GUI рекомендуется использовать сопроцессор. Такая конфигурация необходима именно для разработчиков, конечный же пользователь, применяющий готовые приложения, написанные в среде VisualObjects, не нуждается в таком мощном оборудовании. Это очень существенно для разработки коммерческих систем. При работе с VisualObjects не требуются дополнительные библиотеки, кроме библиотеки для работы с графикой.

В отличие от рассмотренных ранее сред программирования, при использовании VisualObjects простое изучение синтаксиса не позволяет сразу начинать работать. Необходимо освоить новые понятия. Прежде всего, это репозиторий (центральное хранилище объектов разработки). Это понятие чрезвычайно важно при разработке приложений в среде VisualObjects и непривычно для пользователей CA-Clipper. Вместо операций с PRG- и СН-файлами в VisualObjects используются модули, каждый из которых состоит, возможно, из нескольких функций, определений классов и методов.

Приложения, модули и компоненты хранятся в репозитории - своего рода глобальной базе данных. У репозитория есть еще одна важная функция - управление всеми частями приложения вплоть до компонентов самого низкого уровня. Автоматически поддерживаются связи между различными модулями и компонентами всех приложений. Репозиторию всегда "известно", был ли исходный код модифицирован или откомпилирован, так что отпадает необходимость в make-файлах и других файлах, так или иначе описывающих процесс компоновки.

Выбор опций в компиляции VisualObjects отличается от Clipper. По умолчанию устанавливается режим low (отображение самых серьезных ошибок). Однако можно выбрать опции none (предупреждения не выводятся), med (только важные предупреждения и серьезные ошибки), high (вывод всех предупреждений и ошибок). Существует режим, позволяющий предупреждать возникновение ошибок во время выполнения, при котором можно заказать отслеживание ситуаций переполнения, выхода за пределы указанного диапазона адресов (например, контроль доступа к элементам массива вне указанной размерности) и проверку корректности принадлежности объекта к тому или иному классу.

В VisualObjects реализован целый список переключателей компилятора, используемых для обеспечения совместимости с CA-Clipper. Так, можно "разрешить" применение переменных в стиле Clipper, объявить правила использования операторов присваивания "=" или "(=", а также обеспечить применение функции ProcName() и ProcLinep(). Кроме того, компилятор VisualObjects позволяет проводить оптимизацию кода по размеру и скорости выполнения, а также имеется возможность смешанной проверки, что очень полезно в процессе конвертирования Clipper-программы в VisualObjects.

С VisualObjects пользователь получает большой выбор библиотек, интегрируемых в IDE. Каждая используемая библиотека должна быть связана с приложением. Наиболее интересна библиотека GUI Classes - совокупность почти 100 классов. Здесь описаны классы для формирования окон, списков, кнопок, линеек прокрутки и прочих атрибутов GUI. DBF-библиотека поддерживает стандартные для xBase-архитектуры команды и функции обработки данных. Средства ООП позволяет реализовывать библиотека DBF Classes.

Доступ через протокол ODBC к таблицам обслуживает библиотека SQL Classes, объектно-ориентированный интерфейс для генератора отчетов Report Classes, ввод/вывод в традиции xBase-Terminal, а функции прикладного программирования для Windows - Windows API.

Центральное место занимает библиотека System Library, содержащая все системные средства.

При работе с VisualObjects существует два варианта программирования в графическом интерфейсе - использование программы эмуляции терминала или применение библиотеки CommonView. В первом случае существует возможность использовать созданные раннее Clipper-приложения как программы Windows, хотя, конечно, это будет все то же DOS-приложение, просто работающее в окне Windows.

Переход к GUI создает для разработчика массу новых проблем, что, правда, окупается на порядок более качественным и гибким приложением, получаемым в итоге.

Поскольку программисту приходится учитывать событийный характер поведения тех или иных узлов приложения, инструментарий визуальной разработки оказывается ключевым. СА-VisualObjects дает возможность применять мощный набор средств визуального программирования. Так, доступны редакторы меню, окон, отчетов, исходных текстов программ и пиктограмм. Все это позволяет создавать качественные приложения.

Сложность освоения VisualObjects состоит в традиционной ломке представлений и привычек, происходящей на пути от процедурного программирования к ООП. В скором времени появится большое количество программных систем, созданных на базе VisualObjects и реализующих все достоинства информационных систем в архитектуре клиент-сервер.