Cтраница 2
Гибкость, присущая этой многоуровневой архитектуре, позволяет достаточно легко разрабатывать приложения для работы с базами данных, отличающиеся не только надежностью, но и возможностью расширения и изменения. Благодаря разделению внутренних драйверов BDE и компонентов приложения, возможно ( по крайней мере, теоретически) изменять внутреннюю структуру базы данных даже без перекомпиляции приложения. Модульность архитектуры позволяет заменять отдельные участки, не разрабатывая заново все приложение. [16]
Как уже отмечалось выше, в развитых системах предусматриваются комплексные генераторы приложений. Они обеспечивают возможности для формирования всех типовых компонентов приложения - меню, экранных форм ввода-вывода, форм отчетов, генерацию кода типовых процедур обработки данных, а иногда и кода для вывода меню, экранных форм и отчетов. Кроме того, в их состав входят также сборщики полного приложения из подготовленных компонентов в рамках структуры, которая определяется меню будущей системы. [17]
При создании нового класса приложения PowerBuilder создает библиотеку с тем же именем2 и сохраняет в ней класс приложения. Хотя существует возможность хранить все классы и компоненты приложения в одной библиотеке, для больших приложений это не всегда целесообразно. Более подробно эти вопросы изложены в гл. [18]
![]() |
Пример иерархии классов.| Диалоговое окно Browse Class Hierarchy. [19] |
Так как атрибуты и правила не должны определяться для каждого класса отдельно, наследование снижает до минимума дублирование кода и время разработки, упрощает сопровождение приложения. Наследование также способствует согласованию вида и ощущений от компонентов приложения. [20]
Рассмотрим сначала средства для реализации описанных в предыдущем разделе типовых компонентов приложения - меню, экранных форм ввода-вывода данных, а также отчетов. Такими средствами, естественно, обладают комплексные генераторы приложений. Некоторые СУБД поддерживают создание и использование отдельных типовых компонентов, не обеспечивая автоматической генерации приложения в целом. Кроме того, существуют средства такого рода, реализованные в виде автономных программных продуктов. [21]
При групповой разработке должен иметься набор совместных, или производственных библиотек с готовыми классами. Эти библиотеки должны содержать копии классов, которые считаются разработанными компонентами приложения. Следовательно, каждый разработчик должен иметь свою собственную рабочую библиотеку, в которой осуществляются разработки новых и доработки существующих классов. [22]
Этот интерфейс построен в стиле разветвленного меню. Он позволяет в интерактивном режиме создавать и увязывать в единое целое все компоненты конструируемого приложения, не прибегая к непосредственному программированию. [23]
Для ЛВС с выделенным сервером СБД размещается на компьютере-сервере и к ней обеспечивается одновременный доступ с компьютеров-клиентов. Каждая из вышеупомянутых моделей имеет свои особенности, связанные, в основном, с распределением компонентов приложений ( компонента представления, прикладного компонента и компонента доступа к информационным ресурсам) между компьютерами-клиентами и компьютером ( компьютерами) - сервером ( серверами), но основополагающим моментом во всех моделях является то, что сама СБД централизовано хранится на компьютере-сервере, оказывающем услуги по обслуживанию запросов пользователей. При этом доступ к СБД осуществляется, как правило, с помощью языка SQL. Основными критериями эффективности синтеза оптимальных логических структур СБД являются: минимум суммарного времени загрузки СБД и обслуживания множества запросов пользователей, минимум суммарной длины путей доступа к искомым информационным элементам, минимум времени обслуживания оперативных запросов к СБД и некоторые другие. [24]
Средство контроля выборки и возвращения ( check out / check in), включенное в PowerBuilder, является эффективным способом управления классами приложения, функциями и структурами в многопользовательской среде. С тем, чтобы гарантировать, что два разработчика не работают одновременно с одним и тем же компонентом приложения, модифицируемый элемент должен быть проконтролирован при выборке из одной из библиотек совместного доступа и помещен в рабочую библиотеку на рабочей станции. [25]
![]() |
Пример структуры приложения. [26] |
Создание меню приложения осуществляется средствами настройки панелей инструментов. При открытии окна, как уже было сказано, может быть предусмотрено автоматическое открытие по умолчанию либо кнопочной формы, либо другой формы - интерфейса компонента приложения. [27]
Прежде всего необходимо создать таблицы стилей. Поскольку для обоих приложений страницы должны выглядеть одинаково, я использовала таблицы стилей CSS1 для создания страниц, сценарий для выбора шрифтов на основании разрешения экрана и Netscape cookie для сохранения информации. Каждый из этих компонентов приложения использует общий код, поэтому я включила его сюда, чтобы не дублировать в следующих двух разделах. [28]
Полный набор руководств по разработке, должен включать соглашения по именам. Далее следуют соглашения по именам префиксов, которые, автор нашел полезными при разработке и поддержке компонентов приложений. [29]
По соображениям производительности, файлы библиотек не должны вырастать до огромных размеров. Огромный размер в данном контексте не означает превышения некоторой границы, выражаемой конкретным числом. Максимальный размер библиотеки выбирается по усмотрению группы разработчиков и в значительной степени связан с характеристиками аппаратных средств и конфигурацией сети конечного пользователя. По мере роста размера библиотеки менеджер библиотек должен проходить все больший и больший путь для доступа к компонентам приложения. [30]