Mọi người cũng bị treo lên khi viết tắt và đôi khi là TLA.
Nếu những gì Phil Haack nói trong bài viết của mình là đúng, tôi nghĩ tôi đã sử dụng MVC trong ASP.NET MVC, nhưng những gì tôi thực sự sử dụng là MVP (hoặc một dạng tinh chỉnh của MVC).
Với MVC, luôn có trách nhiệm xử lý các sự kiện bàn phím và của bộ điều khiển. Với chính MVP, GUI các thành phần ban đầu xử lý thông tin nhập của người dùng, nhưng ủy quyền cho việc giải thích đầu vào đó cho người trình bày .
Nhưng đó không phải là những gì ASP.NET MVC thực sự là tất cả.
Nếu tôi xử lý các sự kiện chuột và bàn phím, tôi thích làm điều đó trong trình duyệt với jQuery. Điều đó tách tương tác của người dùng khỏi bộ điều khiển và cung cấp cách tách tốt hơn giữa lớp giao diện người dùng và lớp "doanh nghiệp".
Nếu tôi cần cập nhật một phần của trang bằng cách sử dụng cuộc gọi AJAX hoặc cuộc gọi JSON, tôi vẫn sẽ cần thực hiện điều đó, dù tôi gọi nó là MVC hay MVP.
ASP.NET WebForms, ví dụ, cố gắng bắt chước những người giàu khách hàng phát triển mô hình thông qua việc sử dụng các ViewState. Đây là lý do tại sao nhiều nỗ lực để áp dụng các mẫu cho ASP.NET tập trung vào mẫu MVP vì mẫu MVP phù hợp hơn cho ứng dụng khách phong phú với các thành phần GUI .
Tuy nhiên, nhiều nền tảng web ôm tính chất quốc tịch của web và bỏ cố gắng để mô phỏng một phát triển khách hàng giàu môi trường nhà đầy đủ. Trong các hệ thống như vậy, một mẫu MVC được chỉnh được áp dụng nhiều hơn .
Rõ ràng là quan điểm của Phil (một dạng tinh chỉnh) MVC là di chuyển đến một khách hàng không trạng thái hơn, trong khi MVP đặt trách nhiệm nhiều hơn vào lớp giao diện người dùng để cung cấp trải nghiệm người dùng phong phú.
Đây có phải là điều tốt hay không là chủ quan. Nếu ASP.NET là MVP và ASP.NET MVC là MVC, tôi sẽ sẵn sàng chấp nhận các bản nhạc đầu tiên của MVC để từ bỏ những thứ như logic tuyến tính và ngược đãi.
Hài hước- Tôi chưa từng thấy điều đó trước đây. – RichardOD