Skip to content

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 --version phải in ra một số bắt đầu bằng 10..

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: dotnet khô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 SDKTạo project, biên dịch, chạy, test, đóng góiNgười viết code: bạn
.NET RuntimeChỉ chạy ứng dụng đã biên dịchMá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:

powershell
winget install Microsoft.DotNet.SDK.10

Khô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:

bash
brew install --cask dotnet-sdk

Linux (Ubuntu 24.04 trở lên). .NET có sẵn trong kho phần mềm của Ubuntu:

bash
sudo apt update
sudo apt install -y dotnet-sdk-10.0

Bả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:

bash
dotnet --version

Kết quả phải bắt đầu bằng 10., ví dụ:

text
10.0.103

Muốn xem tất cả SDK đang có trên máy:

bash
dotnet --list-sdks
text
9.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 KitVisual Studio 2026 CommunityJetBrains Rider
Hệ điều hànhWindows, macOS, LinuxChỉ WindowsWindows, macOS, Linux
Dung lượngNhẹ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ớiMáy cấu hình vừa, quen VS CodeMáy Windows mạnh, muốn công cụ đầy đủ nhấtMá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:

csharp
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 --version in ra số bắt đầu bằng 10.
  • Đã 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:

json
{
  "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 ​

  1. Máy học chỉ cần .NET SDK. SDK đã kèm runtime.
  2. Dùng .NET 10. Đây là bản LTS hiện hành.
  3. 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 ​

Điều hướng ​

Phát hành theo giấy phép MIT.