# 基於企業系統架構的 .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 實作內容!