1. 程式人生 > >在 .NET Core 中應用六邊形架構

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

在本文中,您會看到一個Web API應用的模板,在.NET Core 中應用了六邊形架構,並且裡面包含了一些基礎功能。 ## 介紹 這是一個模板專案,裡面集成了一些必備的基礎功能,當我們需要開發一個新專案時,我們可以使用這個模板,這樣我們可以聚焦業務。 模板集成了一些元件和功能如下: - 六邊形架構的應用程式 - Web API - Entityframework Core - 異常處理 - NUnit - 版多本 - Swagger UI - 日誌 — SeriLog - Health checks UI - JWT authentication ## 什麼是六邊形架構 六邊形架構(或稱其為“埠和介面卡架構風格”),將解決傳統架構中維護應用程式的問題,而我們過去通常通過以資料庫為中心的架構來實現, 所有輸入和輸出都通過埠進入或離開應用程式的核心內容,並且埠把應用程式和外部技術,工具和交付機制隔離開。 ![](https://blog-1259586045.cos.ap-shanghai.myqcloud.com/clipboard_20210304_021819.png) ## 六邊形架構帶來了哪些好處 - 外掛化 我們可以在專案中新增或者移除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,並安裝 ![](https://blog-1259586045.cos.ap-shanghai.myqcloud.com/clipboard_20210304_024355.png) 然後選擇模板,建立新專案: ![](https://blog-1259586045.cos.ap-shanghai.myqcloud.com/clipboard_20210304_024545.png) 它的解決方案是這樣的: ![](https://blog-1259586045.cos.ap-shanghai.myqcloud.com/clipboard_20210304_024717.png) 您可以瀏覽下各層的程式碼結構,也可以啟動專案,訪問 /healthcheck-ui, 檢視健康檢查的頁面 ![](https://blog-1259586045.cos.ap-shanghai.myqcloud.com/clipboard_20210304_025100.png) 在本文中,我簡單介紹了六角形體系結構,並且通過這個模板,可以快速的在.NET Core 中建立六邊形架構的專案應用。 > 原文連結: [https://www.c-sharpcorner.com/article/hexagonal-architecture-in-asp-net-core/]("https://www.c-sharpcorner.com/article/hexagonal-architecture-in-asp-net-core/") 歡迎掃碼關注我們的公眾號 【全球技術精選】,專注國外優秀部落格的翻譯和開源專案分享,也可以新增QQ群 897216102