在 .NET Core 中應用六邊形架構


在本文中,您會看到一個Web API應用的模板,在.NET Core 中應用了六邊形架構,並且里面包含了一些基礎功能。

介紹

這是一個模板項目,里面集成了一些必備的基礎功能,當我們需要開發一個新項目時,我們可以使用這個模板,這樣我們可以聚焦業務。

模板集成了一些組件和功能如下:

  • 六邊形架構的應用程序
  • Web API
  • Entityframework Core
  • 異常處理
  • NUnit
  • 版多本
  • Swagger UI
  • 日志 — SeriLog
  • Health checks UI
  • JWT authentication

什么是六邊形架構

六邊形架構(或稱其為“端口和適配器架構風格”),將解決傳統架構中維護應用程序的問題,而我們過去通常通過以數據庫為中心的架構來實現, 所有輸入和輸出都通過端口進入或離開應用程序的核心內容,並且端口把應用程序和外部技術,工具和交付機制隔離開。

六邊形架構帶來了哪些好處

  • 插件化
    我們可以在項目中添加或者移除adapter, 比如我們可以替換 Rest adapter 或者 GraphQL 或者 gRPC adapter,並且它不會影響到我們的邏輯。

  • 可測試的能力
    因為它分離了所有層,所以很容易為每個組件編寫一個測試用例。

  • 與數據庫無關
    由於數據庫與數據訪問是分開的,因此切換數據庫提供程序非常容易。

  • 整潔的代碼
    由於業務邏輯和表示層是分開的,因此易於實現UI(例如React,Angular或Blazor)。

六邊形架構的各層

  • Domain Api layer

Domain Api layer 在中心實現,並且不依賴於其他層。

  • Domain Layers (業務邏輯層)

  • Rest Adapter layer

Rest Adapter也稱為左端口適配器和主適配器,在其中我們實現了靜態服務(即GET,POST,PUT,DELETE等)。

  • Persistence Adapter layer
    Persistence Adapter,也稱為輔助適配器,我們用了Entity Framework Core,DbContext將是UOW(工作單元)。

  • Bootstrap/Presentation Layer

開始使用六邊形架構

首先,我們需要先安裝一個模板插件,在VS中,選擇 擴展 -> 聯機,然后搜索 Hexagonal,並安裝

然后選擇模板,創建新項目:

它的解決方案是這樣的:

您可以瀏覽下各層的代碼結構,也可以啟動項目,訪問 /healthcheck-ui, 查看健康檢查的頁面

在本文中,我簡單介紹了六角形體系結構,並且通過這個模板,可以快速的在.NET Core 中創建六邊形架構的項目應用。

原文鏈接: https://www.c-sharpcorner.com/article/hexagonal-architecture-in-asp-net-core/

歡迎掃碼關注我們的公眾號 【全球技術精選】,專注國外優秀博客的翻譯和開源項目分享,也可以添加QQ群 897216102


免責聲明!

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



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