2008-11-02 3 views
0

Это очень похоже на Where should cross-platform apps keep their data?, но немного расширяется.Понятие «Каталог данных» на каждой платформе

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

Например, у нас есть кросс-платформенное приложение, написанное My Corp, в My Brand, которое называется My App. Предположим, что в My Brand есть другие продукты, которые, по-видимому, хотят иметь свои собственные данные и другие бренды в My Corp. Где его данные и/или конфигурация идут в Windows? В Unix? Mac OS9? Mac OS X? Другие?

например, в Windows данные будут поступать в «... \ Application Data \ My Corp \ My Brand \ My App", тогда как в Mac OS X данные войдут в ~/Library/Application Support/My Corp/My Brand/My App », а в Unix он перейдет в« ~/.mycorp/mybrand/myapp »(я бы предположил, что другие платформы будут использовать механизм Unix, даже если базовый каталог может быть другим.)

Если нет реальной конвенции, означает ли это, кажется разумным Любые предложения для Mac OS9

ответ

1

Просто, чтобы начать свое отражение:?

Вы должны сделать четкое различие между:

  • применение состояние данные
  • настройки
  • данных (может быть общим для нескольких приложений)

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

Данные, представляющие состояние приложения, могут быть включены в «Данные приложения», как указано в вопросе «where cross-platform apps keep their data ?».

Но настройки ... Это зависит от того, если необходимо ваше приложение будет запущен с несколькими «конфигураций»:

  • один для каждой платформы: в случае, если вы должны управлять ими на стадии разработки, и пакет, файл на стадии выпуска, для того, чтобы хранить его в
  • многие для один платформы «Data Application», как и с различными размерами Heap или различными настройками, представляющих различные операции, которые будут выполняться вашим же приложением. И это приводит к взрыву установочных файлов (также хранящихся в разных подкаталогах «Данные приложения»)
    Именно поэтому идея абстрагирования этих данных в Setting Provider является хорошей идеей.

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

+0

Упаковка является проблемой только в том случае, если: a) это единый пакет для всех платформ (например, java jar, perl par и т. Д.) И b) вы отправляете настройки по умолчанию, а не оставляете их в своем коде. – Tanktalus 2008-11-02 14:39:04