C# – Mô hình 3 lớp đơn giản

C# – Mô hình 3 lớp đơn giản

Đối với lập trình hiện đại, mọi thứ đều đi nhiều lớp, tương tự như C#, cũng có cả mô hình 3 lớp để chúng ta thực thi áp dụng.

Ở C# chúng ta gọi là mô hình 3 lớp aka 3 Layers. Nó khá là nổi tiếng với sinh viên VN đang học C# (một số trường sẽ là Lập trình .NET, lập trình C#, lập trình ứng dụng)

Mục lục:

  1. Giới thiệu về mô hình 3 lớp.
  2. Cách tạo project và liên kết 3 lớp.
  3. Xây dựng DTO
  4. Xây dựng Data Access
  5. Xây dựng Business (BUS)
  6. Xây dựng GUI
  7. Lời kết và Source Code mẫu

Cấu tạo của C# – Mô hình 3 lớp đơn giản:

Gồm 3 lớp, đó là:

  • GUI Layer: Lớp này là lớp hiển thị giao diện và các chức năng để người dùng cuối sử dụng.
  • Business (BUS) Layer: Đây là lớp nhận các yêu cầu từ lớp GUI và truy xuất lên lớp Data để lấy thông tin và trả về GUI.
  • Data Access Layer: Lớp này là lớp để truy xuất với CSDL, chỉ duy nhất lớp này được làm việc với database.
  • (Ko cần thiết) DTO Layer: Lớp này chỉ là phụ thôi, đây là lớp định nghĩa các table trong database của bạn, định nghĩa cột của nó cũng như để ta gán data khi query lấy dữ liệu. Các bạn có thể hiểu nôm na là 1 dạng cơ bản ORM (Object Relation Mapping).

Đây là cách hoạt động của mô hình 3 lớp:

C# - Mô hình 3 lớp đơn giản

Nhìn sơ qua thì nó khá là giống MVC bên web nhỉ? Business như là Controller :D, GUI là View và Data Access là Model.

Lợi thế của mô hình 3 lớp:

  • Phân loại rõ ràng các lớp có các nhiệm vụ khác nhau. Từ đó ta có thể quản lý và maintain project tốt hơn.
  • Dễ dàng phân loại các hành động tại Business.
  • Dễ dàng phân loại các hàm truy xuất tại Database, phân loại hàm theo table,…
  • Ứng dụng được cho các project lớn ở bên ngoài.

Lưu ý khi xây dựng mô hình 3 lớp:

  • Cần một solution riêng cho project.
  • Cần 3 project khác nhau để làm nên 3 lớp, tên Project đặt như sau:
    • Lớp GUI: GUI_* (VD: GUI_QuanLy)
    • Lớp Business: BUS_* (VD: BUS_QuanLy)
    • Lớp Data Access: DAL_* (VD: DAL_QuanLy)
    • Lớp DTO: DTO_* (VD: DTO_QuanLy)
  • Bên trong 3 lớp như trên các file đặt cần có các tiền tố như sau:
    Ví dụ mình có một table tên là ThanhVien

    • Lớp GUI: GUI_* (VD: GUI_ThanhVien)
    • Lớp Business: BUS_* (VD: GUI_ThanhVien)
    • Lớp Data Access: DAL_* (VD: GUI_ThanhVien)
    • Lớp DTO: DTO_* (VD: DTO_ThanhVien)

Như các bạn đã thấy tên Table liên quan mật thiết tới cách đặt tên file nhé 😀

Qua trang 2, mình sẽ hướng dẫn các bạn tạo và liên kết 3 project lại với nhau nhé 😀

facebook
Seth Phát

Seth Phát

Mình là Phát - biệt danh Seth Phát. Hiện đang là một Sr. Full-Stack Engineer. Mình là một người yêu thích và đam mê lập trình và hiện tại đang theo về phần Web là chủ yếu. Mạnh Back-end và khá Front-end, vẫn đang theo đều cả 2 :v. Còn gì bằng khi được làm những thứ mà mình yêu thích, đam mê ;)

Bình luận qua Facebook