首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

微軟技術棧選型指南 2024:從 .NET Framework 到 .NET 8 的架構決策地圖

     編輯:關於.NET

微軟官方「.NET 企業應用架構指南」核心觀點整理,涵蓋 Web、桌面、行動、服務、雲端、遷移策略,協助架構師在龐大技術棧中做出決策。

核心原則

  • **慣例優於配置**:遵循框架預設,減少決策疲勞
  • **技術債務顯性化**:Silverlight/Flash/WebForms/Web API 2 (舊) 明確標記淘汰時間表
  • **跨平台優先**:.NET 6/7/8 統一基底,Linux 容器、macOS 開發、Windows 桌面同等重要
  • **遷移漸進式**:Strangler Fig 模式、Facade 層隔離舊系統、邊界上下文劃分

Web 前端選型

場景推薦技術避免技術
企業級 SPA/SSGBlazor WebAssembly / Server、ASP.NET Core MVC + Razor Pages、React/Angular/Vue (前後端分離)Silverlight、Flash、WebForms (新專案)
快速 CRUD/內部工具Blazor Server、Radzen/Blazorise 元件庫、Low-code (Power Apps)ASP.NET Web Pages、LightSwitch
行動 Web / PWABlazor PWA、ASP.NET Core + Service Worker、Capacitor/Ionic舊版 Mobile Controls

**Silverlight/Flash 徹底退場**:微軟 2021 年結束支援,現有專案應規劃遷移至 Blazor/WebAssembly 或原生行動應用。

行動應用選型

平台首選備選關鍵考量
iOS / Android.NET MAUI (單一專案、原生 UI)Xamarin.Forms (維護模式)、Blazor Hybrid (WebView + 原生)團隊 .NET 技能複用、效能接近原生
Windows 桌面WPF / WinUI 3 (WinAppSDK)WinForms (維護)、UWP (功能凍結)WPF 生態成熟,WinUI 3 代表未來
跨平台桌面.NET MAUI、Electron.NET、AvaloniaGTK#、Eto.FormsMAUI 桌面成熟度持續提升中

服務層 / API 選型

風格技術適用場景
RESTful HTTP APIASP.NET Core Web API (首選)公共 API、微服務、前後端分離
gRPCASP.NET Core gRPC (HTTP/2、Protobuf)內部微服務高效通訊、強類型契約
GraphQLHotChocolate / GraphQL.NET複雜查詢彈性、多客戶端聚合
即時雙向SignalR (WebSocket/SSE/LP 自動協商)聊天、協作編輯、即時儀表板
工作流/長流程MassTransit / NServiceBus / Azure Logic Apps分散式 Saga、可靠訊息、狀態機
傳統 WCFWCF (CoreWCF 移植版)僅限舊系統整合、SOAP 強制場景

**Web API 為預設選擇**,除非有明確理由 (gRPC 效能、GraphQL 彈性、SignalR 即時、WCF 相容)。OData 內建於 Web API,支援 `$filter`/`$expand` 等標準查詢。

資料存取與 ORM

  • **Entity Framework Core 8**:首選 ORM、LINQ、遷移、攔截器、JSON 欄位、空間資料
  • **Dapper**:高效能微型 ORM、手寫 SQL、搭配 EF Core 讀寫分離
  • **ADO.NET / SqlClient**:極致效能、批次作業、原生功能
  • 避免:NHibernate (新專案)、LINQ to SQL (凍結)、Entity Framework 6 (僅 .NET Framework 維護)

雲端原生與部署

  • **容器化**:Docker + Kubernetes (AKS/EKS/GKE) / Azure Container Apps
  • **Serverless**:Azure Functions / AWS Lambda (.NET 8 原生支援)
  • **託管服務**:Azure App Service、Container Apps、Static Web Apps (Blazor WASM)
  • **觀測性**:OpenTelemetry + Azure Monitor / Grafana / Prometheus

遷移策略:Strangler Fig + 邊界上下文

  1. 識別**邊界上下文** (Bounded Context):核心域、支撐域、通用域
  2. 核心域:DDD + CQRS + 事件溯源、完整自動化測試
  3. 支撐域:輕量 CRUD、快速交付
  4. 舊系統:建立 **Facade/Adapter 層**,隔離內部實作,逐步替換
  5. 訊息總線:Azure Service Bus / RabbitMQ / Kafka 實現異步整合

邊界上下文架構圖

依賴注入與 AOP

  • 內建 DI 容器:`IServiceCollection`、`AddScoped/Transient/Singleton`
  • 第三方:Autofac、DryIoc、Lamar (效能/功能擴充)
  • AOP:`DispatchProxy`、Scrutor 裝飾器、AspectCore、PostSharp (編譯時編織)
  • **組合根** 模式優於服務定位器,構造函數注入為標準

遺留系統處理

  1. 建立 **Facade/Adapter** 層,暴露現代 API (REST/gRPC)
  2. 引入**緩存層** (Redis/Memory) 保護舊資料庫
  3. 逐步將功能遷移至新微服務,Facade 重新導向
  4. 舊代碼隔離於獨立倉庫,標記 `Obsolete`、停止功能新增

總結:2024 技術雷達

採用試用評估暫緩
.NET 8 LTS、ASP.NET Core、EF Core、Blazor、MAUI、SignalR、gRPC、Dapper、OpenTelemetry、Docker/K8sASP.NET Core Minimal API、.NET Aspire、WebAssembly SIMD、AOT 編譯、C# 12 primary constructorsWebAssembly GC、Native AOT 完整支援、MAUI Linux 桌面、Orleans 虛擬 ActorSilverlight、Flash、WebForms、WCF (新專案)、EF6、project.json、.NET Framework 4.x 新專案

技術選型無銀彈,**團隊技能、業務約束、長期維護成本** 三角權衡。微軟指南提供方向,最終決策在架構師手中。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved