ASP.Net MVC 依Area切割模組,並建立個別的模組MVC專案 Part 1
ASP.Net MVC 依Area切割模組,並建立個別的模組MVC專案 Part 2
ASP.Net MVC 依Area切割模組,並建立個別的模組MVC專案 Part 3
ASP.Net MVC 依Area切割模組,並建立個別的模組MVC專案 Part 4
ASP.Net MVC 提供了一個良好的程式框架,讓Model、View透過Controller連結起來。
MVC相關的觀念,在這邊我也就不再多花篇幅來介紹,各位可以google一下asp.net mvc,就會有一堆的文章與教學了。
這篇文章會把重點放在如何在ASP.Net MVC的架構中,把Area切割成獨立的專案,以達成重覆使用與統一程式碼版本控制的目的。
首先,先比較一下,把Area建立成模組的幾種方式。
- 不切出割出來,直接把Area建立於MVC專案中(最常見)。
- 優點:簡單易懂、便於除錯,開啟單一專案即可開始使用、View有變動,可即時同步到前端顯示。
- 缺點:程式碼管控不易,如同時有多個專案,那Area程式碼會無法同步。
- 參考資料:
- ASP.NET MVC 使用 Area – 以 Backend 後台為例
- 把Area完整的封裝成單一DLL,包含程式、圖檔、檔案、資源。
- 優點:佈署方便,只要1個DLL就可以含蓋整個模組。程式碼可以統一管理。
- 缺點:技術難度高、DLL檔案會越來越大(因為含圖檔、檔案….等)、開發與除錯不易、
存取圖檔的資料只能透過API的方式,無法直接使用路徑的方式、Area有異動時,需重新建置專案。 - 參考資料:
- Compile your asp.net mvc Razor views into a seperate dll
- ASP.NET MVC 將所有的View包成DLL
- MVC Portable Areas
- Extending NerdDinner: Adding MEF and plugins to ASP.NET MVC
- Modular ASP.NET MVC using the Managed Extensibility Framework (MEF), Part Three
- 直接在MVC專案的Area資料夾中,建立一個MVC專案,來當成模組使用。
- 優點:簡單易懂、便於除錯、Area的View有變動時,不需重新建置(程式有變動仍要重新建置)。
- 缺點:Area相關程式與View放置於單一專案下,多專案共用不易、Area內程式碼除錯不易。
- 參考資料:
- ASP.NET MVC 4 pluggable application modules
- [ASP.NET MVC]將系統依不同模組建立個別的MVC專案(II)
- 即本文要介紹的方式。相似於上面的第3種方式,並改良其於缺點。
於MVC專案的外部,建立Area模組,使外部的MVC專案可以使用。- 優點:簡單易懂、便於除錯、多專案可共用。
- 缺點:第一次建立的步驟稍微繁雜、Area有變動時,需重新建置專案。
上面簡單的比較了一下,目前可以將MVC內的Areas切割出來的方式。
下一篇,將會針對上面的第4點,進行教學。
別造成別人的誤解
你所說的第一種方式所提到的參考資料,他的做法跟第三種的是一樣的,
都是使用 Areas 方式來建立,舉例也要看清楚別人的文章
to XXXX:
你好,第一種作法是把Area建立在同一專案中,
第三種作法則是另開一個新的專案來放置Area,
參考資料的部份,也是這樣子。
不知錯誤的地方為何?還望你不吝指教。