我們有一個高度可配置的asp.net web應用程序。不同的組(100多個組)可以登錄到應用程序。對於每個組,我們都有一個可配置的xml文件,其中包含有關如何顯示頁面的信息。當用戶根據他們的組ID和xml文件中的配置設置登錄時,顯示網頁。在asp.net中保存動態網頁配置數據的最佳方法
例如: Group1.xml
<Group1>
<item key="Shape" value="True" />
<item key="Color" value="False" />
<item key="Submit" value="False" />
<Group1>
Group2.xml
<Group2>
<item key="Shape" value="True" />
<item key="Color" value="True" />
<item key="Submit" value="True" />
<Group2>
在上面的例子,形狀和顏色是文本框和提交是一個按鈕。根據值(True或False),我們顯示文本框或隱藏文本框,從而動態呈現網頁。
將此類型數據保存在app_data文件夾中的xml文件中,迄今爲止效果很好。但是,隨着我們在每個頁面上添加更多組和更多元素,管理每個xml文件以確保每個xml文件具有相同的元素和正確的值變得越來越困難(有數千個元素和50多個網頁)。
我們嘗試將此數據保存在數據庫的表中。但是,進行如此多的數據庫調用來逐個讀取值是非常昂貴的,並且頁面性能下降。
我們嘗試將此數據保存在表中,並在加載頁面時將表保存在數據表會話變量中。但是這些配置設置可以被其他組更改。由於其他組所做的更改不會被加載到當前用戶的會話中,直到他們刷新頁面爲止,所以我們得到了不理想的結果。
我們還嘗試在app_data文件夾中使用excel文件,並將其用作表格一次讀取一個值,所以即使其他組更改值,我們也始終會獲取最新的值以呈現頁面。不知道這是否是正確或優雅的解決方案。
什麼是存儲這種類型的配置信息的最佳方式,即使有大量的讀寫操作,頁面的性能也不會降低,並且同時很容易管理所有組中的所有這些配置設置?