Есть ли причина не использовать реестр Windows для настройки программы? - PullRequest
4 голосов
/ 19 января 2010

Для меня это ежу понятно.Настройки для моей программы идут в реестр Windows.В конце концов, для чего это нужно, не так ли?

Но некоторые программисты все еще колеблются в использовании Реестра.Они утверждают, что по мере роста он замедляет работу вашего компьютера.Или они утверждают, что он поврежден и приводит к неисправности компьютера.

Таким образом, они пишут свои собственные файлы конфигурации или могут использовать файлы INI, которые Microsoft устарела с тех пор, как несколько ОС назад.

Из того, что я слышал, проблемы с реестром, которые возникали на ранних этапахОС Windows были в основном исправлены начиная с Windows XP.Это может быть множество компаний, которые занимаются очисткой реестра, которые поддерживают слухи о том, что «раздувание реестра» и «осиротевшие записи» все еще плохи.

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

Ответы [ 6 ]

9 голосов
/ 19 января 2010
  • Если пользователь не разрешает доступ к реестру, вы облажались.
  • Если пользователь переустанавливает Windows и хочет перенести свои настройки, это намного сложнее, чем с простым файлом
  • Работа с файлом конфигурации означает, что ваше приложение переносимо
  • Гораздо проще для пользователя изменить настройку вручную
  • Когда вы захотите перенести свое приложение на другую ОС, что вы будете делать с настройками реестра?
3 голосов
/ 20 января 2010

Реестр Windows раздутый.Вы действительно хотите внести свой вклад в этот хаос?

Для меня быстрая установка, миграция и перемещение приложений является ключевым моментом для повышения производительности.Я не могу, если мне нужно заботиться о сотнях возможных ключей реестра.Если в моей пользовательской папке есть простой файл .ini или .cfg или .xml (или даже каталог приложения, если это переносимое приложение), миграция будет легкой.

Часто слышимый аргумент в пользу реестра: легкописать и читать (при условии, что вы используете обычный WinAPI).В самом деле?Я считаю, что семейство функций RegXXX довольно многословно ... слишком много вызовов функций и ввод текста для хранения всего лишь нескольких битов информации.Таким образом, вы всегда заканчиваете работу с реестром ... и теперь сравните эти усилия с простым текстовым файлом конфигурации, возможно, просто key=value.

2 голосов
/ 19 января 2010

Лично я просто не люблю бинарную конфигурацию любого типа. Я предпочитаю формат текстового файла, который можно легко скопировать, отредактировать, преобразовать и объединить, а также поставить под контроль изменений вместе с историей.

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

2 голосов
/ 19 января 2010

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

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

А мои программы не способствуют замедлению работы компьютера.

2 голосов
/ 19 января 2010

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

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

0 голосов
/ 20 января 2010

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

В реестре вам необходимо написать «текущему пользователю», чтобы быть уверенным в том, что у вас есть доступ (и во многих случаях он должен это делать). Файлы конфигурации должны быть также помещены в пользовательскую область (например, AppData / Local), если вы хотите «гарантированный» доступ без вопросов. Насколько я знаю, размещение файлов конфигурации в «глобальных» областях может привести к проблемам с доступом, так же как и к реестру.

...