ABP入門教程2 - 體系架構


點這里進入ABP入門教程目錄

 

介紹

應用程序代碼庫的分層是一種廣泛接受的技術,可幫助降低復雜性並提高代碼可重用性。為了實現分層體系結構,ASP.NET Boilerplate遵循域驅動設計的原理

DDD分層體系架構

領域驅動設計(DDD:Domain-Driven Design)有四個基本層:

  • 展示層:為用戶提供界面。使用應用程序層來實現用戶交互。
  • 應用層:在表示層和域層之間進行中介。編排業務對象以執行特定的應用程序任務。
  • 領域層:包括業務對象及其規則。這是應用程序的核心。
  • 基礎設施層:提供通用技術功能,這些功能主要使用第三方庫來支持更高的層。

ABP分層體系架構

除了DDD外,現代架構應用程序中還包含其他邏輯和物理層。建議並為ABP應用程序實現以下模型。ABP不僅通過提供基類和服務使實現此模型更加容易,而且還提供了直接從該模型開始的啟動模板

ASP.NET Boilerplate NLayer體系結構

客戶應用

這些是遠程客戶端,它們通過HTTP API(API控制器,OData控制器,甚至是GraphQL端點)將應用程序用作服務。遠程客戶端可以是SPA(單頁面應用程序),移動應用程序或第三方用戶。本地化和 導航可以在此應用程序內完成。

展示層

ASP.NET Core MVC(模型-視圖-控制器)可以視為展示層。它可以是物理層(通過HTTP API使用應用程序)或邏輯層(直接注入和使用應用程序服務)。無論哪種情況,它都可以包括 本地化,導航,對象映射, 緩存,配置管理,審計日志等。它還處理 授權,會話, 功能(用於 多租戶應用程序)和異常處理。

分布式服務層

該層用於通過REST,OData,GraphQL等遠程API來提供應用程序/域功能...它們不包含業務邏輯,而僅將HTTP請求轉換為域交互,或者可以使用應用程序服務來委托操作。該層通常包括授權,緩存, 審核日志記錄,對象映射,異常處理,會話等。

應用層

應用層主要包括應用服務的使用領域層和領域對象(領域服務, 實體 ...)來執行請求的應用程序的功能。它使用數據傳輸對象從表示層或分布式服務層獲取數據並將數據返回到表示層或分布式服務層。它還可以處理 授權,緩存,審核日志記錄,對象映射,會話等。

領域層

這是實現我們的領域邏輯的主要層。它包括 實體,值對象和領域服務以執行業務/領域邏輯。它還可以包括規范和觸發領域事件。它定義了存儲庫接口以從數據源(通常是DBMS)讀取和保留實體。

基礎設施層

基礎設施層使其他層起作用:它實現存儲庫接口(例如,使用Entity Framework Core)以實際使用實際數據庫。它還可能包括與供應商的集成,以發送電子郵件等。這不是所有層下的嚴格層,但實際上通過實現抽象層來支持其他層。


免責聲明!

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



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