Business logic and data access layer là gì năm 2024

-Mô hình 3 lớp hay còn được gọi là mô hình Three Layer(3-Layer), mô hình này ra đời nhằm phân chia các thành phần trong hệ thống, các thành phần cùng chức năng sẽ được nhóm lại với nhau và phân chia công việc cho từng nhóm để dữ liệu không bị chồng chéo và nhất quán.

-Mô hình này phát huy hiệu quả nhất khi bạn xây dựng một hệ thống lớn, việc quản lý code và xử lý dữ liệu lỗi dễ dàng hơn.

2. Các thành phần của mô hình 3 lớp

Mô hình 3-layer gồm có 3 phần chính :

  • Presentation Layer (GUI) : Lớp này có nhiệm vụ chính giao tiếp với người dùng. Nó gồm các thành phần giao diện ( win form, web form,...) và thực hiện các công việc như nhập liệu, hiển thị dữ liêu, kiểm tra tính đúng đắn dữ liệu trước khi gọi lớp Business Logic Layer (BLL).
  • Business Logic Layer (BLL) : Layer này phân ra 2 thành nhiệm vụ :

 Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI layer, xử lý chính nguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer và lưu xuống hệ quản trị CSDL.  Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực hiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về Presentation Layer.

  • Data Access Layer (DAL) : Lớp này có chức năng giao tiếp với hệ quản trị CSDL như thực hiện các công việc liên quan đến lưu trữ và truy vấn dữ liệu ( tìm kiếm, thêm, xóa, sửa,...).

Three-layer architecture

 Bussiness Entities : thường được sử dụng như Data Transfer Objects ( DTO ). Bạn có thể sử dụng để truyền dữ liệu giữa các lớp (Presentation và Data Layer). Chúng thường là cấu trúc dữ liệu ( DataSets, XML,... ) hay các lớp đối tượng đã được tùy chỉnh.

2. Data Layer (DAL) :

DAL có chức năng chính là ghi lại các dữ liệu quan trọng. Vì thế mô hình có 2 phần là:

 Data Access Logic Components : chịu trách nhiệm chính lưu trữ và truy xuất dữ liệu từ các nguồn dữ liệu (Data Sources) như XML, file system,... Hơn nữa còn tạo thuận lợi cho việc dễ cấu hình và bảo trì.  Service Agents : giúp bạn gọi và tương tác với các dịch vụ từ bên ngoài một cách dễ dàng và đơn giản.

Kinh nghiêm khi xây dựng mô hình 3 lớp là bạn cần thành lậ p một solution riêng cho ̣ project. Trong đó có 3 project khác nhau để tạo 3 lớp. Thực hiên đặ t tên Project cần có các̣ tiền tố theo mẫu Tên lớp_Tên têp (Ví dụ: GUI_Quản lý).̣

Tuy nhiên, để đảm bảo sự thống nhất bạn nên đăt tên theo nguyên tắc. Dưới đây là mộ t số ̣ cách đặt tên cho các thành phần của 3 lớp, Ví dụ:

 Môt là, đặ t lần lượt tên GUI - BUS - DAL.̣  Hai là, sử dụng tên có chứa tiền tố GUI - BLL - DAL - DTO.  Ba là, áp dụng tên có chứa GUI - BLL - DAL

3. Cách hoạt động

1 tiến trình giao tiếp từ GUI đến Data Acess Layer:

  • Người sử dụng tác động lên GUI yêu cầu hiển thị thông tin lên màn hình. Tại đây GUI sẽ kiểm tra yêu cầu của người dùng nhập có hợp lệ hay không, nếu không hợp lệ sẽ thông báo cho người dùng.
  • Ngược lại yêu cầu sẽ được gởi trực tiếp đến BLL hoặc thông qua lớp object DTO hỗ trợ luân chuyển , tại đây BLL sẽ xử lý nghiệp vụ về yêu cầu của người dùng, nếu yêu cầu không hợp lệ hoặc tự xử lý yêu cầu không cần phải truy vấn thì BLL sẽ gởi thông tin về GUI và GUI sẽ hiển thị kết quả cho người dùng.
  • Trong trường hợp BLL cần thao tác trên dữ liệu từ CSDL thì BLL sẽ gởi yêu cầu đến trực tiếp đến DAL hoặc thông qua DTO , nhờ DAL giao tiếp với hệ quản trị CSDL lấy hoặc thêm, xóa, sửa dữ liệu.
  • DAL sẽ giao tiếp hệ quản trị CSDL với các truy vấn (sử dụng công nghệ ADO, LINQ to SQL, NHibernate, Entity Framework)

Tại đây tiếp tục thực hiện tiến trình thứ 2 được biểu diễn bằng các mũi tên màu xanh:

4. Ưu điểm và nhược điểm của mô hình 3 lớp

Đây là mô hình được các nhà lâp trình tin học tin dùng bởi sở hữu nhiều ưu điểm như:̣

Việc phân chia thành từng lớp với các nhiệm vụ khác nhau sẽ mang lại hiêu quả quản lý ̣ tường minh. Khi chúng đảm nhận các chức năng riêng biệt khác nhau sẽ giảm sự kết dính.

Những người có kinh nghiêm lậ p trình thường áp dụng trong kiểm soát giao diện, xử lý, ̣ truy vấn,... Hạn chế tối đa viêc để tất cả lại một chỗ nhằm quản lý và maintain project tối ̣ ưu hơn.

Dễ dàng phân loại các hành động tại Business sẽ góp công lớn trong công tác bảo trì. Khi được phân chia thành từng nhóm, lâp trình viên có thể nhanh chóng thay đổi khi cần bảo ̣ trì một thành phần của hệ thống.

Với mô hình 3 lớp , thao tác thay đổi dữ liêu có thể được cô lập trong 1 lớp hoặc chỉ ảnh ̣ hưởng đến lớp gần nhất. Điều đó đảm bảo không ảnh hưởng đến cả chương trình, tiết kiêm thời gian công sức.̣

Thao tác phân loại các hàm truy xuất tại Database hay phân loại hàm theo table,... Chúng sẽ trở nên dễ dàng vì chúng ta đã có chuẩn để tuân theo.

Nhờ có mô hình thì viêc muốn thêm một chức năng nào đó sẽ dễ dàng hơn.̣

Khi có sự thay đổi giữa hai môi trường từ Winform sang Webform. Và bạn mong muốn tái sử dụng thì chỉ việc thay đổi lớp GUI.

Nếu mọi người đều tuân theo một quy chuẩn đã được định sẵn, thì khi bàn giao công viêc ̣ trở nê dễ dàng và tiết kiêm thời gian. Các thành viên có thể tương tác thuận tiệṇ

Mô hình quản lý 3 lớp sẽ hỗ trợ phân phối nhiệm vụ, khối lượng công việc rõ ràng. Đồng thời, nó sẽ giúp các lập trình viên kiểm soát công tác.

Với những ưu điểm tuyêt vời, mô hình cho phéo áp dụng được cho nhiều project lớn ở bêṇ ngoài.

Nhược điểm:

-Cần nhiều thời gian và công sức để tìm hiểu nếu muốn áp dụng, tổ chức file một cách đúng đắn.

-Không thích hợp việc phát triển các ứng dụng nhỏ

-Dễ bị phân tán

Phân loại cho người dùng

5. So sánh giữa mô hình 3 lớp và MVC

 Điểm giống nhau:

o Cả hai đều là mô hình kiến trúc áp dụng trong lập trình được tách thành 3 thành phần. o Tách biệt sự phụ thuộc giữa ngôn ngữ lập trình, môi trường phát triển, xử lý logic. o Các thành phần ở mỗi mô hình có nhiều điểm tương đồng như Presentation Layer và View  Điểm khác biệt: o Khác biệt rõ nhất là cách xử lý yêu cầu (workflow) của 2 mô hình. o 3 Layer thường được sử dụng trong lập trình ứng dụng, trong khi đó MVC được ưu chuộng nhiều trong lập trình website vì tính linh hoạt và không bắt buộc các DTO như 3-Layer.

 2-tier, 3-layer

 3-tier, 3-layer

Mặc dù cấu trúc phân chia giống nhau (presentation, bussiness , data). Tuy nhiên chúng hoàn toàn khác nhau. Nếu 3 tiers có tính vật lí thì 3 layer có tính logic. Nghĩa là ta phân chia ứng dụng thành các phần (các lớp) theo chức năng hoặc vai trò một cách logic. Các layer khác nhau được thực thi trong 1 phân vùng bộ nhớ của process. Vì thế nên một tier có thể có nhiều layer.

  • Khi dùng từ layer, chúng ta nói tới việc phân chia ứng dụng thành các thành phần một cách logic theo chức năng hoặc theo vai trò, điều này giúp phần mềm của bạn có cấu trúc sáng sủa, dễ dùng lại, từ đó giúp việc phát triển và bảo trì dễ dàng hơn. Các layer khác nhau khi được thực thi vẫn có thể nằm trong cùng một vùng bộ nhớ của một process, và hiển nhiên việc giao tiếp giữa 2 layer có thể không phải là giao tiếp giữa 2 process, đồng nghĩa với việc chúng không liên quan tới mô hình client/server.
  • Trái lại, tier liên quan đến cách phân chia một cách vật lý các thành phần trên các máy tính khác nhau. Điều làm nhiều người nhầm lẫn giữa layer và tier là chúng có cùng cách phân chia (presentation, business, data), tuy nhiên trên thực tế chúng khác nhau. Vì cách phân chia như trên nên 1 tier có thể chứa nhiều hơn 1 layer. 7. Demo

Như các bạn đã nhìn tại sơ đồ ở trang 1 thì Mô hình 3 lớp hoạt động như sau:

 GUI liên kết tới dc Business Layer và DTO.  Business Layer liên kết tới được Data Access và DTO.  Data Access chỉ liên kết tới DTO.

Và bây giờ chúng ta sẽ liên kết, làm project GUI trước nhé. Đầu tiên ta chọn chuột fải vào References => Add Reference

Một cái bảng hiện ra, tại mục Project ta sẽ chọn 2 lớp mà lớp GUI có thể liên kết tới là BUS và DTO :

Cứ OK là Reference sẽ được thêm vào GUI, chúng ta có thể kiểm tra bằng cách mở References ra:

Làm tương tự đối với BUS và DAL theo bên trên. Thế là đã liên kết xong cho mô hình 3 lớp.

public string THANHVIEN_NAME { get { return _THANHVIEN_NAME; }

set { _THANHVIEN_NAME = value; } }

public string THANHVIEN_PHONE { get { return _THANHVIEN_PHONE; }

set { _THANHVIEN_PHONE = value; } }

public string THANHVIEN_EMAIL { get { return _THANHVIEN_EMAIL; }

set { _THANHVIEN_EMAIL = value; } }

/* === Constructor === */ public DTO_ThanhVien() {

}

public DTO_ThanhVien(int id, string name, string phone, string email) { this_ID = id; this_EMAIL = email; this_NAME = name; this_PHONE = phone; } } } C# – Mô hình 3 lớp đơn giản – Xây dựng mô hình 3 lớp: Xây dựng Data Access

Tại sao mình lại xây dựng Data Access trước? Đơn giản là đây là lớp mà ta xử lý bên database, làm trước thì design GUI xong chỉ việc bỏ vào sử dụng thôi.

Điều quan trọng đầu tiên, chúng ta cần tạo class DBConnect với nội dung như sau: using System.Data;

namespace DAL_QuanLy { public class DBConnect { protected SqlConnection _conn = new SqlConnection("Data Source=ADMINISTRATORSQLEXPRESS;Initial Catalog=ThanhVien;Integrated Security=True"); } }

Chúng ta sẽ tạo SqlConnection và khởi tạo luôn, sau này các class DAL ta chỉ cần kế thừa class DBConnect là có thể sử dụng _conn không cần khởi tạo lại. Phải sửa lại connection string chuẩn

Ta sẽ tạo file DAL_ThanhVien .cs (Class file) Ở đây mình sẽ làm sẵn luôn 4 methods là: Lấy tất cả, Thêm, Xóa, Sửa DAL_ThanhVien .cs: using System; using System.Collections; using System; using System; using System; using System.Data; using DTO_QuanLy;

Mô hình mang 3 lớp là gì?

Mô Hình 3 lớp là gì ? Mô hình 3 lớp hay còn được gọi là mô hình Three Layer (3-Layer), mô hình này ra đời nhằm phân chia các thành phần trong hệ thống, các thành phần cùng chức năng sẽ được nhóm lại với nhau và phân chia công việc cho từng nhóm để dữ liệu không bị chồng chéo và chạy lộn xộn.

Lớp Dal là gì?

- Data Access Layer (DAL): Chức năng của lớp này là giao tiếp với các hệ quản trị cở sở dữ liệu. Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứng dụng như đọc (select), lưu, cập nhật (insert, update, delete) cơ sở dữ liệu.

Lớp gửi là gì?

– Presentation Layer (GUI) : Lớp này có nhiệm vụ chính giao tiếp với người dùng. Nó gồm các thành phần giao diện ( win form, web form,…) và thực hiện các công việc như nhập liệu, hiển thị dữ liêu, kiểm tra tính đúng đắn dữ liệu trước khi gọi lớp Business Logic Layer (BLL).

Mô hình lll là gì?

Mô hình 3-layer (Three Layer) là một kiến trúc phổ biến trong phát triển phần mềm, giúp tách biệt và tổ chức rõ ràng các thành phần của hệ thống. Với Presentation Layer, Business Logic Layer và Data Access Layer hoạt động cùng nhau, mô hình này mang lại nhiều lợi ích quan trọng.