Вопрос

Я читал много высказываний типа «вам не следует засорять файл app.config пользовательскими настройками".Однако у меня сложилось впечатление, что именно в этом и заключалась цель файла?

Действительно ли это просто предпочтение?Или есть ли какие-либо реальные преимущества (кроме разделения настроек) от использования специального XML-файла по сравнению с файлом app.config?Если вам нужно явно разделить настройки, лучше использовать собственный ConfigurationSection вместо того, чтобы выбрать собственный XML-файл?

Я хотел бы поделиться мыслями других людей по этому поводу.

Это было полезно?

Решение

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

Я склонен использовать их только тогда, когда мне нужно что-то очень структурированное;и который используется/написывается третьими лицами (т.е.Я хочу провести некоторую экстравагантную проверку).

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

Другие советы

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

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

Большинство настроек, как правило, попадают в один из трех лагерей:

  1. Технические настройки, влияющие на внутреннее поведение кода, например.строка подключения к базе данных, путь к файлу данных, переключатели журналирования, переключатели обработки ошибок и т. д.
  2. Бизнес-настройки, влияющие на бизнес-логику продукта, например.«разрешен ли пользователям доступ к модулю CRM?»
  3. Значения профиля, специфичные для пользователя, например.«разрешен ли этому пользователю доступ к модулю CRM?».

Естественным местом для типа 1 является app.config или web.config, а естественное место для типов 2 и 3 — в базе данных.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top