當一個應用程序有越來越多的子模塊後,應用程序將變得越來越大,複雜度也越來越高,應用程序也越來越難維護。如果把每個子模塊,獨立分成不同的web應用程序,則這個項目將易於維護。關於這個的好處,我也描述得不好。總之,模塊分開,不同程序員的不同模塊,不互相影響,一個龐大的項目,如果分爲多個Web應用程序,那將更容易維護。
那麼,如何將一個大的web應用程序,分成多個不同的web應用程序呢。
直接記錄實現過程:
1.首先,我們創建一個主項目,其他分離項目,都將通過這個主項目爲路口。如圖所示,我們創建一個Web應用程序,在這裏命名爲MainModuleDemo,然後選擇一下存放的路徑;
在這裏,我們選擇空的MVC項目
點擊確定之後,我們的目錄長這樣
2.然後我們添加一個HomeController和HomeController下的一個頁面Index.cshtml,在頁面內隨便寫點什麼,用於測試;
現在,我們的目錄結構,如下圖:
3.現在我們在_Layout.cshtml中寫剛纔創建的頁面的a標籤,如下圖
@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
4,生成解決方案,運行解決方案,可以看到如下頁面
以上是主項目的創建,接下來,正式進入建立子項目的步驟。
5.右鍵我們的項目ManiModuleDemo->添加->區域(英文版的話,是Areas),如圖
6.彈出新增區域名稱的對話框,輸入我們區域的名字(這個名字會和你待會新建的子項目一致),在這裏,我們輸入FirstChildModule,點擊添加,如下圖所示
現在我們的目錄結構長這樣:
7.將新建的區域下的FirstChildModuleAreaRegistration.cs文件備份一份,然後將Areas下的FirstChildModule文件夾整個刪除(包括FirstChildModule文件夾本身),如下圖
刪除後的目錄結構,Areas文件夾是空的,如下圖
9.創建我們要創建的子項目,右鍵解決方案->新建項目
10,彈出新建項目對話框
命名爲FirstChildModule,和剛纔新建的區域名稱是一樣的(應該是不需要一樣的,只是我沒試過,爲了容易理解,就設置同樣的名字),注意選擇的位置,要在主項目MainModuleDemo項目下的Areas文件夾中(其實就是我們剛纔刪除的區域文件夾一樣)
點擊確定,選擇mvc空項目
現在目錄結構長這樣:
11、選中MainModuleDemo,點擊顯示所有文件,可以看到,我們剛纔新建的FristChildModule項目,如圖
12、更改下MainModuleDemo項目下的RouteConfig.cs,修改命名空間爲MainModuleDemo.Controllers,如下圖
13、右鍵FirstChildModule->屬性->生成選項卡,修改生成路徑
其實這個路徑,正好指向主項目的Bin文件夾中
14、在FirstChildModule中創建一個控制器和一個頁面
15、把剛纔第7步 備份的那個文件FirstChildModuleAreaRegistration.cs,拷貝到FirstChildModule根目錄下,以上步驟後,我們的目錄結構長這樣
16、修改FirstChildModuleAreaRegistration.cs,如下圖
17、在MainModuleDemo的_Layout.cshtml文件中,添加如下鏈接,這個鏈接是剛纔在FirstChildModule中創建的鏈接
18、生成整個解決方案,我們可以看到FirstChildModule生成的dll文件,在MainModuleDemo中的bin中,如下圖
運行項目,可以看到如下頁面
點擊子模塊首頁,就可以跳轉到我們剛纔在FirstChildModule中創建的頁面,說明模塊分開創建成功。
以上是模塊分離的所有步驟。