2010-01-19 3 views
4

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

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

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

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

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

ответ

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

Портативный в двух смыслах слова: во-первых, он более переносим на разных платформах, во-вторых, приложение можно легко перемещать с машины на машине, так как после него будут файлы конфигурации. – Thomi

+3

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

+2

Вам все равно придется копировать программу, даже с решением реестра. Но копировать файл проще. –

2

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

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

2

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

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

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

2

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

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

3

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

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

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

0

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

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