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

SpringLeee發表於2021-03-04

在本文中,您會看到一個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

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

相關文章