Repository Pattern in ASP.Net

Hiện tại, em đang viết API với mô hình MVC và chia project thành các layers: Controller - Service - Repository. Cho em hỏi các request và response object có được coi là 1 model không? Nếu có thì em có bỏ nó vào trong Repository để chứa cùng các model em đã tạo với database. Ngoài 3 layer trên, dưới repository layer, còn layer nào nữa không? Nếu có, layer đấy có nhiệm vụ gì? Em xin cảm ơn.

Object request/response (tớ presume cậu đang nói về API request/response) có là model của layer controller. Model này không giống domain model mà cậu dùng để tính toán trong service, hay lấy từ repository, vậy nên cậu không có lý do gì để đặt nó vào trong repository folder :smile:

Về 3 layer cậu mô tả, thực ra đó không phải là các layer trong mô hình MVC đâu (mặc dù vai trò nó tương đối giống). Repository pattern, Service là các khái niệm thường được dùng trong Domain Driven-Design (DDD for short), mặc dù nhiều nơi mix concept này trong các kiến trúc khác (vốn không vấn đề gì, cơ mà lúc đó tớ không nghĩ cậu có thể nói cậu đang dùng MVC đâu :smile: ).
MVC truyền thống chỉ có 3 layer, còn Domain driven design thường flexible và có thể có nhiều layer hơn (nó thường phụ thuộc vào độ phức tạp của domain và business/feature requirement của cậu - có lúc cậu phải giới thiệu thêm các layer mới nếu cần thiết). Một ứng dụng DDD truyền thống thường có 3-4 layer tùy thuộc vào nhu cầu, tớ có thể nói vai trò của các layer tương đối giống như vai trò các layer trong MVC truyền thống, nhưng cậu có nhiều thành phần hơn :smile:
Tớ không thể nói cho cậu biết nó là layer gì, vì không có yêu cầu cụ thể, cơ mà tớ recommend cậu có thể đọc thêm về DDD để hiểu thêm về các concept/pattern và cách sử dụng chúng :smile: Chúng ta có thể bàn tiếp khi cậu có câu hỏi chi tiết hơn.

Hope it helps!

7 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?