2009-08-25 41 views
0

爲什麼將數據存儲在web.config文件的appSettings元素(或自定義部分內)中比將數據存儲在類?在web.config(自定義部分/ appSettings元素)中存儲數據vs將其存儲在類中

一個參數是通過使用自定義部分,當我們更改數據時,我們不必重新編譯代碼,但這是一個弱論證,特別是如果我們使用的網站,每次代碼更改時都會自動重新編譯!


謝謝

+0

你指的是什麼樣的數據存儲? – 2009-08-25 21:22:52

+0

我知道大量的數據不應該存儲在類或web.config內,但除此之外,在web.config和class之間進行判斷時,我想要存儲什麼類型的數據? – rubysons 2009-08-25 21:46:31

回答

1

通過將設置成web.config文件,讓他們都在一個集中的位置。

此外,在部署網站時,您可能需要預編譯一次。所以你不能在之後改變源代碼(沒有另外的重新編譯)。

1

重新編譯代碼並不是真正的問題,它更多的是重新部署代碼。通常,您不要將代碼部署到Web服務器,只需部署二進制文件和aspx/html文件。如果您在代碼中對配置數據進行硬編碼,則必須重新編譯和重新部署庫或應用程序以將更改提供給服務器,這比更新web.config更有用。

8

因爲您可以隨時更改它並使用它而不考慮班級結構。通過更改和維護獨立於代碼的單個文件,您的配置可以從每個開發人員機器到登臺到部署環境都不相同,並且您可以利用* .config屏蔽網站的不同區域。

硬編碼什麼配置是失敗的原因,並絕對會咬你 - 這僅僅是經驗的問題,如果你不相信它,那麼你必須要等候一小會兒!

+1

+! 「任何可配置的硬編碼都是失敗的祕訣」 – JMP 2009-08-25 21:31:32

0

這只是一個整體很容易管理和更新設置。

如果您使用記事本做你的發展,將代碼從服務器上,我會同意,沒有什麼好處,但是如果你使用Visual Studio和你構建您的網站和發佈它,你正在發佈預編譯的DLL,而不僅僅是更新服務器上的文本源代碼(.cs或.vb文件)。因此,當需要更新設置時,只需修改文本文件就可以更新web.config中的任何內容,與其他更改一樣,必須重新編譯整個網站並將其發佈。

從經驗來看,當其他開發人員接管後,變得非常棘手,因爲其他開發人員不小心確保網站工作所需的一切都在源代碼管理中。我現在堅持使用一個網站,在那裏我們不能更新它的大部分內容,因爲(善意地把它)過去的非標準做法。

能夠在不重新發佈網站的情況下更新內容對我而言是一個巨大的祝福,而且您永遠不知道糟糕的維護程序員會在您的代碼中執行哪些操作。

對他或她很好。讓簡單的改變變得容易。

1

將數據放入web.config文件還允許相同的代碼在具有不同環境相關數據的不同環境中運行。這可能意味着使用測試數據庫連接字符串在生產環境中使用生產數據庫連接字符串運行相同的網站代碼。或者,這可能意味着允許開發人員在不更改任何代碼的情況下爲自己的測試配置數據,如'annakata'所述。

相關問題