2012-03-31 23 views
0

我的團隊正在進行網絡開發(ASP.NET,WCF),我們正處於開始階段,每個人都需要更改數據庫並使用自己的示例數據。如何分離ASP.NET中的配置?

我們使用專用的數據庫服務器,我們希望每個開發人員針對單獨的數據庫進行開發。

我們似乎需要的是能夠以源代碼控制的方式在每個開發人員的基礎上配置連接字符串。顯然,我們可能有其他需要自定義設置的配置設置,最後,我們需要維護一組所有開發人員都通用的配置設置。

任何人都可以在這裏提出一個最佳實踐嗎?

PS當我們想要將構建的應用程序部署到不同的環境(測試,舞臺,製作)而不必手動調整配置(可能配置環境名稱除外)時,會出現類似問題。

回答

2

您可以將配置轉換用於您的部署到不同的環境。這很簡單。斯科特Hanselman做了一個非常棒的視頻here

對於您的個人開發人員數據庫問題,沒有任何可以想到的特別優雅的解決方案。讓每個開發人員擁有獨特的配置並不是真正的「最佳實踐」。一旦每個人都開始集成他們的代碼,如果每個人都針對一個獨特的數據庫和配置集編寫他們的代碼,那麼您可能會遇到非常難看的情況。它幾乎可以保證代碼對於兩個開發人員不會執行相同的方式。

這是我會推薦的,並在過去完成的。

  1. 在您的測試數據庫服務器上的一個數據庫上爲您的數據庫創建基本框架。
  2. 創建數據庫項目作爲解決方案的一部分。
  3. 使用.Net的內建Schema Compare將現有數據庫寫入數據庫項目。
  4. 當有人需要更改數據庫時,首先他們應該掌握最新的數據庫項目,然後進行更改,然後重複步驟4將其更改添加到項目中。
  5. 使用此方法,開發人員也很容易部署與「主」數據庫匹配的數據庫本地實例,進行更改並將這些更改寫回項目。
+0

我們已經有了一個類似於您的DB開發的過程,並且我同意'獨特配置'肯定會導致不同的行爲。我們只是想爲專用的SQL Server計算機上的每個開發人員提供單獨的數據庫,這需要單獨的連接字符串。 我想隨着時間的推移,我們可能會發現更多這樣的設置,以保持「獨特」的意義。 爲了統一的web.config,被迫使用'localhost'(即必須運行本地SQL服務器)令人沮喪。 – tishma 2012-04-03 13:48:49

+0

感謝您的建議。部署的快速啓動絕對有用,它甚至可以在每個環境中動態生成Web.Config,但作爲一種非標準方式,我不會這麼做。 Schema Compare在某些假設下似乎也能正常工作。有時它似乎窒息(爲了不破壞數據)在一個所謂的小桌面轉換。 – tishma 2012-04-12 07:00:58

0

OK。

也許不是那麼優雅的解決方案,但是我們選擇了使用調試配置構建項目時從不同位置讀取連接字符串。

我們使用註冊表,它必須手動維護。

它需要一些額外的編碼,但讀取註冊表的代碼僅在debug(#if debug)中編譯,因此在生產中沒有性能影響。

希望這也有幫助。

乾杯

v。