Настройки приложения

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

Примеры :

  • коэффициент расчета премий
  • время хранения информации о поставках до помещения в архив
  • значение, которое будет использоваться по умолчанию при создании нового персистентного объекта …

и т.д.

Компонент XafariBCSettings предоставляет инструменты для разработки механизма настройки параметров XAF-приложения.

В общем случае, разработчику необходимо описать требуемые настройки с использованием интерфейсов, поставляемых XafariBCSettings. Настраивать можно данные любого типа, в том числе и персистентного.

[code lang="csharp"]

[/code]

Для наиболее распространенных типов XafariBCSettings предоставляет уже описанные настройки.

Пользовательский интерфейс для редактирования значений настроек будет сгенерирован автоматически, для удобства работы настройки можно легко объединять в группы:

 

UI работы с настройками

UI работы с настройками

Доступ в коде к значениям всех настроек осуществляется с помощью класса SettingsAccessor:

[code lang="csharp"]

[/code]

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

Слои настроек

Слои настроек

 

Для реализации иерархии слоёв XafariBCSettings предоставляет набор абстрактных классов. Логика описания иерархии слоев реализуется разработчиком:

[code lang="csharp"]

[/code]