Где и как правильно хранить настройки программы?

Программа на С# (но в принципе это не столь важно), до этого использовал стандартный app.config, быстро удобно, но его возможностей стало не хватать. Во первых параметров стало много: сохранение состояний всех окон, некоторых контролов, настройки самой программы, настройки подключения к серверу, которые надо шифровать ну и т.д. В общем решил написать свой велосипед, теперь думаю где это все хранить, и соответственно как реализовать.


На данный момент склоняюсь к созданию своего класса настроек и его бинарной сериализацией, но вот вопрос, где его хранить? Не хотелось бы его держать в папке с программой, и для каждого пользователя иметь отдельные настройки.
  • Вопрос задан
  • 7109 просмотров
Решения вопроса 1
taliban
@taliban
php программист
Самая большая тупость разработчика — хранить настройки в одной папке с программой.
msdn.microsoft.com/ru-ru/library/system.environment.specialfolder.aspx
Хранить настройки надо либо здесь Environment.SpecialFolder.ApplicationData либо здесь Environment.SpecialFolder.LocalApplicationData
Эквиваленты в привычном виде вроде:
c:\Users\\AppData\Roaming\ и
c:\Users\\AppData\Local\
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
ncix
@ncix
Предприниматель
реестр?
Ответ написан
Комментировать
MaxFX
@MaxFX
Могу порекомендовать Isolated Storage для хранения состояний
Ответ написан
Комментировать
evlntnt
@evlntnt
А SettingsBase чем не подходит? Сохранять можно как для пользователей, так и для всей программы в целом.
Ответ написан
Комментировать
А что мешает написать свои сериализуемые классы для хранения настроек и добавить их в тот же app.config? ИМХО, свои велосипеды изобретать в таких вещах не стоит, лучше использовать стандартные средства. А то получится как всегда: понаписали программ, постоянно пишущих что-то в Program Files, пришли на семерку — а там оно не работает. Вы уверены, что в винде-восьмерке, например, данные будут храниться там же и так же, как и в семерке?
Ответ написан
@ComputerPers
Щас наберу =)

INI — не?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы