Подтвердить что ты не робот

С# App.config vs Файл настроек

Это может показаться тривиальным вопросом, однако я кратко просмотрел веб-страницы и обнаружил, что app.config является в основном более старым механизмом для хранения ключей/пар данных приложения для приложения.

Что я хочу знать, есть ли какая-то причина, по которой мы (как разработчики .NET) предпочли бы использовать app.config поверх Settings file?

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

еще раз спасибо

4b9b3361

Ответ 1

App.config для настольных приложений и Web.config для веб-приложений являются частью системы конфигурации .NET. В первую очередь они используются для управления настройками платформы .NET в отношении нашего приложения. Это такие параметры конфигурации, как замены версий сборок (раздел <assemblyBinding> ), замена версии .NET framework (<startup> ) и т.д. (См. msdn для полной схемы app.config.) Один раздел предназначен для пользовательских настроек разработчиков приложений (<appSettings> ). Существует также возможность создавать пользовательские разделы. Таким образом, когда нам нужно сохранять настройки, мы можем либо копировать файлы app.config, либо создавать собственные отдельные файлы конфигурации.

Вот плюсы и минусы использования app.config:

  • Pro: В .NET уже есть стандартный API для чтения настроек из раздела appSettings. Если вам нужно всего лишь несколько настроек конфигурации, гораздо проще использовать этот готовый API, чем разрабатывать и тестировать свой собственный класс для чтения ваших файлов конфигурации. Кроме того, файл app.config уже включен в проект VS для вас.

  • Pro: Существует стандартная иерархия machine.config/app.config. Если вы планируете такие настройки, которые могут быть установлены в машинном масштабе и переопределены или оставлены как есть для отдельных приложений, вы должны использовать app.config.

  • Pro/Con: App.config кэшируется во время выполнения. Если вы планируете обновлять его во время работы вашего приложения, вам нужно специально запросить обновление определенного раздела файла конфигурации. Для web.config веб-приложение автоматически перезапускается, когда что-то изменяется в файле. Это довольно удобно.

  • Con: app.config хранится в том же каталоге, что и ваш .exe файл. Обычно он будет находиться в подпапках C:\Program Files. Этот каталог дополнительно защищен в Windows 7 от записи. Вам нужно быть членом группы "Администраторы", чтобы писать там, и если ваш уровень контроля над UAC (User Access Control) на панели управления не установлен в 0 (что обычно не является), OS будет запрашивать подтверждение записи в c:\Программные файлы. Таким образом, пользователи без прав администратора не смогут изменять конфигурацию в app.config. То же самое касается изменения ваших настроек программным образом: ваше приложение получит исключение при попытке написать app.config, если оно работает не под пользователем администратора в Windows 7. Ваши собственные файлы конфигурации обычно переходят в папку C:\ProgramData\или c:\Users (в Windows 7). Эти местоположения более удобны для написания пользователями или программами.

  • Con: Если пользователь отредактировал файл app.config и случайно повредил его, все приложение не начнет с какого-то неясного сообщения об ошибке. Если ваш отдельный файл конфигурации поврежден, вы сможете предоставить более подробное сообщение об ошибке.

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

Ответ 2

У вас есть обратный, файл настроек (или ini файл, поскольку они были изначально выведены) был механизмом, используемым для хранения настроек приложения (пары ключ/значение) до Windows 95. С выпуском Windows 95 было рекомендовано, чтобы настройки приложения будут перенесены в реестр Windows (что оказалось проблематичным, поскольку, если вы испортили свой реестр, Windows больше не сможет запускать).

Файл .config вошел в игру с .Net. Формат XML позволяет создавать более динамичные и сложные настройки, чем простые пары ключ/значение.

Современный файл user/settings является расширением XML файла .config(параметры, которые могут переопределять определенные параметры в .config при определенных условиях).