1. 程式人生 > >進軍ABP第一天:ABP理論知識

進軍ABP第一天:ABP理論知識

增加 執行 操作 lock align 事件 left 規則 dal

1.2.3 領域層
領域層就是業務層,是一個項目的核心,所有業務規則都應該在領域層實現。

( 實體(Entity )

實體代表業務領域的數據和操作,在實踐中,通過用來映射成數據庫表。

( 倉儲(Repository )

倉儲用來操作數據庫進行數據存取。倉儲接口在領域層定義,而倉儲的實現類應該寫在基礎設施層。


( 領域服務(Domain service )
當處理的業務規則跨越兩個(及以上)實體時,應該寫在領域服務方法裏面。個人理解就是需要聯表/同時多表操作的時候就在領域服務寫

領域事件(Domain Event )
在領域層有些特定情況發生時可以觸發領域事件,並且在相應地方捕獲並處理它們。


( 工作單元(Unit of Work )
工作單元是一種設計模式,用於維護一個由已經被修改(如增加、刪除和更新等)的業務對


象組成的列表。它負責協調這些業務對象的持久化工作及並發問題。

1.2.4 應用層、

應用層提供一些應用服務(Application Services)方法供展現層調用。

一個應用服務方法接收一個 DTO(數據傳輸對象)作為輸入參數,使用這個輸入參數執行特定的領域層操作,並根據需要可返回另一個 DTO。

在展現層到領域層之間,不應該接收或返回實體(Entity)對象,應該進行 DTO 映射。

一個應用服務方法通常被認為是一個工作單元(Unit of Work)。

用戶輸入參數的驗證工作也應該在應用層實現。

ABP 提供了一個基礎架構讓我們很容易地實現輸入參數有效性驗證。

建議使用一種像 AutoMapper 這樣的工具來進行實體與 DTO 之間的映射

1.2.5 基礎設施層

當在領域層中為定義了倉儲接口,應該在基礎設施層中實現這些接口。可以使用 ORM 工
具,例如 EntityFramework 或 NHibernate。ABP 的基類已經提供了對這兩種 ORM 工具的支
持。數據庫遷移也被用於這一層(我使用的是EntityFramework)

1.2.6 WEB 與展現層

Web 層使用 ASP.NET MVC 和 Web API 來實現。可分別用於多頁面應用程序(MPA)和單
頁面應用程序(SPA)。
在 SPA 中,所有資源被一次加載到客戶端瀏覽器中(或者先只加載核心資源,其他資源
懶加載),然後通過 AJAX 調用服務端 WebApi 接口獲取數據,再根據數據生成 HTML 代碼。
不會整個頁面刷新。現在已經有很多 SPA 的 JS 框架,例如: AngularJs、 DurandalJs、
BackboneJs、EmberJs。 ABP 可以使用任何類似的前端框架,但是 ABP 提供了一些幫助類,
讓我們更方便地使用 AngularJs 和 DurandalJs。(個人理解就是..前端的一些東西封裝在後端隨時可以通過調用返回給前端展現相關效果)

以上是由ABP 框架中國小組(ABPFrameWorkGroup)翻譯的ABP Framework官方文檔當中的內容,我提取出一些點拿來記錄,現在開始我自己的ABP初次項目。

項目計劃:

  • 1.理解ABP運轉過程,
  • 2.理解各層之間的作用性
  • 3.實踐體驗用ABP的好處

項目文件夾截圖:

技術分享

所使用IDE:VS2017

所使用.net framework版本:4.6.0

期待早日掌握ABP 今天:2017-10-24 09:26:46

進軍ABP第一天:ABP理論知識