ABP框架 - N層架構

目錄

介紹

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

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與實際數據庫交互來實現數據倉儲接口。基礎設施層並無嚴格的定義,它裏面實現的功能一般是提供給其餘層使用的公共功能,好比發送郵件功能,就能夠定義在基礎設施層。htm

相關文章
相關標籤/搜索