Toolchain của mình năm 2022: Visual Studio Community, SSMS, Postman, và terminal Windows cổ điển. Tất cả miễn phí, tất cả đều chậm, và mình không biết mình đang mất bao nhiêu thời gian cho những thứ lẽ ra nhanh hơn.
Toolchain hiện tại: Rider, Claude Code trong terminal, Docker Desktop, DBeaver, Seq cho logging. Không phải mỗi tool đều đắt — nhưng mỗi cái tiết kiệm vài phút mỗi ngày, cộng lại cả năm là hàng trăm giờ.
Bài viết này là bộ toolchain mình recommend cho .NET developer năm 2026, chia theo từng category. Không liệt kê tất cả mọi thứ trên thị trường — chỉ những thứ mình đã dùng thực tế và thấy xứng đáng thời gian setup.
IDE & Code Editor
JetBrains Rider — best overall cho .NET
Giá: $149/năm cá nhân (giảm dần năm 2, 3) | Platform: Windows, macOS, Linux
Mình chuyển từ Visual Studio sang Rider cách đây hai năm và không quay lại. Lý do chính: Rider nhanh hơn đáng kể — project lớn (50+ projects trong solution) mở trong 10 giây thay vì 45 giây, IntelliSense không lag, refactoring instant.
Những thứ Rider làm tốt hơn Visual Studio:
Code analysis real-time. Rider gạch chân vấn đề ngay khi bạn gõ — unused variable, possible null reference, LINQ có thể simplify, async method thiếu await. Không cần build để thấy lỗi. Visual Studio có Roslyn analyzers nhưng chậm hơn và ít suggestion hơn.
Refactoring. Extract method, change signature, move type to file, inline variable, introduce parameter — tất cả đều nhanh và chính xác. Rider kế thừa từ ReSharper nên refactoring toolkit là best-in-class.
Database tool built-in. Connect database trực tiếp trong IDE, chạy query, xem schema, edit data — không cần mở DBeaver hay SSMS riêng. Với project nhỏ, đây là tiện lợi lớn.
Cross-platform. macOS và Linux first-class citizen. Visual Studio for Mac đã bị khai tử, nên Rider là lựa chọn duy nhất full-featured cho .NET trên Mac.
Nhược điểm: $149/năm không rẻ cho indie dev. Một số enterprise-specific feature (Live Unit Testing, IntelliTrace) chỉ có ở Visual Studio Enterprise. Và nếu team toàn dùng Visual Studio, .sln config đôi khi khác biệt nhỏ.
Visual Studio 2022 — enterprise standard
Giá: Community (free), Professional ($45/mo), Enterprise ($250/mo) | Platform: Windows only
Visual Studio vẫn là IDE số một về market share cho .NET. Lý do chính: miễn phí cho cá nhân và team nhỏ (Community), enterprise features không đối thủ nào có, và gần như mọi tutorial .NET đều dựa trên Visual Studio.
Khi nào chọn Visual Studio thay Rider:
Cần Hot Reload mạnh — Visual Studio hot reload cho Blazor, MAUI, WPF tốt hơn Rider. Cần MAUI/WPF designer — visual designer chỉ có ở Visual Studio. Team dùng Azure DevOps nặng — tích hợp work items, boards ngay trong IDE. Budget $0 — Community edition miễn phí, Rider thì không.
Nhược điểm 2026: vẫn chậm với solution lớn, vẫn Windows only, và UI ngày càng cluttered. Microsoft đang invest vào VS Code + C# Dev Kit nhiều hơn Visual Studio — tín hiệu dài hạn đáng suy nghĩ.
VS Code + C# Dev Kit — free, nhẹ, đủ dùng
Giá: Free | Platform: Windows, macOS, Linux
VS Code đã không còn là "editor cho frontend dev" từ lâu. C# Dev Kit (Microsoft official extension) biến nó thành .NET IDE thật sự: Solution Explorer, project management, test explorer, NuGet management, IntelliSense chính xác.
Setup recommend:
Extensions cần thiết:
- C# Dev Kit (ms-dotnettools.csdevkit)
- IntelliCode for C# (ms-dotnettools.vscodeintellicode-csharp)
- NuGet Gallery (patcx.vscode-nuget-gallery)
- REST Client (humao.rest-client) — thay Postman
- GitLens (eamodio.gitlens)
- Error Lens (usernamehw.errorlens) — hiện error inline
Khi nào chọn VS Code: laptop yếu (VS Code chạy mượt trên 8GB RAM, Visual Studio cần 16GB+), cần editor đa ngôn ngữ (C# + TypeScript + Python trong cùng workspace), hoặc đơn giản là thích lightweight.
Nhược điểm: refactoring kém hơn Rider/Visual Studio, debugging experience không bằng, và một số advanced feature (code coverage visualization, architecture diagram) không có.
Cursor — khi AI là ưu tiên số 1
Giá: Free (limited) / $20/mo Pro | Platform: Windows, macOS, Linux
VS Code fork với AI tích hợp sâu. Tab prediction, Cmd+K inline edit, Composer multi-file. Mình đã viết chi tiết trong bài riêng về Cursor nên không lặp lại — nhưng nếu bạn muốn AI-first editing experience, Cursor hiện tại là tốt nhất.
Recommendation: dùng Cursor cho day-to-day coding, Rider cho debugging phức tạp và refactoring lớn. Hai IDE mở song song — Cursor cho viết, Rider cho navigate và debug.
AI Coding Assistant
GitHub Copilot — reliable, everywhere
Giá: $10/mo Individual, $19/mo Business | Platform: mọi IDE
Copilot đã trải qua giai đoạn hype và giờ ổn định — Tab completion tốt, consistent, hiếm khi gợi ý hoàn toàn sai. Nó không phải AI mạnh nhất nhưng là AI ổn định nhất — chạy trên mọi IDE, không bao giờ chậm quá 200ms.
Khi nào chọn Copilot: team cần một AI assistant chuẩn dùng chung, budget rõ ràng ($10/dev/mo), không muốn experiment. Copilot là Toyota — đáng tin cậy, không exciting.
Claude Code — agentic, mạnh cho task lớn
Giá: pay-per-use (Anthropic API) | Platform: Terminal (mọi OS)
CLI tool chạy trong terminal — khác hoàn toàn Copilot. Claude Code đọc cả codebase, tự navigate file, tự chạy build/test, tự sửa lỗi. Mạnh cho: scaffold feature mới, refactor module, viết test suite, debug phức tạp.
Khi nào chọn Claude Code: task cần context nhiều file, muốn delegate cả chunk of work thay vì gợi ý từng dòng. Dùng song song với Copilot — Copilot cho inline, Claude Code cho big picture.
Continue — free, open source, tùy biến
Giá: Free | Platform: VS Code, JetBrains
Open-source AI coding assistant — kết nối bất kỳ model nào: OpenAI, Claude, local model qua Ollama. Mình dùng Continue khi cần AI nhưng muốn dùng model khác Copilot (ví dụ Claude Sonnet cho reasoning tốt hơn), hoặc khi cần self-hosted model cho privacy.
Setup Continue + Ollama cho offline coding:
// ~/.continue/config.json
{
"models": [
{
"title": "Ollama Codestral",
"provider": "ollama",
"model": "codestral:latest"
}
],
"tabAutocompleteModel": {
"title": "Ollama Qwen Coder",
"provider": "ollama",
"model": "qwen2.5-coder:7b"
}
}
AI coding hoàn toàn offline, miễn phí, data không rời khỏi máy. Trade-off: chất lượng kém hơn Copilot/Claude, cần GPU tốt cho model lớn.
Terminal & CLI
Windows Terminal + Oh My Posh
Nếu bạn vẫn dùng cmd.exe hoặc PowerShell cũ — chuyển ngay. Windows Terminal hỗ trợ tabs, split panes, GPU-accelerated rendering, và theme đẹp.
# cài Oh My Posh cho prompt đẹp
winget install JanDeDobbeleer.OhMyPosh
# profile PowerShell
notepad $PROFILE
# thêm dòng:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\catppuccin_mocha.omp.json" | Invoke-Expression
Prompt hiển thị: git branch, .NET version, execution time, error status. Nhìn terminal biết ngay đang ở branch nào, build có thành công không.
dotnet CLI — biết sâu thay vì chỉ dotnet run
Hầu hết dev chỉ biết dotnet run và dotnet build. CLI mạnh hơn nhiều:
# tạo project từ template
dotnet new webapi -n MyApi --use-controllers
dotnet new classlib -n MyLib
# thêm reference giữa projects
dotnet add src/MyApi reference src/MyLib
# manage NuGet
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
dotnet list package --outdated # check package cần update
# EF Core migrations
dotnet ef migrations add InitialCreate
dotnet ef database update
# run với watch (hot reload)
dotnet watch run --project src/MyApi
# publish optimized
dotnet publish -c Release -r linux-x64 --self-contained false
# global tools hữu ích
dotnet tool install -g dotnet-ef
dotnet tool install -g dotnet-outdated-tool
dotnet tool install -g dotnet-counters
dotnet tool install -g dotnet-trace
dotnet watch run là game changer — sửa code, save, app tự rebuild và restart. Không cần stop/start bằng tay.
dotnet-outdated-tool scan toàn bộ solution, list packages nào có version mới — cực kỳ tiện cho maintenance.
Docker Desktop — container là standard
Năm 2026, deploy .NET app mà không Docker gần như là exception. Docker Desktop cho Windows/Mac là cách đơn giản nhất để chạy container local.
# chạy PostgreSQL local — 10 giây thay vì cài installer
docker run -d --name postgres \
-e POSTGRES_PASSWORD=dev123 \
-p 5432:5432 \
postgres:16
# chạy Redis
docker run -d --name redis -p 6379:6379 redis:7
# chạy cả stack với docker compose
docker compose up -d
Alternative: Podman Desktop (free, rootless, không cần license) hoặc OrbStack (macOS only, nhanh hơn Docker Desktop gấp nhiều lần).
Recommend: OrbStack nếu dùng Mac, Docker Desktop nếu dùng Windows. Podman nếu công ty không muốn trả license Docker.
Database Tools
DBeaver Community — universal database client, free
Giá: Free (Community) | Platform: mọi OS
Thay thế SSMS (chỉ Windows, chỉ SQL Server) bằng DBeaver — connect mọi database: PostgreSQL, SQL Server, MySQL, SQLite, MongoDB, Redis. Một tool cho tất cả.
Tính năng mình dùng nhiều nhất:
ER Diagram tự generate từ schema — đưa vào docs, review DB design. Query explain plan visual — nhìn join order, index usage trực quan hơn text. Data export/import — CSV, JSON, SQL script — nhanh gọn. Compare schema giữa hai database — phát hiện migration thiếu.
Alternative: DataGrip (JetBrains, $89/năm, mạnh hơn DBeaver cho query editing nhưng đắt) hoặc pgAdmin (free, chỉ PostgreSQL, web-based).
Azure Data Studio — nếu dùng SQL Server
Free, từ Microsoft, cross-platform. Nhẹ hơn SSMS rất nhiều, có notebook support (giống Jupyter nhưng cho SQL), và extension ecosystem. Nếu team dùng SQL Server và cần tool miễn phí trên Mac/Linux, đây là lựa chọn duy nhất.
API Testing
REST Client (VS Code extension) — thay thế Postman
Postman ngày càng bloated — account bắt buộc, sync cloud, team features bạn không cần. REST Client extension cho VS Code/Cursor đơn giản hơn nhiều:
### Login
POST {{baseUrl}}/api/auth/login
Content-Type: application/json
{
"email": "admin@example.com",
"password": "Admin123!"
}
### Get Products (dùng token từ login)
GET {{baseUrl}}/api/products?page=1&category=electronics
Authorization: Bearer {{token}}
### Create Product
POST {{baseUrl}}/api/products
Authorization: Bearer {{token}}
Content-Type: application/json
{
"name": "iPhone 15",
"price": 29990000,
"category": "smartphones"
}
File .http commit vào git — cả team dùng chung, version controlled, không cần sync Postman workspace. Variable {{baseUrl}} đổi theo environment. Click "Send Request" ngay trong editor — response hiện bên cạnh.
Alternative: Bruno (desktop app, offline-first, git-friendly) nếu muốn tool standalone. httpYac nếu cần scripting phức tạp.
Logging & Monitoring
Seq — structured logging viewer tốt nhất
Giá: Free (single user) / $45+/mo team | Platform: Docker/Windows
Nếu bạn dùng Serilog (và nên dùng), Seq là UI đẹp nhất để xem structured logs. Filter theo property, search full-text, dashboard, alert — tất cả cho structured log data.
// setup Serilog + Seq
builder.Host.UseSerilog((context, config) => config
.WriteTo.Console()
.WriteTo.Seq("http://localhost:5341")
.Enrich.FromLogContext()
.Enrich.WithProperty("App", "MyApi"));
# chạy Seq local bằng Docker
docker run -d --name seq -p 5341:80 \
-e ACCEPT_EULA=Y datalust/seq
Mở http://localhost:5341 — thấy mọi log request, exception, custom event. Filter StatusCode >= 500 để thấy toàn bộ server error. Group by RequestPath để tìm endpoint nào log nhiều nhất.
.NET Aspire Dashboard — miễn phí, đi kèm .NET 8
.NET Aspire Dashboard cung cấp distributed tracing, metrics, và structured logs cho development — không cần Seq hay Application Insights:
# chạy standalone dashboard
docker run -d --name aspire-dashboard -p 18888:18888 -p 18889:18889 \
mcr.microsoft.com/dotnet/aspire-dashboard:latest
// kết nối app vào dashboard
builder.Services.AddOpenTelemetry()
.WithTracing(t => t.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddOtlpExporter(o => o.Endpoint = new Uri("http://localhost:18889")))
.WithMetrics(m => m.AddAspNetCoreInstrumentation()
.AddOtlpExporter(o => o.Endpoint = new Uri("http://localhost:18889")));
Dashboard hiện: request trace qua nhiều service, response time distribution, error rate, dependency call. Miễn phí, chạy local, đủ cho development. Production thì nên dùng Seq, Application Insights, hoặc Grafana stack.
Performance Profiling
dotnet-counters — quick health check
# xem real-time metrics
dotnet-counters monitor --process-id <PID>
# hoặc tự detect process
dotnet-counters monitor -n MyApi
# output:
# [System.Runtime]
# GC Heap Size (MB) 42
# Gen 0 GC Count 15
# Gen 1 GC Count 3
# Gen 2 GC Count 1
# ThreadPool Queue Length 0
# Working Set (MB) 89
Không cần cài gì thêm — dotnet-counters là global tool. Xem nhanh: memory có leak không (Heap Size tăng liên tục?), GC có chạy quá nhiều không, ThreadPool có bị starved không. 30 giây diagnosis mà không cần profiler nặng.
dotnet-trace — deep analysis
# record trace 30 giây
dotnet-trace collect -p <PID> --duration 00:00:30
# mở file .nettrace bằng:
# - Visual Studio → File → Open
# - PerfView (free, Microsoft)
# - Speedscope (web-based, miễn phí)
Khi dotnet-counters cho thấy vấn đề nhưng không rõ ở đâu — dotnet-trace record chi tiết: method nào tốn CPU, allocation nào tạo GC pressure, async state machine nào block. Export ra file, mở trong Speedscope (speedscope.app) để xem flame graph.
BenchmarkDotNet — micro-benchmark chính xác
[MemoryDiagnoser]
public class StringBenchmarks
{
[Benchmark(Baseline = true)]
public string StringConcat()
{
var result = "";
for (int i = 0; i < 1000; i++)
result += i.ToString();
return result;
}
[Benchmark]
public string StringBuilder()
{
var sb = new StringBuilder();
for (int i = 0; i < 1000; i++)
sb.Append(i);
return sb.ToString();
}
}
dotnet run -c Release
# output: chính xác đến nanosecond, so sánh memory allocation
Không đoán "cái nào nhanh hơn" — benchmark cho ra con số. BenchmarkDotNet handle warmup, GC, JIT compilation — kết quả tin cậy hơn Stopwatch gấp bội.
Git & Version Control
GitKraken / Fork — visual Git client
Terminal git mạnh nhưng visualize history, resolve conflict, cherry-pick — GUI dễ hơn. Fork (free, macOS/Windows) là lựa chọn nhẹ và nhanh nhất mình từng dùng. GitKraken ($4.95/mo) đẹp hơn, có Jira/Trello integration.
GitLens (VS Code extension) — git blame inline
Ai sửa dòng này, khi nào, trong commit nào — hiện ngay trên dòng code. Khi debug thấy code lạ, GitLens cho biết ai viết và commit message là gì — context rất hữu ích trước khi hỏi.
Utility tools
LINQPad — playground cho C# và LINQ
Giá: Free (basic) / $65 (Premium, auto-completion) | Platform: Windows
Scratch pad cho C# — viết snippet, test LINQ query, explore API, prototype logic. Nhanh hơn tạo console project mỗi lần muốn thử gì đó. Kết nối database trực tiếp, chạy LINQ lên DB thật, xem SQL generate.
// LINQPad — test query nhanh
var expensive = Products
.Where(p => p.Price > 1000000)
.GroupBy(p => p.Category.Name)
.Select(g => new { Category = g.Key, Count = g.Count(), Avg = g.Average(p => p.Price) })
.Dump(); // .Dump() hiện kết quả visual
.Dump() là magic method của LINQPad — render bất kỳ object nào thành table/tree đẹp. Debug output nhanh hơn breakpoint.
Regex101.com — regex tester
Mỗi lần cần viết regex, mở regex101.com. Paste input text, viết regex, xem match real-time, explanation từng phần. Copy regex sang C# code. Nhanh hơn debug regex bằng trial-and-error gấp 10 lần.
DevToys — Swiss Army knife cho dev
Giá: Free, open source | Platform: Windows, macOS, Linux
Offline tool tổng hợp: JSON formatter, JWT decoder, base64 encode/decode, hash generator, regex tester, color picker, Lorem Ipsum generator, UUID generator. Tất cả offline, không cần mở browser.
Bảng so sánh nhanh
Tool Giá Dùng cho Thay thế
────────────────────────────────────────────────────────────────
Rider $149/yr IDE chính Visual Studio
VS Code + C# DK $0 IDE nhẹ Visual Studio
Cursor $20/mo AI-first editing VS Code
GitHub Copilot $10/mo AI inline completion Tab autocomplete
Claude Code Pay-per-use Agentic coding Copilot Chat
Continue $0 AI (self-hosted model) Copilot
Docker Desktop $0* Container Local install
DBeaver $0 Database client SSMS / pgAdmin
REST Client $0 API testing Postman
Seq $0 (solo) Log viewer Console log
Aspire Dashboard $0 Dev observability Jaeger / Zipkin
dotnet-counters $0 Quick perf check Task Manager
LINQPad $0-65 C# playground Console project
DevToys $0 Utility tools Online tools
────────────────────────────────────────────────────────────────
* Docker Desktop free cho personal/small business
Recommendation theo budget
Budget $0 — mọi thứ miễn phí
VS Code + C# Dev Kit → Continue (free AI, Ollama local) → Docker Desktop → DBeaver → REST Client → Aspire Dashboard → dotnet CLI tools → DevToys.
Đầy đủ toolchain professional mà không tốn đồng nào. Trade-off: AI kém hơn Copilot, IDE kém hơn Rider, nhưng hoàn toàn production-capable.
Budget $30/mo — sweet spot
Rider ($12.4/mo) + GitHub Copilot ($10/mo). Hai tool này cover 90% nhu cầu. Rider cho IDE experience tốt nhất, Copilot cho AI inline ổn định nhất. Phần còn lại dùng free tools.
Budget $50+/mo — maximum productivity
Rider + Cursor Pro ($20/mo) + Claude Code (API usage ~$10-20/mo). Rider cho debugging và refactoring, Cursor cho AI-first editing, Claude Code cho agentic tasks. Ba tool bổ sung cho nhau, không overlap nhiều.
Toolchain mình đang dùng
Cho ai tò mò, đây là setup hàng ngày:
IDE: Rider (debug, refactor, navigate)
+ Cursor (day-to-day coding, AI edit)
AI: Copilot (inline completion)
+ Claude Code (scaffold, refactor, test generation)
Terminal: Windows Terminal + Oh My Posh + PowerShell 7
Container: Docker Desktop
Database: DBeaver (PostgreSQL)
API test: REST Client (.http files trong repo)
Logging: Seq (development) + Application Insights (production)
Git: Fork (visual) + CLI (rebase, cherry-pick)
Profiling: dotnet-counters → dotnet-trace → Speedscope
Playground: LINQPad
Utilities: DevToys, regex101.com
Không phải setup hoàn hảo cho mọi người — nhưng đây là kết quả nhiều năm thử nghiệm và loại bỏ. Mỗi tool trong list đều earn vị trí của nó bằng cách tiết kiệm thời gian thực sự.
Tổng kết
Toolchain không phải setup một lần rồi dùng mãi. Mỗi năm có tool mới đáng thử — Cursor năm ngoái chưa ai biết, giờ mình dùng hàng ngày. Claude Code mới ra vài tháng, đã thay đổi cách mình approach task lớn.
Nhưng cũng đừng chạy theo mọi tool mới. Mỗi tool thêm vào là thêm context switch, thêm config, thêm thứ cần update. Chọn ít tool mà dùng sâu tốt hơn nhiều tool mà dùng nông.
Nếu chỉ thay đổi một thứ sau bài này — hãy thử Rider (nếu đang dùng Visual Studio) hoặc REST Client (nếu đang dùng Postman). Hai thay đổi nhỏ mà impact lớn nhất từ kinh nghiệm mình.
Leave a comment
Your email address will not be published. Required fields are marked *