ABP框架 - N層架構


目錄

介紹

在應用程序設計中,分層架構是一種被廣泛使用的技術,它助於降低復雜度和提高代碼的可重用性。在ABP框架中,使用了DDD(領域驅動設計)的原則來實現分層架構.

DDD分層架構

在DDD(領域驅動設計)架構模型中,有四個基礎層。

  • 表現層: 用戶訪問接口。使用應用層來實現與用戶交互。
  • 應用層: 應用層是表現層和領域層之間的媒介,它負責組織和編排業務對象來執行特定的應用任務。,
  • 領域層:定義業務對象、邏輯和規則,它是整個應用的核心。
  • 基礎設施層:為上層提供通用的技術支持,大多數情況會使用第三方庫。

ABP架構模型

在一個現代化的架構應用中,除了DDD模型的4個基礎層(表現層、應用層、領域層、基礎設施層)以外, 通常還有其他的一些邏輯層和物理層。下面的架構模型圖是ABP建議使用並且已經實現的結構模型。ABP框架不僅提供了基類和服務來非常容易的實現此架構模型,並且已經提供了模板程序(參見ABP框架 - 我的第一個WEB API)來讓我們直接在此架構模型上開始開發。
images

客戶端

遠程客戶端是應用服務的消費者,通過HTTP API的方式來調用應用服務。客戶端可以是一個單頁應用程序(SPA),一個移動APP,也可以是一個第三方的消費者。本地化和導航可以在客戶端中實現。

展現層

ASP.NET (Core) MVC可以被認為是展現層。展現層可以是物理層(通過HTTP API來調用應用服務),也可以是一個邏輯層(直接注入並使用應用服務)。展現層一般提供本地化、導航、對象映射、緩存、配置管理、審計日志等這些功能。也可以處理授權、會話和異常。

分布式服務層

分布式服務層通過API(例如REST、OData、GraphQL)來為遠程客戶端提供應用服務功能。它不包含任務業務邏輯,僅僅是接收HTTP請求,然后調用相應的應用/領域服務來完成特定功能。分布式服務層一般包括授權、緩存、審計日志、對象映射、異常處理和會話等。

應用層

應用層主要包含應用服務,應用服務從展示層/分布式服務層接收輸入DTO對象,然后調用領域層的特定操作,組合編排領域對象,並根據需要返回輸出DTO給展示層/分布式服務層。應用層通常也會包括授權、緩存、審計日志、對象映射、會話等。

領域層

領域層主要用來實現業務邏輯,它包括領域實體、值對象、領域服務並執行業務邏輯。它也規約和領域事件。領域層定義了數據倉儲接口來讀取和持久化實體到數據源,但是領域層並不實現數據倉儲。

基礎設施層

領域層定義了數據倉儲接口,基礎設施層則通過Entity Framework(Core)/NHibernate與實際數據庫交互來實現數據倉儲接口。基礎設施層並沒有嚴格的定義,它里面實現的功能通常是提供給其他層使用的公共功能,比如發送郵件功能,就可以定義在基礎設施層。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM