Module 4 - C# Core
Tóm tắt: OOP trong C#: class, interface, kế thừa, đa hình, encapsulation, record, pattern matching — thiết kế domain model cho hệ thống CRM.
Nội dung module
- 4.1 - Class và Object
- 4.2 - Encapsulation
- 4.3 - Inheritance và Polymorphism
- 4.4 - Interface
- 4.5 - Abstraction
- 4.6 - Access Modifiers
- 4.7 - Records và Value Objects (C# 9+)
- 4.8 - Pattern Matching (C# 8+)
- 4.9 - Những lỗi thường gặp
- 4.10 - C# hiện đại cho class: required, primary constructor, IDisposable
- 4.11 - Case study: mô hình hoá sản phẩm bằng composition
- 4.12 - Bug so sánh đối tượng: Equals, GetHashCode và record
- 4.13 - Ôn tập và đánh giá Module 4
Quy ước trong module
- Định danh trong code bằng tiếng Anh (
Customer,CalculateShippingFee,OwnerId), comment và chuỗi hiển thị bằng tiếng Việt. - Mô hình CRM dùng chung.
Customerđược tạo bằngnew Customer(name, email)và tự kiểm tra dữ liệu trong constructor (bài 4.1); từ bài 4.7 email được nâng cấp thành value objectEmail. Trạng thái đơn hàng dùngenum OrderStatus { Draft, Confirmed, Shipped, Delivered, Cancelled }, trạng thái lead dùngenum LeadStatus. Lead chốt thành khách hàng bằng cách tạo mộtCustomermới, không phải đổi kiểu (bài 4.13). - Code chạy được trong project console hoặc xUnit. Ví dụ có dùng ASP.NET Core, dependency injection hay EF Core được đánh dấu "Xem trước" kèm link tới module dạy kỹ; chỉ cần đọc hiểu.