Kỹ thuật N-Tier architecture là một trong các mẫu kỹ thuật phổ biến nhất trong ngành công nghiệp phần mềm. Trong bài viết này, chúng ta sẽ tìm hiểu kỹ thuật N-Tier Architecture trong ASP.Net.
Mình sẽ xây dựng mô hình một App đơn giản (CRUD) nhưng áp dụng N-Tier cùng rất nhiều các kỹ thuật, component với các công nghệ .NET cung cấp. Mục đích chỉ là để từ đó chúng ta đi vào tìm hiểu chúng, trong thực tế, việc có càng nhiều các component, class khiến hệ thống càng trở nên phức tạp và phình lớn, tốn tiền hơn (vi phạm nguyên lý KISS). Tuy nhiên, mỗi thành phần này lại đem lại những lợi ích khác nhau, vì vậy việc hiểu chúng sẽ giúp bạn có cái nhìn tổng thể để lựa chọn được cái thích hợp, sử dụng trong các dự án thực tế mà bạn làm việc.
Bài toán:
Hình ảnh bên cạnh là thiết kế tổng thể kiến trúc của một hệ thống dạng CMS (CRUD dữ liệu), cụ thể ở đây mình lấy ví dụ: 2 thực thể Department & Employee (quan hệ 1-M).
Database Schema:
Department(ID, DepartmentName, DepartmentLocation).
Employee(ID, EmployeeName, EmployeeSalary, EmployeeCity)
Tầng Data:
Sử dụng ORM Entity Framework(Code First).
Xây dựng các lớp Model – Entities, áp dụng Repository Partern, Unit of Work partern.
Tầng Business Logic:
Xây dựng Service, xử dụng kỹ thuật tạo DTO Model và mapping với sự hỗ trợ của AutoMapper.
Tầng Presentation/UI:
Sử dụng MVC5 WebApp hoặc WebAPI. Sử dụng thêm DI Container hỗ trợ cài đặt, áp dụng DI trong project này.
Một số patterns và principals:
Repository Pattern
Unit of Work pattern
Inversion of control and Dependency injection
Data Tranfer Object (DTO)
MVC
=====================
KISS : Keep it simple, stupid
DRY: Don’t repeat yourself
YAGNI : You aren’t gonna need it