Bài tập thực hành môn Lập trình Hệ thống (System Programming).
- .NET 8.0 SDK trở lên
- Visual Studio 2022 hoặc Visual Studio Code
- Mở file
SystemProgramming.slnbằng Visual Studio - Trong Solution Explorer, các project được sắp xếp theo từng Tutorial
- Click chuột phải vào project cần chạy -> Set as Startup Project
- Nhấn F5 hoặc Ctrl+F5 để chạy
# Di chuyển vào thư mục project
cd Tutorial1/Question1
# Chạy project
dotnet runSystemProgramming.sln # File solution chính
│
├── Tutorial1/ # Bài 1
│ └── Question1/
│
├── Tutorial2/ # Bài 2
│ ├── Question1/
│ ├── Question2/
│ └── Question5/
│
├── Tutorial3/ # Bài 3 - Threading
│ ├── Question1/
│ ├── Question2/
│ ├── Question3/
│ ├── Question4/
│ └── Question5/
│
├── Tutorial4/ # Bài 4 - Synchronization
│ ├── Question1/
│ ├── Question2/
│ ├── Question3/
│ ├── Question4/
│ └── Question5/
│
├── Tutorial5/ # Bài 5 - IPC (Inter-Process Communication)
│ ├── Question1_ProcessA/ # Chạy ProcessA trước
│ ├── Question1_ProcessB/ # Sau đó chạy ProcessB
│ ├── Question2_Server/ # Chạy Server trước
│ ├── Question2_Client/ # Sau đó chạy Client
│ ├── Question3_Server/
│ ├── Question3_Client/
│ ├── Question4_Server/
│ ├── Question4_Client/
│ ├── Question5_Server/
│ └── Question5_Client/
│
└── Tutorial6/ # Bài 6 - Windows Services
├── Question1/ # Worker Service
├── Question2/
└── Question3/
Các bài trong Tutorial 5 yêu cầu chạy 2 ứng dụng đồng thời:
-
Chạy Server trước:
- Click chuột phải vào project Server -> Set as Startup Project
- Nhấn F5 để chạy
- Để cửa sổ console Server mở
-
Chạy Client:
- Click chuột phải vào project Client -> Debug -> Start New Instance
- Hoặc mở terminal mới và chạy:
dotnet runtrong thư mục Client
- Click chuột phải vào Solution -> Properties
- Chọn Multiple startup projects
- Đặt Action = Start cho cả Server và Client
- Server phải được đặt trước Client trong danh sách
Các bài trong Tutorial 6 là Worker Services (Background Services):
cd Tutorial6/Question1
dotnet runĐể cài đặt như Windows Service thật sự:
dotnet publish -c Release
sc create "MyService" binPath="đường_dẫn_đến_exe"
sc start "MyService"