首先介紹一下abp框架,abp其實基於DDD(領域驅動設計)原則,具體的體系結構以下圖:html
如今咱們開始介紹咱們的解決方案,咱們的項目解決方案以下:前端
二 . ABP項目文件的介紹數據庫
ABP.TPLMS.Application,應用層:進行展示層與領域層之間的協調,協調業務對象來執行特定的應用程序的任務。它不包含業務邏輯,主要包含一些模型,abp重要的數據傳輸DTO,包括數據庫映射實體,前端視圖模型轉實體(Entity)對象,一個應用服務方法一般被認爲是一個工做單元(Unit of Work),使用一種像AutoMapper這樣的工具來進行實體與DTO之間的映射,前端參數傳入有限性驗證等等設計模式
ABP.TPLMS.Core:領域層:領域層就是業務層,是一個項目的核心,全部業務規則都應該在領域層實現。包括業務對象和業務規則,這是應用程序的核心層。 併發
實體(Entity):實體表明業務領域的數據和操做,在實踐中,經過用來映射成數據庫表。app
倉儲接口(IRepository):倉儲用來操做數據庫進行數據存取。倉儲接口在領域層定義,而倉儲的實現類應該寫在基礎設施層。框架
領域服務(Domain service):當處理的業務規則跨越兩個(及以上)實體時,應該寫在領域服務方法裏面。工具
領域事件(Domain Event): 在領域層某些特定狀況發生時能夠觸發領域事件,而且在相應地方捕獲並處理它們。 post
工做單元(Unit of Work):工做單元是一種設計模式,用於維護一個由已經被修改(如增長、刪除和更新等)的業務對象組成的列表。它負責協調這些業務對象的持久化工做及併發問題。
多語言(Localization):定義一種語言對應一個文件,把應用中全部須要進行多語言轉換的描述,均可以寫在這個目錄中。ui
ABP.TPLMS.EntityFrameworkCore:基礎設施層:提供通用技術來支持更高的層。例如基礎設施層的倉儲(Repository)可經過ORM來實現數據庫交互。當在領域層中爲定義了倉儲接口,應該在基礎設施層中實現這些接口。可使用ORM工具,例如EntityFrameworkCore或NHibernate。ABP的基類已經提供了對這兩種ORM工具的支持。還有數據遷移等。
ABP.TPLMS.Web.Mvc:展示層:提供視圖界面與用戶進行交互操做。
ABP.TPLMS.Web.Host:這裏在abp中主要是提供接口,能夠是解決方案內部使用接口,能夠是與移動端等其餘端口鏈接的接口。能夠自動生成WebAPI接口,供客戶端調用;也能夠在腳本中進行調用。