我正在爲asp.net c#中的客戶設計網站,他希望能夠訪問某些設置而無需修改源代碼。例如,頁面元關鍵字,一些短信和電子郵件文本以及一些數字值。那麼,這些總是寫在代碼中。但我不知道在哪裏保存它們,以便通過面板進行更改,同時保持速度和質量。用於保存有限數量設置的小型數據庫
將它們保存到數據庫中?他們有不同的數據類型;在一個XML文件?我認爲這會影響速度很多。你會建議什麼?
我正在爲asp.net c#中的客戶設計網站,他希望能夠訪問某些設置而無需修改源代碼。例如,頁面元關鍵字,一些短信和電子郵件文本以及一些數字值。那麼,這些總是寫在代碼中。但我不知道在哪裏保存它們,以便通過面板進行更改,同時保持速度和質量。用於保存有限數量設置的小型數據庫
將它們保存到數據庫中?他們有不同的數據類型;在一個XML文件?我認爲這會影響速度很多。你會建議什麼?
我們通常在Web.config的appSettings中保留小的設置。我不確定它與你的問題有關。
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="mysetting" value="abcd"/>
<add key="anothersetting" value="cdef"/>
</appSettings>
</configuration>
如果數據集小而平(例如非關係或分層),我會將數據放入您的App_Data.xml或Web.config文件中。關係數據庫對於平面應用程序設置來說太麻煩了。然後,您可以使用.NET附帶的Xml庫在運行時編輯App_Data文件。
客戶想要從管理面板編輯設置。並不會xml文件速度讓我陷入困境? –
是否有數以萬計的選項存儲在xml中。如果它是一個相對較小的數字,xml很好。 – user2366842
@AshkanMobayenKhiabani如果您在啓動時將xml文件的內容保留在內存中,則不是。然後,只要有人想編輯文件,請更新內存狀態,然後將其寫入文件。無論如何,xml I/O速度很快 - 即使沒有緩存 - 除非您正在談論成百上千個用戶更新此頁面。線程安全的開銷可能是最慢的部分。 –
一個可能的數據庫解決方案將使用ServiceStack.OrmLite與SQLite數據庫。您的設置文件將是POCO。查詢/更新發生在一行中。
另一種解決方案是使用LINQ2XML - 編寫&不時讀取小文件的開銷不大。
我並不完全不同意,但是......沒有任何與「ORM」這個詞在一起很簡單。 –
如何以編程方式授予用戶更改面板設置的權限?不會打開和關閉web.config寫入是一個問題? –
從運行時的代碼更改web.config中的設置是不正常的。但是,您可以使用另一種方法,它使用app.Config - [使用.NET 2.0讀/寫App.Config文件](http://www.codeproject.com/Articles/14744/Read-Write-App-Config-File -with-NET-2-0) – Win