Параметры настройки приложения должны храниться в следующих местах:
1. БД приложения – рекомендуемое место для сохранения всех настроек приложения. Преимуществом является возможность централизованного их изменения, прозрачность при разработке и тестировании и т.д.
Рекомендуется, чтобы для этих целей использовались соответствующие таблицы, позволяющие внесение изменений с помощью инструментов непосредственного доступа к данным таблиц БД.
2. Конфигурационные файлы (.ini-файлы). Обычно содержат те параметры, которые невозможно использовать в таблицах БД, в частности, параметры подключения к БД. Необходимо, чтобы они имели текстовый формат и позволяли редактирование с помощью текстовых редакторов. Запись в конфигурационные файлы должна осуществляться только приложениями для их редактирования, либо по специальной команде. В любом другом случае, в частности, при обычной работе прикладных приложений, предусматривается, что приложениям имеют доступ к конфигурационным файлам только для чтения. Хранить их рекомендуется в одной папке с соответствующими исполняемыми файлами. Имя для конфигурационного файла выбирается таким образом, чтобы оно соответствовало имени проекта + расширение ".ini"
Стандартная структура конфигурационного файла выглядит следующим образом:
[DBDefine] // Общая секция, регламентирующая подключение к БД
UserName=Имя пользователя по умолчанию
UserPassword=Зашифрованный пароль в текстовом виде
DBName=имя сервера:путь к БД или псевдоним БД
[Main] // Общая секция, содержащая общие параметры
[Имя приложения, для которого создана эта секция] //Секции, специфичные для приложений
Сохранение параметров, отражающих текущее состояние приложений в глобальные конфигурационные файлы не допускается. При необходимости выполнения данной операции следует создать локальный для каждого пользователя конфигурационный файл в личной папке пользователя, доступной ему для чтения и записи, однако для этих целей рекомендуется использовать реестр Windows.
3. Реестр Windows. В зависимости от категории параметров настройки (глобальные или специфичные для пользователя) используется соответствующая корневая ветвь реестра (соответственно HKEY_LOCAL_MACHINE или HKEY_CURRENT_USER).
Рекомендуется, чтобы в реестре Windows сохранялись только те настройки, без которых приложение может первоначально успешно запуститься (т.е. настройки, сохраняющие, например, расположение окон, имя последнего пользователя и т.д.), а также те настройки, которые не предусматривают их непосредственного редактирования пользователем (с помощью regedit), за исключением тех, которые изменяются специально созданным для этого приложением.
Записывать настройки в системный реестр следует под ключом со следующим форматом:
HKEY_CURRENT_USER\Software\<Company Name>\<Product Name>\<Ver Number>\...
Company Name - Имя компании - разработчика.
Product Name - Имя программного продукта
Version Number - Номер версии программного продукта Major.Minor.
Рекомендуется, чтобы приложение ограничивалось записью в реестр с корневой ветвью HKEY_CURRENT_USER. Следует учитывать, что в средах с разграничением прав пользователя пользователь обычно имеет доступ к корневой ветви HKEY_LOCAL_MACHINE только на чтение.
Каждое приложение должно непосредственно управлять транзакциями. В том случае, если приложение предусматривает пользователю возможность сохранять и отменять данные, то это рекомендуется делать в рамках транзакции с выполнением, соответственно, операций Commit и Rollback.
В целом, рекомендуется, чтобы транзакции открывались как можно на более короткий промежуток времени и охватывали по возможности минимальное количество таблиц и записей.
В том случае, если пользователь имеет возможность переходить между различными таблицами приложения, то рекомендуется, чтобы запросы к таблицам были открыты только в тот момент, когда пользователь считывает с них данные или вносит изменения. В любом другом случае (когда таблицы/запросы/представления не используются пользователем) рекомендуется держать компоненты для доступа к ним неактивными.
При написании приложения следует подразумевать, что работать с ним будет множество различных пользователей как на одной вычислительной машине, так и в сетевом окружении.
Типичное приложение, разрабатываемое для платформы Windows XP (2000/NT) должно быть спроектировано таким образом, чтобы учесть следующие моменты:
Приложение должно быть реализовано без каких-либо ограничений на исполнение в сетевой среде, в частности, необходимо учитывать возможность запуска приложения с общего сетевого ресурса на сервере, возможность работы в режиме терминального сервера, возможность использования сетевой версии приложения на одной локальной вычислительной машине и т.д.
Copyright © 2004 Вячеслав Колдовский Специально для Delphi Plus