Плюсы и минусы свободно и XML конфигурации - PullRequest
0 голосов
/ 28 февраля 2011

Если вы собираетесь начать новый проект с некоторыми сторонними библиотеками (ведение журнала, orm, di и т. Д.), Вы бы предпочли настроить все эти библиотеки с помощью программирования с использованием свободно распространяемых интерфейсов или с файлами XML?

Вы бы использовали библиотеку, которая поддерживает только один из этих параметров (Fluent или XML)?Или вы предпочитаете библиотеки, которые дают вам возможность выбирать между различными стратегиями конфигурации.

Для тех, кто любит код, возьмите это в качестве гипотетического примера (написанного на C #).

ЭтоКонфигурация Fluent:

LogConfiguration.ConfigureStorage()
   .ForDatabase("CommonDB")
     .AsMsSqlDatabase()
     .WithConnectionString("server=(local); database=Northwind; Integrated Security=true;")
     .AsDefault();

Конфигурация XML:

<logging>
    <database name="CommonDB" provider="MSSQL" connString="server=(local); database=Northwind; Integrated Security=true;" default="true" />
</logging>

Наконец, каковы плюсы и минусы конфигурации Fluent и XML?

До сих пор мы пришли к следующему:

Свободная конфигурация в коде

Плюсы

  • Сильно типизировано, оценивается компилятором
  • Условная конфигурация

Минусы

  • Не удалось перенастроить после сборки

Конфигурация XML

Плюсы

  • Возможность простого изменения после развертывания

Минусы

  • XML является многословным
  • Более уязвим для ошибок при вводе

Ответы [ 3 ]

1 голос
/ 28 февраля 2011

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

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

0 голосов
/ 04 марта 2016

Я бы сказал, что конфиги XML могут быть менее многословными и даже более простыми, чем конфиги Java.

Посмотрите на мое сравнение одинаковых настроек на XML и Java DSL в конфигурации wireTap Spring * Integrations

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

0 голосов
/ 28 февраля 2011

Если я правильно понял вас, говоря свободно в коде? Если так, то определенно я бы выбрал XML. Если под беглым вы подразумевали чистые текстовые файлы, то все равно я бы выбрал XML. Плюсы:

  • читаемость
  • самодокументированные теги (конечно, если вы их создаете;))

Минусы:

  • длина файла, но я бы не стал беспокоиться об этом

В настоящее время все мои проекты основаны на XML.

...