2009-07-29 68 views
16

我們希望將我們的大型asp.net mvc Web應用程序拆分爲多個Visual Studio項目,以便每個團隊都可以在其Visual Studio項目中獨立運行。構建爲單個ASP.NET MVC應用程序的多個ASP.NET MVC項目

所需結構是:

  1. ASP.NET MVC應用程序,其負責的基本UI
  2. 模塊1 - VS項目(這是否需要是一個ASP.net MVC應用程序或.dll? )
  3. 模塊2 - VS項目(這是否需要成爲一個ASP.net MVC應用程序或.dll)
  4. 等等....

每個模塊應該包含它?自己的控制器&視圖負責模塊的功能。 T

如何將ASP.NET應用程序拆分爲多個項目,然後在構建過程中將它們合併爲一個網站?

回答

8

ASP.NET MVC V2有一個稱爲區域的功能,讓你有儘可能多的不同的MVC應用程序的能力具有主應用程序引用的單獨項目。看看ScottGu的post

+1

據我所知,這是不再MVC3支持。 – 2011-03-25 20:49:40

+1

如果我們在網站中有100多個視圖,那麼這些區域很難管理。基本上,當我們在Visual Studio中加載了1000個文件時,構建過程很糟糕。構建需要很長時間。所以我們把我們的網站分成多個asp.net項目,並在構建過程中合併它們,就像我在下面的評論中提到的那樣:http://stackoverflow.com/questions/1200424/multiple-asp-net-mvc-projects-that-builds -as-single-asp-net-mvc-application/1362621#1362621 – Gopinath 2011-05-07 13:30:16

2

一個工具,你可能有興趣在尋找被稱爲ILMerge

這是一個工具,可以讓你幾個.NET程序集合併成一個單一的DLL。它可以用於將多個項目的輸出組合到一個單獨的DLL中進行部署。

我從來沒有嘗試過使用Asp.Net MVC,我對MVC架構不太熟悉,不知道它是否適合您的情況。但它可能值得一試。

0

如果您的應用程序不需要區域,而您的目標只是爲了讓團隊獨立,爲什麼不使用更好的源代碼控制系統?除非你有真正獨立的模塊,否則聽起來像在顛覆中通過分支管理是合適的。

3

問題是由剛剛創建多個MVC項目,並通過簡單的複製粘貼& :)

這裏匯合在最後輸出整理出來是我們遵循的結構:

  • MyApp.Web。殼牌(只包含主題,CSS,JS的Web應用程序所需的&圖片)
  • MyApp.Web.Home
  • MyApp.Web.UserManagement
  • MyApp.Web.DeviceManagement
  • MyApp.Web.ContentManagement
  • .....等等...

在我們使用的構建腳本合併所有項目的輸出,並生成結束整個Web應用程序運行所需的文件。

如果您需要在實施類似的解決方案的任何幫助,在我們在我以前的工作來處理這個link text

0

一種方式與我取得聯繫是建立一個主「控制器」的應用程序。這個應用程序已部署並面向公衆。它的工作是讀取傳入的URL,並根據配置文件中的一系列映射規則將該URL映射到運行在同一臺服務器上的其他MVC應用程序。這給了我們很多選擇,例如如果我們想要進行粗略的負載平衡,就能夠在場中的不同服務器上運行備份應用程序。您需要管理多個應用程序之間的身份驗證等事情(如果您使用的是身份驗證)。

這基本上給你,因爲你需要在服務器上運行的所有使用相同的前端控制器(基本)

0

您可以使用良好的源代碼管理,並讓各個團隊檢查他們需要處理的內容。

這種方式你在編譯的時候只有一個DLL ...