前置條件:物件導向基礎 (不可跳過)
ASP.NET 是全物件導向框架。不懂 封裝、繼承、多型、介面、委派、事件、泛型、LINQ、非同步/等待,學 ASP.NET 如蓋樓無地基。建議先完成 C# 核心語法與設計模式基礎課程。
九大階段學習路徑
階段 1:前端三大支柱 (2-3 週)
- HTML5 語意化標記:
<header>, <section>, <article>, <aside>, 表單驗證屬性
- CSS3 盒模型與佈局:Flexbox、Grid、CSS 變數、媒體查詢、BEM 命名規範
- JavaScript ES6+:Let/Const、箭頭函式、解構、模組化、Promise/Async-Await、Fetch API、DOM 操作、事件委派
- 工具鏈:VS Code、Chrome DevTools、Git、npm/yarn、Webpack/Vite 基本認知
💡 重點:不需精通 UI 設計 (那是設計師工作),但必須能「看懂設計稿、切版還原、除錯樣式衝突」。
階段 2:網路協定與 HTTP 本質 (1 週)
- TCP/IP 四層模型、DNS 解析、HTTPS/TLS 握手
- HTTP/1.1 vs HTTP/2 vs HTTP/3 (QUIC) 差異
- Request/Response 標頭、Cookie、Cache-Control、CORS、JWT 傳輸
- RESTful API 設計原則、狀態碼語意、版本控制策略
階段 3:ASP.NET Core 基礎 (3-4 週)
| 核心主題 | 關鍵知識點 |
| Middleware Pipeline | Use/Run/Map、次序敏感、短路、自訂 Middleware |
| Dependency Injection | 三大生命週期、建構式注入、IServiceCollection、Scoped 陷阱 |
| Routing & Endpoint | 屬性路由、約束、分組、Endpoint Metadata |
| Model Binding & Validation | [FromBody/Query/Route/Header]、DataAnnotations、FluentValidation、IValidatableObject |
| Filter Pipeline | Authorization → Resource → Action → Exception → Result → Resource Release |
| View / Razor Pages | Tag Helpers、ViewComponent、Partial、Layout、Razor Class Library |
階段 4:資料存取與 EF Core (3 週)
- 關聯式資料庫:SQL Server/PostgreSQL、索引、查詢計畫、交易、隔離等級
- EF Core 進階:Code First 遷移、影子屬性、Owned Types、分表查詢、原生 SQL、攔截器、效能調優 (AsNoTracking、Split Query、Compiled Query)
- 非關聯式:Redis (快取、Session、分散式鎖)、MongoDB (文件模型)
- 資料庫版本控制:FluentMigrator、DbUp、EF Core Migrations 團隊協作流程
階段 5:架構模式與領域驅動設計 (4 週)
- 分層架構:Presentation → Application → Domain → Infrastructure,依賴反轉
- CQRS + MediatR:Command/Query 分離、Pipeline Behaviors (驗證、記錄、交易)
- DDD 戰術模式:Entity、Value Object、Aggregate Root、Domain Event、Repository、Factory
- 模組化單體:垂直切分 Feature Modules、共用 Kernel、資料庫 Schema 隔離
階段 6:API 設計與微服務基礎 (3 週)
- OpenAPI/Swagger 文件自動化、版本控制 (URL/Header/Media Type)
- gRPC + Protobuf 內部服務通訊、HTTP/2 優勢
- 訊息佇列:RabbitMQ/Kafka、事件驅動架構、Outbox Pattern 保證一致性
- API Gateway:YARP、Ocelot、率限制、熔斷、認證授權集中化
- 服務發現與配置中心:Consul、Nacos、Apollo
階段 7:雲端原生與 DevOps (持續精進)
- 容器化:Dockerfile 最佳實踐、多階段建置、.dockerignore、安全掃描 (Trivy)
- Kubernetes:Deployment/Service/Ingress/ConfigMap/Secret、HPA、Pod Disruption Budget
- CI/CD:GitHub Actions / GitLab CI / Azure DevOps、建置→測試→掃描→部署 (Blue-Green/Canary)
- 可觀測性:Serilog + Seq/ELK、OpenTelemetry (Metrics/Logs/Traces)、Grafana 儀表板、健康檢查端點
階段 8:安全性與效能調優 (專項深入)
- 認證授權:IdentityServer4/Duende、OAuth 2.0/OIDC 流程、JWT 簽名驗證、Policy-based Authorization
- 防禦:XSS、CSRF、SQL Injection、IDOR、Rate Limiting、CSP、HSTS
- 效能:快取策略 (Memory/Distributed/Response/Output)、資料庫連線池、非同步最佳實踐、大物件堆疊、GC 模式調整
階段 9:前沿技術視野 (選修)
- Blazor WebAssembly / Server、MAUI 跨平台
- SignalR 即時通訊、WebSocket、Server-Sent Events
- ML.NET / ONNX Runtime 模型部署
- gRPC-Web、GraphQL (HotChocolate)、tRPC
學習資源推薦
| 類型 | 推薦資源 |
| 官方文件 | Microsoft Learn ASP.NET Core (最權威、持續更新) |
| 經典書籍 | 《Pro ASP.NET Core 7/8》(Adam Freeman)、《Architecting ASP.NET Core Applications》(Carl-Hugo Marcotte)、《Domain-Driven Design》(Eric Evans) |
| 實戰專案 | eShopOnWeb (DDD 分層)、eShopOnContainers (微服務) |
| 部落格 | Andrew Lock、Steve Gordon、Jimmy Bogard、Martin Fowler、Nick Chapsas |
避坑指南
- 不要從 Web Forms 開始學:那是 2002 年技術,維護舊專案才需了解
- 不要邊學邊用「拖拉元件」開發:掌握程式碼優先,理解底層運作
- 不要忽略單元測試:xUnit + Moq + FluentAssertions,目標覆蓋率 > 80% 核心邏輯
- 不要一次學太多:按階段精進,每階段產出一個可運行的小專案
- 不要只看不練:每個知識點都要在 IDE 實作、除錯、重構
總結
ASP.NET 學習是場馬拉松,非百米賽跑。扎實 C# + HTTP + ASP.NET Core + EF Core + 架構 五大支柱,再向雲端原生、微服務、前沿技術拓展。保持好奇,持續重構,享受編程樂趣。