2010-05-16 63 views
2

我知道INI或appconfig XML的偏好是他們的人的可讀性。使用ini/appconfig文件或sql server文件來存儲用戶配置?

假設爲我的應用程序存儲的用戶偏好是分層的,數字大概有一千個項目,並且用戶編輯INI以改變內容將會非常令人困惑。

我一直在使用INI和appconfig的組合。

我傾向於使用SQL Server數據庫文件,現在。每當用戶在使用應用程序時更改首選項,它都會存儲到db文件中 - 這是我的思路。我也認爲這樣的配置數據庫文件可以隨着應用程序移動,就像INI一樣。

在我這樣做之前,有任何建議
1.如果通過INI或appconfig使用db文件有任何缺點。
2.如果一家商店使用mysql或oracle,你認爲你的同事會提出他們的pro-mysql或pro-oracle眉毛,質疑你爲什麼要在mysql或oracle商店中使用sql server技術?我的意思是,我只是像使用INI文件或app.config一樣使用它,對嗎?

附加信息
我希望人們看我的問題,明白,我沒有使用「企業數據庫」,而是存儲與應用「preferences.mdf」。我希望使用ado.net將用戶配置項目存儲爲實體。

回答

2

我的一般方法是將用戶配置條目放入數據庫(集中在我們的案例中,但同樣適用於本地存儲)。

但是,這也有例外,我將以下內容存儲在基於文本的文件(應用程序)中。配置通常):

  1. 有關如何連接到數據庫的詳細信息(我更喜歡在配置文件中,而不是使用約定)。
  2. 任何可能會阻止應用程序正常啓動的設置。

如果有些設置可能會破壞啓動,用戶應該能夠在不使用軟件的情況下訪問它們 - 在基於文本的存儲中是最好的。在代碼中,我編寫了一個單獨的配置類,它知道配置條目是存儲在文本文件中還是存儲在數據庫中;這允許我將配置從一個移動到另一個,而不會中斷所有對它的引用。

Herbie

3

我經常將用戶偏好存儲在一個集中的數據庫中,因爲這意味着用戶的設置可以從PC漫遊到PC。

另一個優點是正在備份用戶首選項。

4

這真的取決於您的應用程序的體系結構。

例如,如果您要創建Web應用程序,那麼您將需要將用戶設置存儲在數據庫中,因爲無論如何整個用戶/角色系統都將存儲在數據庫中。

如果它只是一個簡單的桌面應用程序,在單個機器上使用而軟件副本之間沒有交互,那麼您可以使用XML文件來存儲設置 - 使用數據庫可能會矯枉過正,特別是如果您不是使用數據庫做其他事情。

當然,兩種方法都有優點和缺點。如果你使用數據庫,這意味着在部署中涉及更多的設置步驟(同樣取決於你的體系結構),而使用簡單的配置文件更加輕便,可以輕鬆移動。

有一點需要注意:如果你走數據庫路由,你將需要使用配置文件,無論如何存儲連接到數據庫所需的信息。