Trong MVC tôi cố gắng và đảm bảo rằng bộ điều khiển của tôi càng "mỏng" càng tốt và các mô hình của tôi càng ngu ngốc càng tốt.
Các hàm trợ giúp logic và trợ giúp cần thiết được đưa vào các lớp trợ giúp độc lập riêng biệt. Nó cũng giúp cho việc kiểm tra của tôi dễ dàng hơn rất nhiều (bạn đang kiểm tra .. phải không ??: D) Kiểm soát kiểm tra rất khó khăn, bất cứ khi nào bạn thử và tạo một phiên bản của bộ điều khiển để kiểm tra bạn phải suy nghĩ về Ngữ cảnh HTTP và giả mạo http cái này và cái kia, và nó là một nỗi đau, nhưng đó là một nỗi đau về mục đích. Bạn cần tất cả những thứ đó vì bộ điều khiển được liên kết chặt chẽ với HTTP và web. Đó là điểm vào ứng dụng web của bạn.
Các hàm logic và trợ giúp không liên quan gì đến web. Họ hoàn toàn không tin tưởng vào môi trường (hoặc họ nên như vậy). Điều đó một mình sẽ nói với bạn rằng họ không thuộc về nhau ở cùng một nơi. Ngoài ra, nếu bạn liên kết chặt chẽ tất cả logic ứng dụng của mình với web hoặc triển khai web cụ thể, bạn không bao giờ có thể mang theo bên mình.
Chúng tôi đã phát triển trang web MVC của chúng tôi với tất cả các thực thể cơ sở dữ liệu của chúng tôi (không phải mô hình mvc, thực thể db thực tế của chúng tôi), lưu trữ của chúng tôi, các lớp trợ giúp và logic của chúng tôi trong riêng biệt dll. Chúng tôi chỉ có mỗi một trang web, nhưng dù sao chúng tôi cũng đã làm như vậy.
Một vài tháng trước, chúng tôi đã được yêu cầu tạo ra một vài ứng dụng máy tính để bàn có liên quan đến một vài hệ thống bên lề của chúng tôi. Điều này được thực hiện dễ dàng vì tất cả các mã được thử nghiệm của chúng tôi có thể dễ dàng được sử dụng lại. Nếu chúng tôi đưa mã của chúng tôi vào dự án web của chúng tôi hoặc đưa vào bộ điều khiển của chúng tôi, chúng tôi sẽ không bao giờ có thể làm điều này.