Bài đăng này tương tự như in MVC/MVP/MVPC where do you put your business logic?, nhưng tôi đang tìm kiếm thêm chi tiết. Tôi đã mua vào Model là nơi mà phần lớn logic kinh doanh nên cư trú. Tuy nhiên, mô hình, theo như tôi hiểu có rất nhiều đang xảy ra bên trong nó: quản lý nhà nước ứng dụng, kiên trì dữ liệu, kho, đối tượng chuyển dữ liệu, và có thể các công cụ khác.MVC/MVP/MVVM - Cách sắp xếp logic nghiệp vụ
Tôi có một ứng dụng có quy tắc kinh doanh siêu phức tạp. Khi người dùng cố gắng thực hiện một hành động nhất định trong một chế độ xem, có khoảng 20 quy tắc khác nhau phải xác thực xem hành động đó có được cho phép hay không hoặc liệu người dùng có được nhắc thêm thông tin hay không. Tôi muốn mã hóa các quy tắc kinh doanh này một lần cho mỗi phương thức để hỗ trợ khả năng kiểm tra và tài liệu. Các quy tắc này có nên nằm trong lớp kho lưu trữ không? Có lẽ trong một tầng dịch vụ phía trên các kho lưu trữ? Thực hành tốt nhất ở đây lưu ý rằng tôi đang sử dụng một giải pháp ORM như LINQ to SQL, EF, hoặc nHibernate?
Tôi đánh giá cao câu trả lời, nhưng tôi muốn để có thể thử nghiệm những phương pháp với NUnit hoặc testing framework khác, và đưa các quy tắc trong cơ sở dữ liệu sẽ khiến việc này trở nên khó khăn hơn nhiều. – Andy
Ngoài ra, với sự phức tạp của các quy tắc này, nó sẽ trở nên vô cùng khó khăn để quản lý tất cả chúng trong cơ sở dữ liệu. – Andy