2010-06-18 140 views
4

我有一個關於存儲站點配置數據的問題。什麼是存儲站點配置數據的最佳方式?

我們有一個Web應用程序的平臺。這個想法是,不同的客戶可以將自己的數據託管並顯示在位於該平臺之上的自己的站點上。每個網站都有一個配置,用於確定哪些面板與客戶端相關。

該系統最初設計用於保存數據庫中每個站點的所有配置數據。加載站點時,所有配置數據都將加載到SiteConfiguration對象中,並且客戶端面板將根據此對象的內容生成。這是有效的,但是我發現要應用更改請求或添加新站點非常困難,因爲有太多數據需要篩選,難以維護其配置的網站的心智模型。

最近我一直在負責開發的一些網站的子集被作爲打印PDF文檔生成。我決定採用不同的方法來定義配置,而不是將配置數據存儲在數據庫中,我編寫了XML文件來包含數據。我發現處理起來要容易得多,因爲我沒有閱讀與其他無意義數據行有關的無意義數據行,而是使用語義可讀信息和可視化可理解元素嵌套定義的關係來獲得有意義的文檔。

所以,現在這些2種的方法來存儲站點配置數據,我想獲得的人在處理這個問題上處理這兩種方法較有經驗的意見。存儲站點配置數據的最佳方式是什麼?有沒有比我在這裏概述的兩種方式更好的方法?

說明: StackOverflow告訴我這個問題似乎是主觀的,很可能會被關閉。我並不想成爲主觀的人。我想知道下次如何最好地處理這個問題,並且如果有行業經驗的人可以提供一些意見。

+0

fyi - Stack Overflow會告訴你這個問題似乎是主觀的,因爲它在標題中包含單詞「best」...並且你在徵求意見,這是主觀imho的定義 – Jon 2010-06-18 08:55:53

+0

「最好的方式「主要是根據定義來定義一個問題,其中存在太多具體情況和有影響力的變量。 – 2010-06-18 08:56:36

+1

通過配置您的意思是內容和網站結構?將這些數據放入表格沒有任何問題。只要你有一個(用戶)界面來完成維護(子)站點所需的任務。使用Management Studio不是做這件事的方法。 – 2010-06-18 08:58:50

回答

0

是否需要針對每個客戶端的具體配置是可能是最好的數據庫爲其編寫使非技術人員也可以管理它的管理工具完成的信息。當你需要版本/歷史時,它也更容易。 XML並不總是最好的部分。另外,XML最終難以維護(對於非技術人員)。

您是否每次從磁盤讀取XML(性能命中)還是將它保存在內存中?無論您選擇哪種解決方案,高速緩存對性能都有很大影響。

Grz,Kris。

+0

我目前每次都從磁盤讀取xml,但如果需要的話,很容易將數據存儲在緩存中。系統的這個子集只能週期性地運行,所以目前磁盤性能並不是真正的問題 – DaveDev 2010-06-18 09:00:22

0

您使用ASP.NET這樣有什麼錯的web.config您的基本設置(如果它的每個項目的部署),然後根據你所說的,任何東西更復雜的自定義XML或數據庫配置設置(或者,如果你有多個用戶/客戶使用相同的項目部署)?

我只使用自定義XML文檔的東西,像「網站佈局的文檔」裏的東西會不會經常變動,因此你將有很多半無意義的數據(如23553123)的。無論如何,佈局應該儘可能地用css來處理。

+0

每個文件都是〜20kb,因此將其存儲在web.config中並不實際。我看到你在說什麼 – DaveDev 2010-06-18 09:04:03

0

對於我們的團隊XML是一個不錯的選擇(的app.config或web.config文件或自定義配置文件,這取決於),但有時它是更好的設計時的配置API,使代碼的配置。例如modern IoC containers具有fluent interfaces的代碼內配置API。如果您需要配置許多類似於其他實體或希望實現良好的人類可讀性,此方法可以帶來益處。但是,如果非程序員需要進行配置,這不起作用。

相關問題