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