Разница между web.config и обычным XML-файлом для хранения настроек приложения - PullRequest
4 голосов
/ 22 сентября 2011

У меня есть приложение, в котором есть определенные настройки, такие как erroremailid, maxcapcount и т. Д. Я храню эти значения в блоке appsetting.Может кто-нибудь сказать мне, что будет лучше (с точки зрения производительности) между следующими двумя вариантами: 1. Сохранение настроек в web.config 2. Сохранение настроек в обычном XML-файле с последующим чтением их

Некоторые статьи, в которых указывается разница в производительностии будь хорошим.

Спасибо, Ашвани

Ответы [ 3 ]

4 голосов
/ 22 сентября 2011

Дело не в производительности, как вы думаете, почему .NET Framework будет быстрее читать один XML-файл по сравнению с другим?

.NET работает так, что определенные настройки (не только раздел appSettings) извлекаются из файла конфигурации приложения, который web.config для ASP.NET и exefile.exe.config для исполняемых приложений.

в исполняемых файлах, таких как приложения Windows Form, вы также можете сохранять настройки из приложения во время выполнения в файле конфигурации, но в ASP.NET, даже если API-интерфейсы, которые будут одинаковыми, позволят вам вызвать метод save, web.config не будет обновляется, поскольку он открывается как доступный только для чтения, поскольку при каждом изменении IIS перезапускает веб-приложение.

нет никакого способа представить, что размещение некоторых других пользовательских настроек в другом отдельном XML-файле будет медленнее или быстрее, преимущество по сравнению с web.config состоит в том, что вы можете редактировать такой xml-файл в любое время без веб-приложения, чтобы перезапустите, как это будет происходить каждый раз, когда вы сохраняете изменения в web.config.

до сих пор. .NET получит appSettings из web.config, чтобы вы могли поместить в другой файл только другие настройки, а затем вручную прочитать эти настройки, не зная, можете ли вы дать команду ConfigurationManager прочитать из другого файла.

В web.config есть много других разделов, которые используются другими частями приложения, и, если вы переместите их куда-нибудь, .NET автоматически не примет их для вас, например SMTP-сервер по умолчанию.

2 голосов
/ 22 сентября 2011

у вас уже есть несколько классов, которые позволяют вам читать настройки из вашего web.config.если вы решите использовать свой собственный XML-файл, вам придется написать код для самостоятельного считывания значений (хотя это и не особенно сложно).

с точки зрения производительности, значения web.config считываются один раз и выводятсяв памяти (опять же, вы можете сделать это самостоятельно, если реализуете свой собственный класс для чтения настроек из вашего xml), поэтому это быстро.

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

0 голосов
/ 22 сентября 2011

webconfig для настроек, которые не собираются изменяться (хотя можно использовать встроенные методы для их обновления на лету).

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

РЕДАКТИРОВАТЬ:

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

...