Tôi đã phát triển các ứng dụng doanh nghiệp trong nhiều năm bằng cách sử dụng .Net Các ứng dụng của tôi thường có mô hình miền chứa các thực thể ánh xạ tới bảng SQL DB. Tôi sử dụng mẫu Kho lưu trữ, chèn Phụ thuộc và lớp dịch vụ.
Gần đây, chúng tôi đã bắt đầu thực hiện các dự án MVC 3 và chúng tôi đã có một cuộc tranh luận nên đặt logic nào. Tôi đã xem qua kiến trúc Mô hình điều khiển / FAT mỏng và đang tự hỏi làm thế nào để lớp dịch vụ phù hợp với
Tùy chọn 1 - Mô hình nói chuyện với các dịch vụ
Bộ điều khiển mỏng, gọi các phương thức trên các mô hình. Các mô hình "biết" cách tải bản thân từ DB và nói chuyện với các kho lưu trữ hoặc dịch vụ. Ví dụ: customerModel có phương thức Load (id) và tải khách hàng và một số đối tượng con như GetContracts ().
Tùy chọn 2 - Người điều khiển nói chuyện với các dịch vụ
Bộ điều khiển yêu cầu Dịch vụ truy xuất các đối tượng mô hình. Logic của việc tải / lưu trữ, v.v. Nằm trong lớp dịch vụ. Mô hình là một mô hình thực thể thuần túy chỉ có dữ liệu.
Tại sao tùy chọn 1 lại là lựa chọn tốt hơn đặc biệt là khi chúng tôi nói về các ứng dụng doanh nghiệp, kinh nghiệm của tôi cho tôi biết hãy tách biệt các mối quan tâm, giữ cho các mô hình VÀ Bộ điều khiển càng mỏng càng tốt và có các dịch vụ chuyên biệt thực hiện Logic kinh doanh (imcl. Tương tác DB)
Cảm ơn tất cả lời khuyên và tài liệu tham khảo đến các nguồn tốt.