2009-12-26 64 views
2

ASP.NET MVC如何處理或提供使用多個環境創建應用程序的方式?例如:ASP.NET MVC和多種環境

  1. 開發環境(本地計算機,可能是通過內置的Web服務器上運行,並談論到本地數據庫)
  2. 測試(運行鍼對帶有示例數據預加載DATABSE,雖然這部分可能是跳過,可以用來嘲笑)
  3. 生產數據庫與真實數據
  4. 一個真正的服務器上

的Ruby on Rails有環境的理念和「自動地」可以,如果你在開發或生產的時候,演繹所以你可以指定您的連接信息(connec在一個配置文件和框架動態拉動適當的一個。 .NET MVC有沒有類似的方法?如果不是,那麼專業開發人員如何使用.NET MVC處理不同的環境?

我能想到的唯一方法是手動添加一個「環境」全局方法(或使用枚舉,或類似的東西,也許這是用於像狀態模式的東西?)並存儲不同的連接字符串放在web.config文件中,然後創建一個所有數據訪問類派生出的基類,從而爲獲取當前環境的連接字符串提供了一種方法;如果需要將應用程序投入使用,則必須將其設置爲生產。

還有別的辦法嗎?我所見過的大多數.NET MVC視頻和文章都不用單獨的環境,但只使用開發數據庫,​​並沒有說明在生產環境中如何實現。

回答

2

我想說這實際上是貴公司內部流程的問題。由於每個公司都有點不同,很難有一個「正確」的通用方法來支持開發/測試/ alpha /生產和/或其他環境。

一種方法:創建一個提供基於在安裝過程中選擇的環境中正確的連接字符串安裝程序。

另一種方法:系統管理編輯web.config文件,在安裝過程中提供正確的連接字符串。

另一種方式:連接字符串存儲在系統註冊表中。

即使另一個奇數方式:您有在web.config中所有環境所有的連接字符串,然後在一個的appSettings設定告訴你使用哪一個。

根據客戶端上,我已經做了所有的這些。還有更多,但這些更受歡迎。

(一個客戶想要存儲在數據庫本身連接柱,真的。)

+0

我同意,但在這種情況下,我是我自己的公司(網絡應用程序啓動),所以我從來沒有給它太多的想法:) – 2009-12-26 22:41:13

0

有一個發佈嚮導(在Visual Studio)至極讓你改變web.config中的零件發佈版本automaticaly。這恰好是你所問的功能。沒有魔力。

0

我們所做的工作在我們的自動生成過程(哈德森)是,我們這取決於環境的構建是在web.config中改變的值。不幸的是,沒有一種不可思議的方式來做到這一點。

0

您可以爲數據庫使用別名。您只需將這些別名指向不同環境中的不同服務器即可。如果我記得沒錯,存儲在註冊表下的HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSSQLServer \ Client \ Connect下。然後在連接字符串中使用別名。

迴應Jason的迴應: 我們使用企業庫環境來配置不同的環境參數,並通過msbuild調用合併配置工具,爲每個環境生成不同的配置。部署過程根據要安裝的環境選擇正確的配置文件。

0

對於部署,我認爲這是操作系統的要求,創建多個配置並在發佈中選擇不同的配置。這些被稱爲轉換,它們在web.config上運行。其中至少有三個發佈配置文件,一個用於開發,測試和產品。用這種方法可以改變的不僅僅是連接字符串。可以打開自定義錯誤,關閉調試並更改配置變量的值。我強烈推薦它。

我有類似的問題。我有一個日誌表閱讀器。我希望它在開發,測試和生產數據庫中讀取日誌表。主要困難在於我的用戶帳戶沒有權限查看測試和生產。這是一個愚蠢的安全事情。我在應用程序中扮演的用戶確實有權限。我正在努力告訴MVC使用模擬用戶構建測試和生產模型。