學習完畢With ASP.NET Core & Entity Framework Core Part-1及Part-2後,只實現了基本的功能,使用該工程繼續學習ABP的更多功能。html
由項目的解決方案類圖可知項目的引用順序:
web
更改項目文件的顯示名,以清晰結構
數據庫
領域層,存放數據庫的Model以及單Model的一些操做。部分基礎架構的內容也能夠放這裏,如mail發送等。架構
EFCore層,用於DbContext的構造以及數據庫結構的更新app
應用層,處理具體的業務邏輯。模塊化
Web展示層,這裏即UI層學習
Application測試層測試
Web測試層3d
每一個層中都有本身的Module,ABP是模塊化的,經過這些Module實現了各層之間的依賴以及初始化。其依賴關係與層的依賴關係相同。
在Web層的Startup.cs
類中將CeciWebModule
註冊爲了ABP的TStartupModule
,該Module以及其依賴的Module都會隨之被調用
而在CeciWebModule
中會依賴CeciApplicationModule
及 CeciEntityFrameworkCoreModule
,CeciApplicationModule
又會依賴CeciCoreModule
。
因此係統中的Module的初始化順序爲:code
CoreModule
的PreInitialize()
ApplicationModule
的PreInitialize()
EFCoreModule
的PreInitialize()
WebModule
的PreInitialize()
CoreModule
的Initialize()
ApplicationModule
的Initialize()
EFCoreModule
的Initialize()
WebModule
的Initialize()
同理,Test層也是如此
在Tests層的CeciTestBase中:
在Web.Tests層的Startup中: