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