流畅和XML配置的优缺点

时间:2011-02-28 13:44:20

标签: configuration-management fluent-interface xml-configuration

如果您要使用某些第三方库(日志,orm,di等)开始一个新项目,您是否更愿意通过使用流畅接口或XML文件进行编程来配置所有这些库?

您是否会使用仅支持其中一个选项(Fluent或XML)的库?或者您更喜欢可以在各种配置策略之间进行选择的库。

对于那些喜欢代码的人,请将此作为一个假设的例子(用C#编写)。

这是流利的配置:

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 个答案:

答案 0 :(得分:1)

我倾向于使用xml作为我可能想要在构建后更改的属性(例如连接字符串,记录器)

我更喜欢代码中强类型(编译)的流畅配置,例如NHibernate映射,只在开发过程中发生变化。

答案 1 :(得分:0)

如果我能用流利的方式理解你,你的意思是代码?如果是这样,那么我肯定会选择XML。如果你说流利的是纯文本文件,那么我仍然会选择XML。 优点:

  • 可读性
  • 自我记录标签(当然,如果你创建那些;))

缺点:

  • 文件长度,但我不打扰

目前我的所有项目都是基于XML的。

答案 2 :(得分:0)

我认为XML配置可能不如Java配置那么冗长甚至更简单。

查看我对the same config on XML and on Java DSL in Spring Integrations's wireTap config

的比较

对于缺乏经验的程序员来说,XML配置也可能更为熟悉。因此,在未来维持此类配置的努力可能会更少。