Trước hết, tôi nghĩ phần mềm và mẫu có xu hướng làm quá mức mọi thứ. Như tên ASP ngụ ý ý tưởng chính của khung công tác là Model-View-Controller (MVC). Bạn có thể đặt rất nhiều thứ giữa các thành phần này, bao gồm DB, Dịch vụ, API, v.v. Tuy nhiên, khái niệm chính của mô hình Model-View-Controller khá đơn giản: Phân tách các chức năng đó thành các mô-đun để dự án có thể dễ dàng hơn để duy trì.
MVC có thể được áp dụng cho bất kỳ chương trình hoặc tập lệnh nào bạn thực hiện. Ngay cả đối với một kịch bản shell MVC cũng có thể hữu ích. Dưới đây là một số ví dụ về mỗi loại:
- Chế độ xem - Dưới đây là cách người dùng tương tác. Nó có thể là một trang web, và Windows Form, hoặc một giao diện dòng lệnh.
- Bộ điều khiển - Bộ não của chương trình, cần lưu ý mọi thứ, nhưng khá đơn giản. Về cơ bản nó nhận được tin nhắn hoặc sự kiện từ quan điểm và/hoặc mô hình và quyết định phải làm gì. Bộ điều khiển tốt về cơ bản là một điều phối viên của các sự kiện. Tùy thuộc vào sự kiện, nó gọi phương thức xem hoặc phương thức mô hình.Trong ASP MVC, bộ điều khiển là một trong những cung cấp ActionResults cho View và tương tác với Model.
- Mô hình - Đây là cơ bản nơi dữ liệu được. Đây có thể là một DB, hệ thống tệp, Phiên Web hoặc bộ nhớ.
Bây giờ là phần tốt. Bộ điều khiển không quan tâm cách Chế độ xem đang quản lý tương tác với người dùng. Nó có thể là một giao diện dòng lệnh hoặc một biểu mẫu web. Bộ điều khiển không biết cách dữ liệu được lưu trữ, nó không quan trọng nếu nó là một DB hoặc một tập tin. Nó chỉ yêu cầu dữ liệu và chuyển nó đến View. Nó không phải của doanh nghiệp của mình để biết làm thế nào quan điểm là nhận được các yếu tố đầu vào, hoặc mô hình dữ liệu.
Sau đó, câu hỏi, Tại sao chúng ta muốn làm quá nhiều thứ với mô hình này? Vâng, Hãy tưởng tượng rằng bạn có một ứng dụng MVC bằng cách sử dụng một MySQL DB và biết bạn muốn sử dụng SQL Server. Bạn nên thay đổi mô-đun nào? Rõ ràng Model là người bị ảnh hưởng. Bộ điều khiển và Chế độ xem sẽ không có bất kỳ tác động lớn nào. Bây giờ, hãy tưởng tượng rằng bạn có một ứng dụng MVC khác bằng cách sử dụng Windows Forms, và bây giờ bạn muốn thay đổi nó thành biểu mẫu Web? Về cơ bản thì View là cái sẽ bị ảnh hưởng (và một số phần của bộ điều khiển), nhưng Model của bạn sẽ giống nhau.
Tóm lại, MVC là một mẫu tuyệt vời và nó nên được sử dụng nhiều hơn. Tuy nhiên, tôi nghĩ rằng có một số dự án không phù hợp với MVC do tính đơn giản của nó. Nó sẽ giống như xây dựng một laser để tiêu diệt ruồi. Tất nhiên bạn sẽ giết họ, nhưng nỗ lực không xứng đáng với mọi trường hợp.
loại câu hỏi xứng đáng với câu trả lời đúng đắn, sâu sắc .. sẽ rất thú vị khi xem những gì bạn nhận được :) – flesh
Tôi nghĩ bạn có thể thay thế 'bất kỳ ORM' nào cho EF/L2S. –
Câu trả lời của J.W. không tệ. Sẽ tốt hơn nếu bạn có thêm vài câu trả lời chỉ để xem trải nghiệm/quan điểm của người khác về nó. Cũng sẽ giống như một chút về cách họ tương tác với nhau. Xin vui lòng gửi nếu bạn có bất kỳ đầu vào thêm về điều này! – Matt