Система Visual FoxPro
В Visual FoxPro присутствуют многие новые черты: объектно-ориентированный язык, активный словарь, встроенные средства обращения к серверам баз данных и т.д.
Начнем со средств построения интерфейса и новых терминов, которые приходится осваивать разработчикам. Visual FoxPro уже не стоит особняком от остальных продуктов Microsoft, как это было в версиях 2.х. Интерфейс самого продукта и приложений, которые разрабатываются на его основе, соответствуют стандартам, принятым в комплексе программных продуктов Microsoft Office и в средствах разработки, подобных Visual Basic. Более того, Visual FoxPro полностью интегрируется с остальными приложениями Microsoft Office с помощью OLE Automation. Программа, написанная на Visual FoxPro, сможет полноценно общаться с Microsoft Word, Microsoft Excel и любыми другими приложениями, поддерживающими OLE 2.0. Как и прежде, поддерживается динамический обмен данными DDE.
Использование механизма наследования классов позволяет создавать произвольное число модифицированных форм; при корректировке исходного класса все изменения будут отражены в формах, построенных на его основе. В качестве объекта может выступать любой элемент формы, и это дает неограниченные возможности по модификации форм из программы. Возможность сохранить часто употребляемую форму как класс и строить на ее основе другие формы снимает проблему с параметризацией для приведения интерфейса в соответствие с новыми требованиями. В составе формы-класса может быть любой стандартный элемент интерфейса (кнопки, поля вывода, независимые и зависимые переключатели); в определении класса можно использовать и так называемые "OLE custom controls - OCX", что позволяют делать только самые развитые средства программирования в стиле С++. Для начинающих предусмотрены уже знакомые с версии 2.6 "Мастера", которые облегчат построение формы, отчета, таблицы и запроса.
Инструментальные средства не поддерживают browse и Foundation Read. Вместо Browse - объект с названием Grid, которым можно управлять как любым другим объектом формы.
Причем управлять можно не только как единым монолитом, а с точностью до ячейки. То есть можно сделать все ячейки, где значение баланса меньше нуля, красными, а остальные - зелеными; можно встроить в ячейку элемент check box, если это поле содержит логические величины. Такого рода формы можно создавать как в Конструкторе форм, так и программным путем. Если используется Конструктор форм, то простое "перемещение" таблицы из окружения формы в область формы автоматически создает этот элемент интерфейса. Теперь окружение формы или отчета создается визуально и полностью контролируемо.
Вместо Foundation Read используется команда Read Events, переводящая Visual FoxPro в состояние ожидания, из которого его выводит только какое-либо действие пользователя. Список событий, на которые Visual FoxPro может реагировать, достаточно велик. При этом программа ведет себя, как "настоящее Windows-приложение": обработка событий встроена в сам продукт. Совместимость со старыми версиями поддерживается полностью, и весь старый процедурный код по-прежнему будет работать; однако Visual FoxPro - это новые подходы, новые технологии и новые требования, поэтому разработчику нужно освоить такие понятия, как инкапсуляция, полиморфизм, триггеры, хранимые процедуры, события, методы, наследование.
Для хранения описаний проектов, отчетов, баз данных и т.п. практически везде используются .DBF-файлы. Многие утилиты написаны на самом Visual FoxPro.
В смысле управления базами данных фирма Microsoft продвинула пакет Visual FoxPro очень далеко. У Visual FoxPro наконец появилось настоящее понимание базы данных как совокупности таблиц, индексов и всякого рода дополнительной информации, описывающей правила, которым должны подчиняться данные при вводе или модификации.
Несмотря на то, что по-прежнему можно использовать самостоятельные .DBF-файлы, при "привязывании" таблицы к единому файлу базы данных имеются следующие преимущества: длинные имена таблиц и полей (до 254 символов), вспомогательные имена и комментарии для каждого поля; значения по умолчанию для каждого поля; правила ввода как на уровне поля, так и на уровне записи; триггеры, срабатывающие при удалении, обновлении и добавлении записи; хранимые процедуры, которые хранятся в базе данных и не требуют дополнительного указания библиотеки процедур (кстати, таких библиотек теперь можно открывать сколько угодно).
Помимо локальных данных, все больший интерес разработчиков вызывают данные, хранимые серверами баз данных (например, Microsoft SQLServer). Обращение к такой информации обычно подразумевает работу в системе, построенной на базе архитектуры клиент-сервер. Раньше доступ к этим данным обеспечивался средствами программного продукта FoxPro Connectivity Kit, продававшегося отдельно и позже включенного в состав FoxPro 2.6 Professional Edition. Теперь же все средства, необходимые для построения запросов к серверу баз данных, встроены в Visual FoxPro. Все, что нужно - это просто установить Visual FoxPro. Доступ к данным производится через интерфейс ODBC. В частности, есть возможность получать динамически обновляемые результаты запросов. Для управления процессом можно использовать один из новых элементов интерфейса - таймер, который через определенные промежутки времени выполняет запрос к серверу, так что у пользователя на экране всегда будет находиться наиболее свежая информация.
Все компоненты объединяет значительно модифицированный Менеджер проектов. В проект можно включать таблицы, базы данных и классы. Очень интересно построено само окно Менеджера проектов. Его не только можно превратить в узкую полоску и разместить где-нибудь с краю, но можно также "оторвать" любой из отдельных "листков" проекта и перемещать по экрану.
Пакет Visual FoxPro - это полноценное 32-разрядное приложение, которое работает не только под 16-разрядными Windows 3.x, но и под Windows NT и Windows 95. При установке на Windows 3.x или Windows для рабочих групп Visual FoxPro инсталлирует Win32s. Развитые новые возможности требуют достаточно мощной техники. По своим требованиям к технике Visual FoxPro похож на Microsoft Access 2.0.