2011-11-16 25 views
11

thể trùng lặp:
What is the difference between MVC and MVVM?Sự khác biệt và tương đồng giữa MVC và MVVM là gì?

Tôi mới trong mô hình Asp.Net MVC. Tôi chỉ có một vài câu hỏi liên quan đến MVC và MVVM

  1. Các mẫu này giải quyết những vấn đề gì?
  2. Chúng tương tự như thế nào?
  3. Chúng khác nhau như thế nào?
+0

Cân nhắc xem xét điều này: http: // stackoverf low.com/questions/6258682/is-the-m-in-mvc-different-than-in-mvvm –

Trả lời

8

trong ASP.NET MVC yêu cầu đến từ các máy chủ web và được xử lý trực tiếp bởi Controller. Bộ điều khiển xác định Chế độ xem phù hợp và điền nó với Mô hình. Bộ điều khiển sau đó phát hành các trường hợp này đến hệ thống cơ bản, hiển thị kết quả cho máy khách. Bạn có thể thấy rằng Bộ điều khiển là đầu tiên và cuối cùng để hành động.

Trong MVVM, giao diện người dùng (Chế độ xem), đối mặt với người dùng và nhập trực tiếp người dùng. Trong View, các lệnh trong ViewModel (là DataContext của View) được kích hoạt bởi hoạt động này. Kiểm soát các luồng tới ViewModel, giải thích những gì mà View đã gửi và chuẩn bị các Mô hình của nó. Sau khi kiểm soát quay trở lại Chế độ xem, bản cập nhật sẽ tự động cập nhật theo các thay đổi trong Mô hình. Nếu một View mới là bắt buộc, ViewModel sẽ truyền đạt điều này với NavigationService (hoặc bất kỳ phương thức điều hướng nào mà ứng dụng của bạn sử dụng), đó là sự xem xét của các thành phần Window hoặc Frame - UI. Bạn có thể thấy rằng ViewModel không phải là đầu tiên và cuối cùng để hành động; View có vai trò lớn hơn nhiều so với MVC.

Theo như lựa chọn cái nào là tốt nhất, tôi sẽ có xu hướng được hướng dẫn bằng cách hỗ trợ công cụ. Ví dụ, nếu bạn đang sử dụng ASP.Net, có một số lượng lớn tự động hóa thông qua mẫu dự án MVC giúp với việc thiết lập tấm nồi hơi và sử dụng mẫu đó trong một ứng dụng. Từ những gì tôi hiểu về Silverlight/WPF, có rất nhiều sự hỗ trợ xung quanh MVVM. Khi tôi đã lên đến tốc độ trên MVC/MVP một vài năm trước đây, tôi thực hiện MVP trong quá trình kiểm tra của một ứng dụng thương mại điện tử. Đó là một kinh nghiệm tuyệt vời với một kết quả thỏa mãn, nhưng tôi đã viết mọi thứ bằng tay mà không có sự hỗ trợ dụng cụ và hướng dẫn nhỏ. Khi tôi viết một ứng dụng Silverlight, tôi chắc chắn sẽ được chuyển sang MVVM vì sự hỗ trợ ở đó.

+0

Yêu cầu đến từ máy chủ web như thế nào? Một chức năng chính của máy chủ web là xử lý các yêu cầu từ một trình duyệt web và theo đó một phản hồi được đưa ra. –

2

Rất nhiều nội dung trên web bao gồm này nhưng là một khởi this video sẽ giúp bạn ra ngoài

2

MVC là một mẫu kiến ​​trúc phần mềm cho phép bạn tách biệt lớn nhất là logic miền, giao diện người dùng, logic nghiệp vụ, vv và cho phép phân tách mối quan tâm và cho phép các logics độc lập được phát triển riêng biệt và thử nghiệm riêng biệt dễ dàng thử nghiệm nhiều phiên bản triển khai mà không cần nhiều quảng cáo.

Mô hình là nếu bạn thích thực thể mô tả mọi thứ bạn muốn chụp bao gồm hành vi của nó mặc dù hầu hết mọi người nghĩ về bảng cơ sở dữ liệu, nhưng chỉ đơn thuần là mô hình và mô hình lưu trữ kết hợp mọi thứ.

View là nếu bạn thích giao diện người dùng mà bạn tương tác với

Controller là một trong những ổ đĩa sự tương tác giữa Xem thực hiện hoặc tham gia những thay đổi xảy ra trên mô hình.

MVVM nếu bạn thích giống như MVC nhưng sử dụng Mô hình xem bổ sung để trợ giúp với giao diện người dùng và Mô hình xem này đồng bộ hóa với mô hình thông qua bộ điều khiển.

Kiến trúc cũng bao gồm các phương pháp hay nhất như mẫu kho lưu trữ, IOC, v.v.

Ví dụ: của nói một người mẫu

class Person 
{ 
    int id; 
    string type; 

} 

Bây giờ một Xem mô hình đó sẽ giúp với giao diện người dùng có thể có một DropDownList để poplulate loại người do đó, một ViewModel cho cùng một mô hình có thể

Class PersonViewModel 

{ //Pseudo code 
    SelectList {mytype, yourtype} 

} 

này có thể hơn được sử dụng theo quan điểm như // giả DropDownList (slectList)

Hope this helps

Các vấn đề liên quan