abp(net core)+easyui+efcore倉儲系統——解決方案介紹(二)

DotNet菜園發表於2019-05-29

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介面,供客戶端呼叫;也可以在指令碼中進行呼叫。

相關文章