前言:為何需要結構化學習路徑?
ASP.NET 生態歷經 Web Forms → MVC → Web API → Core 的演進,技術棧龐大且更新快。缺乏路線圖的自學者常陷入「語法堆砌」而非「架構思維」的陷阱。本路線圖以核心概念不變、工具鏈演進為原則,分 9 階段、3 里程碑,引導你從零建立可落地的企業級開發能力。
里程碑 0:先決條件(第 0 週)
- 物件導向程式設計 (OOP):封裝、繼承、多型、SOLID 原則、設計模式 (Factory, Strategy, Repository, Unit of Work)
- C# 核心語法:泛型、委派/事件、Lambda、LINQ、async/await、Span/Memory、Nullable Reference Types
- .NET Runtime 基礎:CLR、JIT、GC (代際、大物件堆)、AppDomain/AssemblyLoadContext、反射與特性
若已具備上述基礎,直接進入階段 1;否則建議花 2~4 週鞏固,否則後續學習將極其痛苦。
階段 1:前端基石(第 1~2 週)
1.1 HTML5 語意化結構
- 區塊元素:
<header>, <nav>, <main>, <article>, <section>, <aside>, <footer>
- 表單驗證屬性:
required, pattern, min/max, type="email|number|date"
- 無障礙 (a11y):ARIA 標籤、語意化標籤、鍵盤導航
1.2 CSS 現代佈局
- Flexbox / Grid 取代 Float 佈局
- CSS Custom Properties (變數)、媒體查詢、Container Queries
- BEM 命名規範、CSS Modules / Tailwind CSS 實務
1.3 JavaScript / TypeScript 核心
- ES2015+:模組系統、解構、展開運算子、可選鏈、Nullish 合併
- 非同步:Promise、async/await、並行控制 (Promise.allSettled)
- DOM 操作與事件委派、Virtual DOM 概念 (React/Vue 核心)
- TypeScript:介面、泛型、型別守衛、Utility Types、嚴格模式
階段 2:網路與協定原理(第 3 週)
- HTTP/1.1 vs HTTP/2 vs HTTP/3 (QUIC):多路複用、Header 壓縮、Server Push
- DNS 解析、TLS 1.3 握手、憑證鏈、HSTS、CSP
- RESTful API 設計:資源導向、狀態碼、版本控制、HATEOAS
- OpenAPI/Swagger 規範驅動開發
階段 3:ASP.NET Core 表示層精通(第 4~6 週)
3.1 核心管線與中介軟體
Program.cs / Startup.cs:WebApplicationBuilder、DI 容器、中介軟體排序
- 內建中介軟體:
UseHttpsRedirection, UseStaticFiles, UseRouting, UseAuthentication/Authorization, UseEndpoints
- 自訂中介軟體:
IMiddleware、委派式、UseWhen 分支
3.2 MVC / Razor Pages / Minimal APIs
- 控制器:
ControllerBase、Action Result、模型繫結、驗證 (DataAnnotations、FluentValidation)
- Razor Pages:PageModel、
OnGet/OnPost、BindProperty、Partial Views、ViewComponents
- Minimal APIs:
MapGet/Post/Put/Delete、RouteHandlerBuilder、IResult、TypedResults
3.3 視圖與前端整合
- Razor 語法、Tag Helpers、
@model、@inject、Layout/Sections
- 前端建構:Vite / Webpack / esbuild、HMR、TypeScript、CSS Isolation
- Blazor (Server / WebAssembly / Hybrid):元件生命週期、RenderMode、JS Interop、狀態管理 (Fluxor/Redux)
3.4 安全性實務
- 認證:Cookie、JWT、OpenID Connect、IdentityServer / Duende / Azure AD
- 授權:Policy-based、Resource-based、
[Authorize]、IAuthorizationHandler
- 防護:CSRF (Antiforgery)、XSS (編碼、CSP)、Clickjacking (X-Frame-Options)、Rate Limiting
階段 4:資料存取與 ORM(第 7~8 週)
4.1 ADO.NET 核心與 Dapper
DbConnection, DbCommand, DbDataReader、參數化查詢、交易 (DbTransaction)
- Dapper:
QueryAsync, ExecuteAsync, QueryMultiple, 分頁、動態參數、Type Handlers
4.2 Entity Framework Core 進階
- Code First / Database First / Scaffold-DbContext
- 關聯配置:Fluent API、Owned Types、Value Converters、TPH/TPT/TPC
- 查詢優化:
AsNoTracking, Include/ThenInclude, SplitQuery, AsSplitQuery, 原始 SQL、編譯查詢
- 變更追蹤:
ChangeTracker、DetectChanges、AutoDetectChangesEnabled、離線實體附加
- 遷移:
Add-Migration, Update-Database, 種子資料、生產環境部署策略
4.3 快取策略
- MemoryCache / Distributed Cache (Redis / SQL Server)
IDistributedCache、HybridCache (Preview)、快取標籤、失效模式
- 查詢快取:EFCore.CompiledQueries、第三方 (L2 Cache)
階段 5:多層架構與領域驅動設計(第 9~10 週)
- 分層:Presentation → Application (Use Cases/DTOs) → Domain (Entities/Value Objects/Aggregates/Domain Events) → Infrastructure (EF Core/External Services)
- DDD 戰術模式:Aggregate Root、Repository、Domain Events、Specification、Factory
- CQRS + MediatR:Command/Query 分離、Pipeline Behaviors (驗證、記錄、交易)
- 整潔架構 / 洋蔥架構:依賴規則、介面隔離、可測試性
階段 6:微服務與分散式系統進階(第 11~13 週)
- 服務拆解:業務能力、資料擁有權、Saga 模式 (Choreography/Orchestration)
- 通訊:gRPC (Protobuf)、Message Broker (RabbitMQ/Kafka/Azure Service Bus)、Outbox Pattern
- 服務發現與閘道:YARP / Ocelot / Kong、負載平衡、熔斷 (Polly)、重試、逾時
- 觀測性:OpenTelemetry (Metrics/Logs/Traces)、Serilog、Grafana/Prometheus/Jaeger
- 容器化:Dockerfile 多階段建置、.NET 8 原生 AOT、Kubernetes (Helm/Operator)、Health Checks
階段 7:即時通訊與進階主題(第 14 週)
- SignalR:Hub、Group、Connection Context、ScaleOut (Redis/Azure)、Streaming
- gRPC Web / gRPC JSON Transcoding
- GraphQL:HotChocolate、Schema Stitching、DataLoader、N+1 解決
- 背景工作:
IHostedService、BackgroundService、Hangfire / Quartz / MassTransit
階段 8:測試、品質與 DevOps(第 15 週)
- 單元測試:xUnit / NUnit、Moq / NSubstitute、FluentAssertions、AutoFixture
- 整合測試:
WebApplicationFactory、Testcontainers (DB/Redis/MQ)、TestServer
- 契約測試:Pact (Consumer-Driven Contracts)
- 靜態分析:SonarQube、Roslyn Analyzers、StyleCop、Security Code Scan
- CI/CD:GitHub Actions / Azure DevOps / GitLab CI、建置、測試、掃描、部署、藍綠/金絲雀發布
階段 9:專案實戰與作品集(持續進行)
- 電商後台:商品/訂單/庫存/優惠券、事件驅動庫存扣減、Idempotency Key
- SaaS 多租戶平台:租戶隔離 (Schema/Row-level)、功能旗標、計費整合
- 即時協作工具:SignalR + CRDT / OT、離線同步、衝突解決
- 高併發 API 閘道:YARP + Rate Limiting + JWT 驗證 + 觀測性
每個專案要求:完整 CI/CD、自動化測試覆蓋率 > 80%、觀測性儀表板、架構決策記錄 (ADR)、README 與架構圖。
進階專題:依興趣深耕
- 效能調優:BenchmarkDotNet、PerfView、GC 分析、PGO、Native AOT
- 安全深度:滲透測試、威脅建模 (STRIDE)、供應鏈安全 (SBOM、Dependabot)
- 雲原生:AKS/EKS/GKE、Service Mesh (Istio/Linkerd)、GitOps (ArgoCD/Flux)
- AI 整合:Semantic Kernel、OpenAI/Azure AI Services、RAG、向量資料庫
學習方法論建議
- 輸出倒逼輸入:每學一項技術,寫一篇部落格/錄一支影片/做一個 Demo 專案
- 原始碼閱讀:ASP.NET Core / EF Core / Dapper / MediatR 官方 repo,理解設計意圖
- 建立知識圖譜:Obsidian / Notion 連結概念,定期複習 (間隔重複)
- 參與社群:GitHub Discussions、StackOverflow、技術社群 Meetup、開源貢獻
結語
這條路線圖不是死板清單,而是能力地圖。真正的成長發生在「解決具體問題」的過程中——遇到效能瓶頸才深懂 GC、遭遇分散式一致性難題才體會 Saga、被安全審計駁回才重視威脅建模。請帶著問題上路,在實戰中把知識內化為直覺。祝你在 ASP.NET Core 的世界裡,寫出既優雅又強健的系統!