2011-04-22 62 views
1

我有一個web應用程序,它允許某些域對象與一個url相關聯。現在,如果我們將生產數據庫回滾到我們的開發數據庫(我們經常這樣做),我們必須進入適當的表格並更改網址以指向它們的開發環境。我的經理希望有一種方式將網址存儲在某種平面文件中,因此,當我們回滾數據庫時,我們不必更改任何網址。生產環境將具有自己版本的帶有生產URL的平面文件,而開發環境將具有其自己版本的帶有開發URL的平面文件。應用程序將只讀取當前環境中的平面文件。他還希望最終用戶能夠通過界面在平面文件中刪除這些網址。現在我正在嘗試通過選項,看看什麼是最好的。它是在讀取/寫入一個xml文件或使用MongoDB(第一次在這裏使用它)之間。寫入XML文件或使用MongoDB?

如果任何人可以給我任何建議,哪一個會是理想的(或任何其他建議),我會非常感激!

這是一個asp.net 3.5 web應用程序。

+0

所以,這只是一個網址列表?爲什麼不會有名稱值對的簡單文本文件呢? – Oded 2011-04-22 18:23:39

+0

它實質上只是一個url列表,但是具有域對象具有對url的鍵(id等)的引用的任務,並且確保這些鍵是唯一的,但不夠獨特(guid)生成版本的平面文件與開發平面文件具有相同的ID以及文件鎖定的潛在問題的可能性非常小,我想知道是否有更好的替代方案,而不僅僅是文本文件。 – 2011-04-22 18:30:02

+0

如果緩存文件並使用緩存版本,則不會有IO爭用。 – Oded 2011-04-22 18:31:11

回答

1

可能使用平面文件(鍵值對 - 每行一個)。

如果緩存文件,IO爭用可能會非常低。

假設更改不頻繁,您也可以在緩存中編寫一個包裝,當它更改並將更改寫入磁盤時使其無效。這將開始表現不佳,併發更改列表發生。

0

的其他建議:

你可以有與生產一個替代發展網址的行爲和那些2點的值存儲在web.config中。我正在爲一個項目做這個,它工作正常。我從我的數據庫執行備份,在線恢復,調用我的更新操作,在我想要替換一個url並將其保存回來的所​​有對象中執行一個循環。

+0

這不只是兩個網址。每個域對象可以有一個完全獨特的URL。另外,我不想在回滾之後做一些更改網址的操作。我們現在正在這樣做,它只是更新數據庫。我們想擺脫那一步。 – 2011-04-22 19:14:53

+0

那麼你可以用mongo做,如果你願意的話,使用這個很容易:https://github.com/craiggwilson/fluent-mongo – VinnyG 2011-04-22 19:28:14