Kiến trúc 3 tầng trong ứng dụng ASP.NET Core

Kiến trúc 3 tầng trong ứng dụng ASP.NET Core

Trong chương này, chúng ta sẽ xem xét kiến trúc ba lớp và cách kết hợp Data Access Layer và Business Access Layer vào một dự án, cũng như cách các lớp này tương tác với nhau.

Kiến trúc ba lớp đang chia dự án thành ba lớp là lớp Presentation, lớp Business Access và lớp Data Access, nơi chúng ta phân tách giao diện kết quả người dùng, logic và dữ liệu thành ba phần. Giả sử người dùng muốn thay đổi giao diện người dùng từ windows sang điện thoại hoặc sang ứng dụng web hoặc chuyển sang Web API thì chúng ta chỉ phải thực hiện thay đổi ở lớp presentation, các lớp khác không bị ảnh hưởng bởi sự thay đổi này. Tương tự, nếu người dùng muốn thay đổi cơ sở dữ liệu thì anh ta chỉ phải thực hiện thay đổi trong lớp dữ liệu, còn lại mọi thứ vẫn giữ nguyên.

Chúng tôi sử dụng kiến trúc 3 tầng để quản lý các dự án lớn. Chúng ta có thể lấy một ví dụ: Giả sử bạn đã tạo 2000 code thực thể (entity) và bạn đã viết toàn bộ code của mình chỉ trong một lớp. Bây giờ, giả sử bạn muốn thay đổi từ ứng dụng windows sang ứng dụng di động hoặc web thì bạn phải viết lại code cho tất cả 2000 thực thể hoặc bạn muốn thay đổi nhà cung cấp cơ sở dữ liệu thì bạn phải thay đổi lại kết nối cơ sở dữ liệu trong tất cả 2000 thực thể. Do đó, viết một lượng lớn code như vậy là lãng phí thời gian và tiền bạc. Ngoài ra, viết một lượng lớn code trong một lớp chỉ khiến những người mới khó hiểu đoạn code đó. Vì vậy, để cung cấp khả năng bảo trì, linh hoạt, linh hoạt cập nhật mà không ảnh hưởng đến các phần khác và mã rõ ràng và dễ hiểu, chúng ta nên sử dụng Kiến trúc 3 tầng trong Dự án thay vì kiến trúc nguyên khối (monolithic) như bài đầu

Cấu trúc dự án

Chúng tôi sử dụng kiến trúc ba tầng trong dự án này, với Data Access Layer, Business Access Layer và Application Presentation Layer

Presentation Layer (PL)

Presentation layer là lớp cao nhất của kiến trúc 3 cấp và vai trò chính của nó là hiển thị kết quả cho người dùng hoặc hoặc hiểu theo một cách khác là để trình bày dữ liệu mà chúng ta có được từ lớp Business cho người dùng

Business Access Layer (BAL)

Lớp logic tương tác với lớp Data Access và Presentation để xử lý các hoạt động các logic liên quan đến nghiệp vụ của hệ thống. Công việc chính của lớp này là xử lý dữ liệu giữa các lớp khác (lấy dữ liệu từ lớp data access xử lý và trả kết quả cho Presentation hoặc kiểm tra dữ liệu được người dùng nhập vào là chuyển xuống data access)

Data Access Layer (DAL)

Chức năng chính của lớp này là truy cập và lưu trữ dữ liệu từ cơ sở dữ liệu và lấy dữ liệu và gửi đến lớp Business Logic. Như đã nói ở trên, Business Logic có nhiệm vụ truyền tải dữ liệu hoặc có thêm thao tác xử lý trước khi dữ liệu được hiển thị cho người dùng thông qua lớp Presentation theo yêu cầu của họ.

Ưu điểm của kiến trúc 3 tầng

  • Tạo sự phân tác hợp lý giữa các lớp Presentation, Business và Data Access
  • Dễ dàng trong việc chuyển đổi giữa các môi trường
  • Trong mô hình này, mỗi layer là độc lập để chúng ta có thể đặt các developer khác nhau trên mỗi tầng để phát triển nhanh các ứng dụng
  • Dễ bảo trì so với kiến trúc nguyên khối
  • Lớp business nằm giữa lớp presentation và lớp data access, ứng dụng sẽ an toàn hơn vì client sẽ không có quyền truy cập trực tiếp vào cơ sở dữ liệu
  • Dữ liệu được xử lý từ lớp business được kiểm tra kỹ lưỡng ở lớp này trước khi được update hay insert vào database
  • Lớp Business có thể hỗ trợ thao tác bảo mật
  • Nghiệp vụ được định nghĩa một lần ở Business và sau đó chia sẻ nó giữa các thành phần khác ở lớp Presentation
  • Dễ dàng áp dụng các khái niệm trong lập trình hướng đối tượng
  • Dễ dàng cập nhật các yêu cầu về dữ liệu từ phía DAL

Nhược điểm của kiến trúc 3 tầng

  • Mất nhiều thời gian để xây dựng phần nhỏ của ứng dụng
  • Cần hiểu biết tốt về lập trình hướng đối tượng

Tóm tắt

Trong chương này, chúng ta đã tìm hiểu về Kiến trúc 3 tầng và cách ba lớp trao đổi dữ liệu giữa chúng, cách chúng ta có thể thêm Data Access và Business Logic trong dự án và cách các lớp này giao tiếp với nhau


Bài viết thuộc các danh mục

Bài viết được gắn thẻ



BÌNH LUẬN (0)

Hãy là người đầu tiên để lại bình luận cho bài viết !!

Hãy đăng nhập để tham gia bình luận. Nếu bạn chưa có tài khoản hãy đăng ký để tham gia bình luận với mình


Bài viết liên quan

Kiến trúc Monolithic trong ứng dụng ASP.NET Core

Trong ngành công nghiệp phần mềm, khi chúng ta muốn phát triển một sản phẩm phần mềm thì chúng ta cần kiến trúc tốt bằng cách sử dụng kiến trúc đó, chúng ta có thể phát triển một sản phẩm chất lượng cao, sản phẩm có khả năng kiểm tra cao, khả năng mở rộng cao và khả năng bảo trì cao.

Copyright © 2022. Bảo lưu tất cả quyền