0

如果我們即將開始一個帶有一些第三方庫(logging,orm,di,whatever)的新項目,您是否希望通過使用流暢接口進行編程來配置所有這些庫或與XML文件?Fluent和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> 

最後,有什麼優點和缺點流利和XML配置?

到現在爲止,我們已經來到這個:

流利配置在代碼

優點

  • 強類型由編譯器
  • 條件配置
評估

缺點

  • Unabled後重新建立

XML配置

優點

  • 能力後輕易改變部署

缺點

  • XML是冗長
  • 更容易打字錯誤

回答

1

我傾向於使用XML的屬性我可能要改變,後期生成(如作爲連接字符串,記錄器)

我更喜歡強類型(compil編碼)流暢的配置代碼,例如NHibernate映射,這些映射只在開發過程中發生變化。

0

如果我通過流利的語言來正確理解你的意思是代碼?如果是這樣,那麼我肯定會選擇XML。如果通過流利你的意思是純文本文件,那麼我仍然會選擇XML。 優點:

  • 可讀性
  • 自我記錄標籤(當然,如果你創建的;))

缺點:

  • 文件的長度,但我不會理會那

目前我所有的項目都是基於XML的。

+1

通過代碼中的配置,您可以具有相同(或更好)的可讀性,以FluentNHibernate和.hbm.xml文件之間的差異爲例。在這種情況下,我發現流利的方式更容易理解。 – goenning 2011-02-28 14:16:11

+0

在這個例子中,作者提到了一些重要的事情 - >數據庫配置。在那種情況下,確定XML是更好的方法。而hibernate的實體配置,我也放在源代碼中。問題是作者的真正含義?哪部分配置? – 2011-02-28 14:22:17

+0

我是作者:)我對你的回答的評論是關於可讀性和不可維護性的。談到部署後更改配置(如連接字符串)時,我也同意XML更好。 – goenning 2011-02-28 14:32:50