0.1 - Cài .NET SDK và trình soạn code
Tóm tắt: Trước khi viết dòng C# đầu tiên, máy bạn cần hai thứ: .NET SDK (bộ công cụ để biên dịch và chạy code) và một trình soạn code hiểu C#. Bài này cài .NET 10, bản hỗ trợ dài hạn hiện hành, trên Windows, macOS hoặc Linux, rồi chọn một trong ba trình soạn code phổ biến: VS Code, Visual Studio hoặc Rider. Cuối bài, lệnh
dotnet --versionphải in ra một số bắt đầu bằng10..
Mục tiêu bài học
Sau bài này bạn có thể:
- Phân biệt .NET SDK và .NET Runtime, biết máy học lập trình cần cái nào.
- Cài .NET 10 SDK trên hệ điều hành đang dùng và kiểm tra cài đặt thành công.
- Chọn và cài một trình soạn code phù hợp với máy của mình.
- Xử lý được các lỗi cài đặt hay gặp nhất:
dotnetkhông được nhận ra, sai phiên bản, lỗi font tiếng Việt trong terminal.
Nội dung bài học
0.1.1 — SDK, Runtime và vì sao chọn .NET 10
Trên trang tải .NET có hai thứ dễ nhầm:
| Dùng để | Ai cần | |
|---|---|---|
| .NET SDK | Tạo project, biên dịch, chạy, test, đóng gói | Người viết code: bạn |
| .NET Runtime | Chỉ chạy ứng dụng đã biên dịch | Máy chủ chạy ứng dụng |
SDK đã chứa sẵn runtime. Vì vậy máy học lập trình chỉ cần cài SDK.
Về phiên bản, .NET ra một bản lớn mỗi tháng 11:
- Bản số chẵn là LTS (Long Term Support), được hỗ trợ 3 năm. .NET 10 ra tháng 11/2025, được hỗ trợ tới tháng 11/2028.
- Bản số lẻ là STS (Standard Term Support), được hỗ trợ 2 năm.
Khóa học dùng .NET 10 và C# 14 đi kèm. Nếu bạn thấy tài liệu khác viết cho .NET 8 hay .NET 9, phần lớn code vẫn chạy được trên .NET 10. Khác biệt đáng kể sẽ được ghi chú ngay trong bài.
0.1.2 — Cài .NET 10 SDK
Chọn đúng mục theo hệ điều hành của bạn.
Windows. Mở PowerShell hoặc Windows Terminal rồi chạy:
winget install Microsoft.DotNet.SDK.10Không có winget? Tải bộ cài SDK 10.0.x, Windows x64 trên trang Download .NET 10.0 rồi chạy như cài phần mềm bình thường. Máy dùng chip ARM (Surface Pro X, Copilot+ PC) thì chọn bản Arm64.
macOS. Tải bộ cài .pkg trên Download .NET 10.0. Máy Mac chip M1, M2, M3, M4 chọn Arm64, máy Mac chip Intel chọn x64. Chọn sai kiến trúc là nguyên nhân số một khiến lệnh dotnet chạy chậm hoặc báo lỗi lạ.
Nếu đã dùng Homebrew:
brew install --cask dotnet-sdkLinux (Ubuntu 24.04 trở lên). .NET có sẵn trong kho phần mềm của Ubuntu:
sudo apt update
sudo apt install -y dotnet-sdk-10.0Bản phân phối khác hoặc Ubuntu cũ hơn: làm theo Install .NET on Linux. Trang này có hướng dẫn riêng cho Debian, Fedora, Arch và script dotnet-install.sh dùng được ở mọi nơi.
0.1.3 — Kiểm tra cài đặt
Đóng terminal cũ và mở terminal mới. Terminal mở trước khi cài không biết tới đường dẫn mới của dotnet. Sau đó chạy:
dotnet --versionKết quả phải bắt đầu bằng 10., ví dụ:
10.0.103Muốn xem tất cả SDK đang có trên máy:
dotnet --list-sdks9.0.310 [C:\Program Files\dotnet\sdk]
10.0.103 [C:\Program Files\dotnet\sdk]Máy có nhiều SDK là chuyện bình thường. Chúng nằm cạnh nhau, không ghi đè nhau. Lệnh dotnet mặc định dùng bản mới nhất, trừ khi thư mục project có file global.json chỉ định bản khác.
0.1.4 — Chọn trình soạn code
Cả ba lựa chọn dưới đây đều miễn phí cho sinh viên và dùng được cho toàn bộ khóa học.
| VS Code + C# Dev Kit | Visual Studio 2026 Community | JetBrains Rider | |
|---|---|---|---|
| Hệ điều hành | Windows, macOS, Linux | Chỉ Windows | Windows, macOS, Linux |
| Dung lượng | Nhẹ | Nặng (vài GB) | Trung bình |
| Miễn phí | Cho cá nhân, học tập, mã nguồn mở | Cho cá nhân, học tập, mã nguồn mở | Cho mục đích phi thương mại |
| Hợp với | Máy cấu hình vừa, quen VS Code | Máy Windows mạnh, muốn công cụ đầy đủ nhất | Máy mạnh, thích gợi ý code thông minh |
Không biết chọn gì thì dùng VS Code. Nó chạy trên mọi máy, và các phím tắt trong Module 0 viết theo VS Code.
VS Code. Cài VS Code, mở tab Extensions (Ctrl+Shift+X, trên macOS là Cmd+Shift+X), tìm và cài C# Dev Kit của Microsoft. Extension này tự kéo theo extension C# và .NET Install Tool. Cài thêm REST Client (tác giả Huachao Mao) để gửi request HTTP ở bài 0.5.
Visual Studio 2026 Community. Tải ở visualstudio.microsoft.com. Trong trình cài, tích workload ASP.NET and web development. Workload này đã kèm .NET 10 SDK.
Rider. Tải ở jetbrains.com/rider, chọn giấy phép Non-commercial use khi mở lần đầu.
0.1.5 — Lỗi thường gặp
dotnet không được nhận ra là lệnh. Gần như luôn do terminal được mở trước khi cài. Đóng hết cửa sổ terminal, kể cả terminal bên trong VS Code, rồi mở lại. Vẫn lỗi trên Windows thì kiểm tra biến môi trường PATH có C:\Program Files\dotnet\ chưa.
dotnet --version in ra 8.x hoặc 9.x dù đã cài 10. Có file global.json ở thư mục hiện tại hoặc thư mục cha đang ghim phiên bản cũ. Chạy lệnh ở một thư mục khác để kiểm tra, rồi sửa hoặc xóa file đó nếu không cần.
Tiếng Việt hiện thành ? hoặc ký tự lạ trong terminal Windows. Terminal cũ dùng bảng mã không phải UTF-8. Dùng Windows Terminal (có sẵn trên Windows 11), hoặc thêm hai dòng này ở đầu chương trình:
Console.OutputEncoding = System.Text.Encoding.UTF8;
Console.InputEncoding = System.Text.Encoding.UTF8;C# Dev Kit báo không tìm thấy SDK. Mở lại VS Code sau khi cài SDK. Nếu vẫn lỗi, chạy lệnh .NET: Install New .NET SDK từ Command Palette (Ctrl+Shift+P) để extension tự cài.
Danh sách rà soát trước khi sang bài 0.2
-
dotnet --versionin ra số bắt đầu bằng10. - Đã cài một trình soạn code và mở được một thư mục bất kỳ trong đó.
- Với VS Code: đã cài C# Dev Kit và REST Client.
- Đã cài Git (xem 3.2 — Cài đặt và cấu hình Git). Từ Module 3 bạn sẽ cần tới nó.
Bài tập áp dụng
Bài 1 — Cài đặt và báo cáo
Cài .NET 10 SDK và một trình soạn code. Chụp màn hình terminal chạy dotnet --version và dotnet --list-sdks, gửi vào kênh của nhóm học.
Tiêu chí hoàn thành: ảnh chụp cho thấy SDK 10.x, và bạn nói được máy mình đang dùng kiến trúc gì (x64 hay Arm64).
Gợi ý và lời giải — Bài 1
Lệnh dotnet --info in ra nhiều thông tin hơn, trong đó dòng RID cho biết hệ điều hành và kiến trúc, ví dụ win-x64, osx-arm64, linux-x64.
Nếu --list-sdks cho thấy SDK 10 nhưng --version vẫn ra bản cũ, xem lại mục "Lỗi thường gặp" về global.json.
Bài 2 — Hai SDK cùng tồn tại
Tạo một thư mục trống, bên trong tạo file global.json có nội dung:
{
"sdk": {
"version": "8.0.100",
"rollForward": "latestFeature"
}
}Chạy dotnet --version trong thư mục đó. Sau đó xóa file và chạy lại.
Tiêu chí hoàn thành: bạn giải thích được vì sao hai lần chạy cho kết quả khác nhau, hoặc vì sao lần đầu báo lỗi.
Gợi ý và lời giải — Bài 2
global.json ghim phiên bản SDK cho thư mục đó và mọi thư mục con. Với rollForward: latestFeature, dotnet tìm bản 8.0 mới nhất trên máy. Nếu máy không có SDK 8 nào, lệnh báo lỗi kèm gợi ý tải đúng bản cần.
Xóa file thì dotnet quay về dùng bản mới nhất, tức là 10.
Trong thực tế, các team ghim phiên bản bằng global.json để máy của mọi người và máy build CI dùng cùng một SDK. Khi mở một project cũ mà gặp lỗi "SDK not found", file này là chỗ đầu tiên cần xem.
Tự kiểm tra
Máy học lập trình cần cài .NET SDK hay .NET Runtime?
Cài SDK. SDK chứa công cụ để tạo, biên dịch, chạy và test project, và đã bao gồm runtime. Runtime riêng chỉ dành cho máy chủ chỉ chạy ứng dụng đã biên dịch sẵn.
Vì sao khóa học chọn .NET 10 mà không phải .NET 9?
.NET 10 là bản LTS, được hỗ trợ 3 năm (tới 11/2028). .NET 9 là bản STS, chỉ được hỗ trợ 2 năm. Học trên bản LTS thì kiến thức và project dùng được lâu hơn.
Cài xong SDK nhưng gõ dotnet báo không nhận ra lệnh, việc đầu tiên cần làm là gì?
Đóng terminal và mở lại, kể cả terminal tích hợp trong trình soạn code. Terminal mở trước khi cài không có đường dẫn mới trong biến PATH.
Kết luận
- Máy học chỉ cần .NET SDK. SDK đã kèm runtime.
- Dùng .NET 10. Đây là bản LTS hiện hành.
- Mở lại terminal sau khi cài. Bước này giải quyết phần lớn lỗi "không nhận ra lệnh".
Tham khảo
- Download .NET 10.0
- Install .NET on Windows, Linux, and macOS
- .NET support policy — lịch LTS và STS
- Select the .NET version to use (global.json)
- Getting started with C# in VS Code
Điều hướng
- Bài trước: Không có (bài mở đầu khóa học).
- Bài tiếp theo: 0.2 — Chương trình C# đầu tiên
- Về module: Trang mục lục