# 基於企業系統架構的 .NET 開發框架
> 延續上一篇 [企業系統的 N-Tier 架構設計](https://hackmd.io/@jeff377/enterprise-n-tier),本篇介紹如何依此理念,嘗試使用 AI Coding(GitHub Copilot)實作一套模組化的 .NET 開發框架 —— `Bee.NET Framework`。
## ✨ 為什麼叫做 `Bee.NET`?
`Bee.NET` 命名靈感來自「**蜜蜂的分工協作**」與「**蜂巢的穩定結構**」:
- 蜜蜂透過分工協作,共同建構六角形蜂巢,每個蜂巢格既獨立又彼此連結,形成最穩固的結構。
- `Bee.NET` 中的每個元件就像蜂巢格,依責任模組化構建,組合成穩健且可擴充的系統架構。
> 🌟 `Bee.NET` 不只是技術名稱,更是一種架構哲學 ——
> 「如蜜蜂般專注協作,打造模組化、可維護的企業應用系統。」
## 🧱 五層式架構設計(N-Tier Architecture)
`Bee.NET` 採用五層式架構(N-Tier Architecture),將企業應用系統依照職責清楚劃分,有助於模組化、單元測試與彈性擴充。依照實務開發流程拆分為「前端(Frontend)」與「後端(Backend)」兩大區塊,以便釐清職責邊界與部署需求。
### 🖥️ 前端(Frontend)
前端負責與使用者互動、畫面呈現與 API 呼叫。下圖為系統前端組件架構,詳細元件說明請見下方《`Bee.NET` 各層組件說明》表格。
```mermaid
flowchart TD
subgraph Presentation Layer
UI[Bee.UI.WinForms.dll
Bee.UI.Blazor.dll
Bee.UI.Maui.dll]
UICore[Bee.UI.Core.dll]
end
subgraph API Connector Layer
Conn[Bee.Connect.dll]
ApiCoreClient[Frontend
Bee.Api.Core.dll]
end
UI --> UICore --> Conn --> ApiCoreClient
```
---
### 🛠️ 後端(Backend)
後端負責接收 API 請求、執行業務邏輯、並存取資料庫。下圖為系統後端組件架構,詳細元件說明請見下方《`Bee.NET` 各層組件說明》表格。
```mermaid
flowchart TD
subgraph API Service Layer
ApiCoreServer[Backend
Bee.Api.Core.dll]
ApiAsp[Bee.Api.AspNetCore.dll
Bee.Api.AspNet.dll]
end
subgraph Business Logic Layer
Biz[Bee.Business.dll]
end
subgraph Data Access Layer
Db[Bee.Db.dll]
end
DB[(Database)]
ApiCoreServer --> ApiAsp --> Biz --> Db --> DB
```
---
### 🌐 前後端資料流(API 呼叫)
API 呼叫為前後端的橋梁,通常使用 HTTP 或 HTTPS 傳輸 JSON 資料,透過 `Bee.Api.Core.dll` 中定義的資料結構進行互動。
```mermaid
flowchart LR
Client[Frontend
Bee.Api.Core.dll] -->|HTTP API| Server[Backend
Bee.Api.Core.dll]
```
---
### 📦 `Bee.NET` 各層組件說明
| 組件名稱 | 所屬層級 | 目標框架 | 說明 |
|----------------------------|--------------------|------------------------|------|
| **Bee.Base.dll** | 共用基礎模組 | .NET Standard 2.0 | 提供序列化、加解密等共通工具。 |
| **Bee.Define.dll** | 共用結構定義 | .NET Standard 2.0 | 定義系統資料結構,如設定、表單與欄位定義。 |
| **Bee.Cache.dll** | 資料存取層 業務邏輯層 | .NET Standard 2.0 | 快取定義資料與衍生資料以提升效能。 |
| **Bee.Db.dll** | 資料存取層 | .NET Standard 2.0 | 封裝資料庫操作邏輯,支援 SQL 組合與連線綁定。 |
| **Bee.Business.dll** | 業務邏輯層 | .NET Standard 2.0 | 負責實作應用層的業務邏輯,如表單流程控制與商業規則處理。 |
| **Bee.Api.Core.dll** | API 呼叫層 API 服務層 | .NET Standard 2.0 | 提供 API 核心功能,如資料模型、加解密、序列化等。 |
| **Bee.Api.AspNetCore.dll** | API 服務層 | .NET 8 | 提供 ASP.NET Core 的 JSON-RPC 2.0 API 控制器。 |
| **Bee.Api.AspNet.dll** | API 服務層 | .NET Framework 4.8 | 提供 ASP.NET 的 JSON-RPC 2.0 API HttpModule。 |
| **Bee.Connect.dll** | API 呼叫層 | .NET Standard 2.0 | 提供連接器機制,支援近端與遠端呼叫後端邏輯元件。 |
| **Bee.UI.Core.dll** | 表現層 | .NET Standard 2.0 | 管理用戶端與伺服端連線的設定與狀態。 |
| **Bee.UI.WinForms.dll** | 表現層 | .NET 8 | 提供 WinForms 使用者介面元件與排版管理。 |
| **Bee.UI.Blazor.dll** | 表現層 | .NET 8 | 提供 Blazor 專用使用者介面元件與 Razor 元件組合。 |
| **Bee.UI.Maui.dll** | 表現層 | .NET 8 | 提供 .NET MAUI 跨平台 UI 元件與頁面佈局,支援 Android、iOS、macOS、Windows。 |
## 🧩 架構特色
- 🧠 **分工明確、責任導向**:每層聚焦其核心職責,降低耦合度。
- 🧱 **模組化設計**:元件獨立、可重用、可替換,便於測試與維護。
- 🖥 **跨平台支援**:採用 .NET Standard 2.0,兼容 .NET Framework、.NET Core、.NET 8。
- 🚀 **支援 JSON-RPC 2.0 API 架構**:提供簡潔、標準化的 API 通訊方式。
- 📦 **MessagePack 支援**:JSON-RPC 傳輸資料支援 [MessagePack](https://msgpack.org/) 序列化格式,可大幅減少傳輸量並提升效能。
- 🧭 **適用於企業級開發**:能快速穩定地建構與擴充 ERP / HRM / CRM 等核心系統。
## 📦 套件下載
`Bee.NET Framework` 各套件已陸續發佈至 NuGet,後續會提供使用範例說明。
🔗 https://www.nuget.org/profiles/jeff377
## 🛠 應用實例(預告)
未來將介紹如何基於 `Bee.NET Framework` 建構實際的企業模組系統,例如:
- 後端邏輯元件的模組化設計
- 表單定義與處理流程
- API 與 UI 整合開發流程
## 📚 延伸閱讀
- 📄 [企業系統的 N-Tier 架構設計(上一篇)](https://hackmd.io/@jeff377/enterprise-n-tier)
- 📄 [JSON-RPC 2.0 標準結構](https://hackmd.io/@jeff377/json-rpc-2-structure)
- 📄 [JSON-RPC 2.0 Specification](https://www.jsonrpc.org/specification)
- 📄 [Protobuf vs MessagePack 序列化格式比較](https://hackmd.io/@jeff377/protobuf-vs-messagepack)
---
🧑💻 歡迎交流架構設計與 .NET 應用開發心得,後續將持續分享更多 Bee.NET 實作內容!