2011-09-22 27 views
3

我有有像erroremailid某些特定設置的應用程序,等等maxcapcount 我在appsetting塊存儲這些值。誰能告訴我,這將是以下兩個選項之間進行更好的(性能明智): 1.設置存儲在web.config中 2.在正常的XML文件保存設置,然後讀取它們差異,用於存儲應用程序設置

一些文章中指定的性能差異會也很好。

感謝 Ashwani

回答

3

點是不是表演,你覺得爲什麼在.NET框架將是任何更快的在讀一個XML文件VS另一個呢?

.NET的工作方式是從應用程序配置文件中檢索某些設置(不僅是appSettings部分),該文件對於ASP.NET爲web.config,對於可執行應用程序爲exefile.exe.config

在像windows窗體應用程序這樣的可執行文件中,您還可以在配置文件中的運行時將應用程序的設置保存在ASP.NET中,但即使API相同也會讓您調用save方法,但web.config不會因爲它只是只讀而被打開,因爲每次更改時都會重新啓動Web應用程序。

無法想象將其他自定義設置放入另一個單獨的XML文件中會更慢或更快,與web.config相比,優勢在於您可以在沒有Web應用程序的情況下隨時編輯此類xml文件隨時在web.config中保存更改時重新啓動。

仍然。 .NET將從web.config中獲得appSettings,這樣你就可以只用其他類型的設置來放入另一個文件,然後你必須親自閱讀這些設置,不確定是否可以指示ConfigurationManager從另一個文件讀取。

有在web.config中許多其他部分所採取的應用程序的其他部分,如果你將這些地方移動.NET不會自動把這些給你,例如默認的SMTP服務器。

+1

另一件值得一提的是繼承wep.config文件給你 - 每個文件都從AppDomain層次結構中的先前文件夾繼承而來。 – cjk

+0

我得到了一個朋友的評論,web.config是COM包裝,所以它會慢,然後閱讀一個XML文件?我說過,兩者在表現上都是一樣的,但我沒有任何參考。 –

2

您在您的處置幾個班已經是讓你從你的web.config讀取設置。如果你選擇使用你自己的xml文件,你將不得不編寫代碼來自己讀取這些值(不過這並不是特別困難),但是性能方面,web.config值只讀取一次並存入內存(再次,如果你實現自己的類來從你的xml讀取設置,你可以自己做這個),因此速度很快。

另一個區別是,asp.net再次檢測自動更改web.config文件並加載它們當這種情況發生。因此您可以在運行時不指定應用程序的情況下將應用程序指向不同的數據庫,並且應用程序會在您手動回收應用程序時立即收到更改。

+0

@伊卡洛斯我認爲xmls可以在飛行中更新?不是web.configs? – sealz

+0

web.config也。有這方面的方法。谷歌它一點。我現在走路,我在一個牢房裏。 – Icarus

+0

沒問題,我想仔細檢查我現在需要編輯我的答案。謝謝! – sealz

0

webconfig對於那些不打算更改設置(可以使用內置的方法,使他們雖然在飛行中更新)。

如果你有很多的設置正在改變,然後保存爲一個單獨的XML將是一個更好的解決方案,因爲你可以在飛行中進行更新。

編輯:

尋找一些新的信息,可能對以及使用內置的方法飛使用webconfig設置後。 (見伊卡洛斯的回答)