Có bất kỳ tham chiếu từng bước dễ dàng đến MVVM không?
Có, có. Hãy nhìn vào đây.
MVVM là một siêu tập hợp hay một tập hợp con của MVC?
MVVM thuộc họ MVC, vì vậy, nếu bạn có thể nói rằng, đó là một tập hợp con. Đây là một biến thể để tách rời UI khỏi logic nghiệp vụ bên dưới. Tôi muốn mô tả nó như là anh em ruột của MVC. Kể từ những ngày đầu của OOP, mọi người đã tìm cách tách rời UI khỏi logic của họ. MVC là nguyên mẫu đầu tiên phát triển. Nó khá đơn giản, mặc dù hầu hết mọi người không hiểu đúng. Khung nhìn chỉ là một người quan sát mô hình và gọi nó khi cần thiết. Bộ điều khiển chỉ là một chiến lược để khung nhìn giao tiếp với mô hình, ví dụ như khi bạn cần một hành vi có thể trao đổi (ví dụ ReadonlyControll, AdminContoder). MVC rất thành công và thực sự tốt khi áp dụng nó.
MVVM là một loại Mẫu MVP chuyên dụng , như được mô tả bởi Martin Fowler . MVP cố gắng giữ cho chế độ xem càng câm càng tốt (trong khi vẫn lấy đầu vào của người dùng, v.v.), do đó nâng cao khả năng kiểm tra. Nó nhằm mục đích trừu tượng hóa quan điểm và logic tương tác sẽ được đưa vào người trình bày. Người trình bày chỉ giao tiếp với mô hình / logic nghiệp vụ và cập nhật Chế độ xem. Martin Fowler mô tả MVVM khá nhiều trong Mô hình mô hình trình bày của mình.
Khung nhìn hoàn toàn được trừu tượng hóa thành ViewModel. Khi View
cần một tài sản, ViewModel
nhu cầu phải có nó là tốt. Nó (ViewModel) có nghĩa là hoàn toàn độc lập với công nghệ UI cơ bản, một sự trừu tượng hóa. Để giao tiếp giữa View và ViewModel, một mẫu đồng bộ hóa cần được sử dụng (ví dụ: Observer). Điều này không dễ thực hiện trong môi trường web không trạng thái. MVVM khác với MVP, vì Chế độ xem không liên kết với logic mô hình / doanh nghiệp của bạn nữa mà thay vào đó là ViewModel.
Mẫu nào hiện đại và nên chọn mẫu nào cho các phiên bản Windows & Web của ứng dụng của tôi?
Mô hình trình bày (giống như MVVM) trong lý thuyết nên hoàn toàn độc lập với công nghệ UI được sử dụng. Tuy nhiên, khía cạnh đồng bộ hóa cần được đề cập. Nó có thể dễ dàng được thực hiện bằng cách liên kết với Lệnh và Thuộc tính với WPF, nơi đã có keo đồng bộ hóa. Với ASP.NET, đây là một câu chuyện khác. Tuy nhiên, có một bài viết về CodeProject sử dụng Mẫu mô hình trình bày với tất cả các công nghệ UI của Windows. Có một cái nhìn.