MVC ve MVVM arasındaki fark nedir?

Standart "Model View Controller" kalıbı ile Microsoft'un Model/View/ViewModel kalıbı arasında bir fark var mı?

MVVM Model-View ViewModel MVC'ye benzer, Model-View Controller

Denetleyici bir ViewModel ile değiştirilir. ViewModel, UI katmanının altında yer alır. ViewModel, görünümün ihtiyaç duyduğu veri ve komut nesnelerini ortaya çıkarır. Bunu, görünümün verilerini ve eylemlerini almak için gittiği bir kap nesnesi olarak düşünebilirsiniz. ViewModel verilerini modelden alır.

Russel East daha ayrıntılı olarak tartışan bir blog hazırladı MVVM neden MVC'den farklıdır

Yorumlar (12)

İlk olarak, MVVM, görüntüyü işlemek için XAML kullanan MVC modelinin bir ilerlemesidir. Bu makale ikisinin bazı yönlerini özetlemektedir.

Model/Görünüm/GörünümModeli mimarisinin ana itici gücü, verilerin ("Model") üzerinde, verilerin kavramlarını verilerin görünümünün ("Görünüm") kavramlarıyla daha yakından eşleştiren görsel olmayan bileşenlerden ("GörünümModeli") oluşan başka bir katmanın bulunması gibi görünmektedir. Görünümün bağlandığı ViewModel'dir, doğrudan Model değil.

Yorumlar (5)

MVVM, karışıma görünüm modelini de ekler. Bu önemlidir, çünkü normal modelinize tüm bu UI'ye özgü parçaları koymadan WPF'nin bağlama yaklaşımının çoğunu kullanmanıza olanak tanır.

Yanılıyor olabilirim, ancak MVVM'nin denetleyiciyi gerçekten karışıma zorladığından emin değilim. Bu konseptin daha çok http://martinfowler.com/eaaDev/PresentationModel.html ile uyumlu olduğunu düşünüyorum. Bence insanlar bunu MVC ile birleştirmeyi seçiyor, kalıbın içinde yerleşik olduğunu değil.

Yorumlar (2)