Лучшие практики для пользовательских настроек / конфигурации в клиентском приложении c # - PullRequest
3 голосов
/ 31 января 2010

Я работаю над приложением .NET, которое также будет работать на iphone через monotouch и osx / linux через mono. Приложение будет содержать профили для различных пользователей, а профиль, используемый для определенного сеанса, будет выбран при запуске, например, Skype.

Чтобы сохранить настройки для каждого пользователя, я рассматриваю возможность использования системы параметров приложения, которая является частью .NET. Тем не менее, эта система, кажется, полагается на отражение, которое не доступно на iphone. Я также не уверен, будет ли эта система работать на платформах, отличных от Windows.

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

Наконец-то я смог накатить свое собственное файловое решение.

Каковы компромиссы для этих подходов? Почему .NET имеет специальную поддержку пользовательских настроек? Кажется, что это довольно простая вещь, которую кодировщики должны делать самостоятельно, и наличие выделенной поддержки в рамках .NET заставляет меня подозревать, что я упускаю некоторую сложность.

Спасибо!

1 Ответ

1 голос
/ 31 января 2010

Первая мысль - не используйте параметры конфигурации, используйте базу данных sqlite, как на iPhone, и лучший подход. Помните, что MonoTouch просто транслитерирует .NET-код в эквивалентный код Objective C и компилируется в собственный двоичный файл, и вы можете столкнуться с трудностями, если используете специальный код Windows / Mono, который может отсутствовать на iPhone.

Избегайте таких шуток, как чума, если вы хотите, чтобы ваш код работал на всех платформах.

.Net поддерживает пользовательские настройки, потому что Microsoft разработала их таким образом.

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

...