C# Ứng dụng
Khóa học "C# Ứng dụng" giúp bạn chuyển từ những bài tập chạy trên Console sang các chương trình biết xử lý dữ liệu thực tế. Chương trình sẽ quản lý dữ liệu bằng Collections, không bị dừng đột ngột khi gặp lỗi, đọc và ghi được file, và lưu lại dữ liệu sau khi tắt.
Bạn sẽ học được gì?
Collections: dùng
List<T>vàDictionary<K, V>thay cho mảng cố định, thêm, xóa, tìm kiếm, sắp xếp dữ liệu, và chọn loại collection phù hợp cho từng bài toán.Xử lý ngoại lệ cơ bản: hiểu exception là gì, dùng
try-catch-finally, bắt và xử lý nhiều loại exception khác nhau.Xử lý ngoại lệ nâng cao: thứ tự các khối
catch, tự tạo exception riêng (custom exception), kiểm tra dữ liệu đầu vào, giải phóng tài nguyên đúng cách, và các thói quen tốt khi xử lý lỗi.Đọc và ghi file văn bản: làm việc với file và stream, quản lý đường dẫn và thư mục, xử lý lỗi khi thao tác với file.
Dữ liệu có cấu trúc (CSV): đọc và ghi file CSV, xử lý các trường hợp phức tạp, và áp dụng vào bài toán thực tế.
Lưu trữ đối tượng với Serialization: chuyển đối tượng C# thành JSON bằng
System.Text.Json, làm quen với XML và Binary Serialization, cùng một số kỹ thuật nâng cao.
Khóa học phù hợp với ai?
Khóa học dành cho những bạn đã nắm C# cơ bản và lập trình hướng đối tượng (lớp, đối tượng, kế thừa), và muốn viết chương trình có thể dùng thật: quản lý danh sách, nhập và xuất dữ liệu, chạy ổn định khi gặp lỗi. Đây cũng là bước chuẩn bị trước khi học cơ sở dữ liệu, ASP.NET hay phát triển ứng dụng desktop với .NET.
Khóa học gồm 6 module với gần 200 hoạt động, kết hợp bài đọc, minh họa trực quan, bài thực hành viết code và bài kiểm tra sau từng phần.
Nội dung khóa học
Cấu trúc dữ liệu nâng cao: Collections
4 bài học · 26 hoạt động-
Giới thiệu Collections trong C#
-
Khái niệm và Khởi tạo List<T>
-
Thực hành Khởi tạo List<T>
-
Thêm, Truy cập và Xóa phần tử trong List<T>
-
Bài tập: Quản lý Danh sách Học sinh
-
Kiểm tra kiến thức cơ bản về List<T>
-
Tìm kiếm phần tử trong List<T>
-
Thực hành tìm kiếm trong List<T>
-
Sắp xếp và Đảo ngược List<T>
-
Sắp xếp danh sách
-
Duyệt và Chuyển đổi List<T>
-
Bài tập: Xây dựng ứng dụng quản lý danh sách sản phẩm
-
Kiểm tra thao tác nâng cao với List<T>
-
Giới thiệu Dictionary<K,V> và tầm quan trọng của Key-Value Pair
-
Thực hành Khởi tạo Dictionary<K,V>
-
Thêm, Truy cập và Cập nhật phần tử trong Dictionary<K,V>
-
Bài tập: Thao tác cơ bản với Dictionary<K,V>
-
Kiểm tra sự tồn tại và Xóa phần tử trong Dictionary<K,V>
-
Kiểm tra kiến thức cơ bản về Dictionary<K,V>
-
Duyệt qua Dictionary<K,V>
-
Thực hành Duyệt Dictionary
-
So sánh List<T> và Dictionary<K,V>: Khi nào sử dụng cái nào?
-
Phân tích mã nguồn sử dụng Collections
-
Xây dựng ứng dụng quản lý từ điển đơn giản
-
Lựa chọn cấu trúc dữ liệu phù hợp
-
Tóm tắt và Mẹo sử dụng Collections hiệu quả
Xử lý lỗi và Ngoại lệ (Exception Handling) Cơ bản
4 bài học · 21 hoạt động-
Exception là gì?
-
Tại sao cần xử lý lỗi?
-
Các loại Exception phổ biến trong C#
-
Fix chương trình gặp lỗi runtime
-
Kiểm tra kiến thức cơ bản về Exception
-
Giới thiệu về khối try-catch
-
Thực hành với try-catch đơn giản
-
Đối tượng Exception và các thuộc tính
-
Hiển thị thông tin Exception chi tiết
-
Kiểm tra cấu trúc và hoạt động của try-catch
-
Bài tập: Xây dựng máy tính chia số an toàn
-
Bắt nhiều loại Exception trong một khối try
-
Thực hành bắt nhiều Exception
-
Thứ tự bắt Exception và Exception chung
-
Bài tập: Kiểm tra thứ tự bắt Exception
-
Kiểm tra kiến thức về bắt nhiều Exception và thứ tự
-
Khối finally là gì và khi nào sử dụng
-
Sử dụng finally để đảm bảo tài nguyên được giải phóng
-
Tóm tắt về try-catch-finally
-
Thảo luận về quản lý tài nguyên và finally
-
Kiểm tra kiến thức về khối finally
Xử lý lỗi và Ngoại lệ (Exception Handling) Nâng cao
5 bài học · 32 hoạt động-
Giới thiệu về Xử lý Đa Ngoại lệ
-
Cấu trúc try-catch với nhiều catch block
-
Minh họa thứ tự catch block
-
Phân tích ví dụ try-catch phức tạp
-
Thực hành xử lý nhiều ngoại lệ
-
Kiểm tra kiến thức về thứ tự catch
-
Sửa lỗi trong đoạn code có nhiều ngoại lệ
-
Vai trò của khối finally
-
finally trong thực tế: Đóng kết nối, giải phóng tài nguyên
-
Sử dụng finally để đóng file
-
Quan sát hành vi của finally với và không có ngoại lệ
-
using statement như một cách thay thế cho finally (cho IDisposable)
-
Hiểu về finally và using
-
Bài tập: Quản lý tài nguyên hệ thống an toàn với try-catch-finally
-
Tại sao cần ngoại lệ tùy chỉnh?
-
Hướng dẫn tạo CustomException
-
Thực hành: Triển khai một CustomException đơn giản
-
Phân tích ví dụ CustomException trong ứng dụng thực tế
-
Câu hỏi về thiết kế và sử dụng ngoại lệ tùy chỉnh
-
Tầm quan trọng của xác thực dữ liệu đầu vào
-
Các kỹ thuật xác thực dữ liệu: Kiểm tra null, rỗng, định dạng, phạm vi
-
Thực hành: Viết hàm xác thực số nguyên
-
Bài tập: Xây dựng Bộ xác thực Thông tin Người dùng (User Registration Validator)
-
Các thư viện hỗ trợ xác thực dữ liệu
-
Kiểm tra kiến thức về xác thực dữ liệu
-
Thử nghiệm các trường hợp dữ liệu đầu vào hợp lệ/không hợp lệ
-
Các nguyên tắc vàng trong xử lý ngoại lệ
-
Xây dựng một module xử lý dữ liệu với xác thực và try-catch-finally
-
Đánh giá code mẫu về xử lý lỗi và xác thực
-
Thảo luận về chiến lược xử lý lỗi trong dự án thực tế
-
Bài tập: Xây dựng Module Xử lý Đơn hàng An toàn
-
Tổng hợp kiến thức về xử lý lỗi nâng cao
Đọc và Ghi File Văn bản
5 bài học · 34 hoạt động-
Vai trò của File I/O trong ứng dụng
-
Khái niệm Stream và các loại Stream
-
Tổng quan về các lớp File I/O trong C#
-
Ví dụ đơn giản về việc mở và đóng file
-
Thực hành mở và đóng file
-
Kiến thức cơ bản về File I/O
-
Giới thiệu lớp StreamReader
-
Đọc từng dòng với ReadLine()
-
Đọc toàn bộ nội dung với ReadToEnd() và các phương thức đọc khác
-
Đọc nội dung file và hiển thị
-
Các phương thức đọc file
-
Đọc file và xử lý dữ liệu đơn giản
-
Thực hành: Đọc file log và lọc thông tin
-
Giới thiệu lớp StreamWriter
-
Ghi từng dòng và thêm mới nội dung
-
Thực hành ghi dữ liệu vào file mới
-
Thêm dữ liệu vào cuối file
-
Các phương thức ghi file
-
Thực hành tạo file cấu hình đơn giản
-
Ghi kết quả tính toán vào file
-
Lớp Path: Thao tác với đường dẫn file
-
Lớp Directory: Quản lý thư mục
-
Các phương thức hữu ích của lớp File
-
Thực hành: Tạo và xóa thư mục
-
Kiểm tra sự tồn tại của file/thư mục
-
Quản lý đường dẫn và thư mục
-
Bài tập: Quản lý Thư mục và File Tự động
-
Các loại ngoại lệ phổ biến trong File I/O
-
Sử dụng khối try-catch-finally
-
Câu lệnh 'using' để quản lý tài nguyên (IDisposable)
-
Xử lý lỗi khi file không tồn tại
-
Thực hành: Viết chương trình đọc/ghi file có xử lý lỗi đầy đủ
-
Viết code an toàn với 'using'
-
Xử lý ngoại lệ trong File I/O
Làm việc với Dữ liệu có Cấu trúc (CSV)
4 bài học · 25 hoạt động-
CSV là gì và tại sao lại quan trọng?
-
Cấu trúc cơ bản của File CSV
-
Ví dụ minh họa cấu trúc CSV
-
Thực hành: Phân tích cấu trúc file CSV
-
Kiểm tra kiến thức về CSV cơ bản
-
Các bước cơ bản để đọc File CSV trong C#
-
Đọc file CSV đơn giản (không có dấu nháy kép)
-
Thực hành: Đọc CSV không dấu nháy kép
-
Xử lý các trường có dấu nháy kép và dấu phân cách đặc biệt
-
Phân tích CSV có dấu nháy kép
-
Thực hành: Đọc CSV với dấu nháy kép và chuyển đổi dữ liệu
-
Kiểm tra kỹ năng đọc và phân tích CSV
-
Các bước cơ bản để ghi File CSV trong C#
-
Ghi file CSV đơn giản
-
Thực hành: Ghi CSV không dấu nháy kép
-
Quy tắc xử lý dấu nháy kép khi ghi CSV
-
Thực hành: Xây dựng dòng CSV từ dữ liệu
-
Bài tập: Xuất dữ liệu sản phẩm ra định dạng CSV
-
Kiểm tra kiến thức ghi file CSV
-
Xử lý các trường hợp đặc biệt và lỗi trong CSV
-
Xây dựng một lớp CsvHelper đơn giản
-
Viết hàm đọc CSV linh hoạt
-
Bài tập: Xây dựng Công cụ Quản lý Dữ liệu Sản phẩm CSV
-
Thảo luận về ưu nhược điểm của CSV so với các định dạng khác
-
Tổng kết kiến thức xử lý CSV
Lưu trữ Đối tượng với Serialization
5 bài học · 29 hoạt động-
Khái niệm Serialization là gì?
-
Tại sao cần Serialization?
-
Các loại Serialization phổ biến trong C#
-
Cấu trúc lớp cần thiết cho Serialization
-
Kiểm tra kiến thức cơ bản về Serialization
-
Giới thiệu Binary Serialization
-
Attribut `[Serializable]` và `BinaryFormatter`
-
Thực hành: Viết chương trình Serialization đối tượng đơn giản
-
Thực hành Deserialize đối tượng từ file
-
Bài tập: Xây dựng hệ thống lưu trữ thông tin sản phẩm
-
Kiểm tra Binary Serialization
-
Giới thiệu XML Serialization
-
Bài thực hành: Sử dụng XmlSerializer để Serialize và Deserialize
-
Quy trình Thực thi Serialization và Deserialization với XmlSerializer
-
Xử lý các thuộc tính và phần tử trong XML
-
Bài tập: Xây dựng Hệ thống Lưu trữ Cấu hình Người dùng bằng XML
-
Kiểm tra XML Serialization
-
Giới thiệu JSON Serialization trong C#
-
Sử dụng `System.Text.Json` cơ bản
-
Thực hành: Serialize đối tượng thành chuỗi JSON
-
Deserialize chuỗi JSON thành đối tượng
-
Kiểm tra JSON Serialization cơ bản
-
Bài tập: Xây dựng Hệ thống Quản lý Danh bạ Người dùng
-
Xử lý các trường `[NonSerialized]` và `[JsonIgnore]`
-
Custom Serialization với interface `ISerializable`
-
Serialization và Versioning của đối tượng
-
Thực hành: Viết một Custom Serializer đơn giản
-
Kiểm tra kiến thức nâng cao về Serialization
-
Xây dựng Lớp Cấu hình Ứng dụng với Tính năng Lưu/Tải tùy chỉnh