TẠO CẤU TRÚC DỰ ÁN SỬ DỤNG N-LAYER

Hướng dẫn chi tiết xây dựng kiến trúc nhiều tầng

🏗️ Cấu trúc N-Layer Architecture

[Hình ảnh cấu trúc N-Layer - media/image1.png]

+ Nhớ tạo mỗi tầng là 1 Project.

+ Nhớ Add Reference Project theo hình

🔧 THAO TÁC Ở TẦNG BO

Install Library: NuGet Package

[Hình ảnh cài đặt NuGet Package - media/image2.png]

Mở NuGet Console

[Hình ảnh mở NuGet Console - media/image3.png]

Set Startup Project

[Hình ảnh Set Startup Project - media/image4.png]
[Hình ảnh Run Scaffold - media/image5.png]

Run Scaffold

🎨 THIẾT KẾ GIAO DIỆN

Đặt tên các input theo đúng cú pháp C#

Thiết kế màn hình đăng nhập (chú ý màu sắc)

[Hình ảnh màn hình đăng nhập - media/image6.png]

Thiết kế màn hình quản lý

[Hình ảnh màn hình quản lý - media/image7.png]

💾 XỬ LÝ TẦNG DAO

Nguyên tắc tầng DAO

Sử dụng Singleton và new DBContext ở tầng này.

[Hình ảnh xử lý tầng DAO - media/image8.png]

Kết nối và thao tác CRUD ở tầng này

📚 XỬ LÝ TẦNG REPOSITORY

Định nghĩa Interface (nhớ chỉnh internal → public)

[Hình ảnh định nghĩa Interface - media/image9.png]

Tạo Class Implements Interface (Tầng Repository gọi tầng DAO)

[Hình ảnh tạo Class Implements Interface - media/image10.png]

🖥️ XỬ LÝ CODE TẦNG GIAO DIỆN

Cơ chế truyền dữ liệu từ LoginUI sang Management UI

(thông qua hàm khởi tạo để phân quyền)

[Hình ảnh cơ chế truyền dữ liệu - media/image11.png]

Tiến hành phân quyền cho từng nút theo yêu cầu đề bài

[Hình ảnh phân quyền - media/image12.png]

Load dữ liệu lên DataGridView và ComboBox trong C#

Vì tính năng này sử dụng nhiều lần nên cần tách 1 hàm để lấy dữ liệu

[Hình ảnh load dữ liệu - media/image13.png]

Xử lý sự kiện khi nhấn 1 dòng trên DataGridView

Hiển thị dữ liệu lên các input

[Hình ảnh xử lý sự kiện DataGridView - media/image14.png]

Chú ý dynamic row

[Hình ảnh dynamic row - media/image15.png]

Bắt Validation cho các input

[Hình ảnh validation input - media/image16.png]

Sử dụng hàm Validation trước khi thao tác CRUD

[Hình ảnh sử dụng validation - media/image17.png]

🔗 XỬ LÝ KẾT NỐI TRONG CƠ SỞ DỮ LIỆU

Tạo 1 file JSON với đúng tên: appsettings.json

Cấu hình để copy appsettings.json khi build

[Hình ảnh cấu hình copy file - media/image18.png]

Đọc appsettings.json từ DBContext

[Hình ảnh đọc appsettings.json - media/image19.png]