MVC ve MVVM: Örneklerle Temel Farklılıklar

MVC nedir?

MVC çerçevesi, bir uygulamayı Model, Görünüm ve Denetleyici olmak üzere üç ana mantıksal bileşene ayıran bir mimari modeldir. Bu nedenle kısaltma MVC. Tam form MVC, Model Görünüm Denetleyicisidir.

Bu mimaride, bir uygulamanın belirli geliştirme yönlerini ele almak için bir bileşen oluşturulur. MVC, iş mantığı ve sunum katmanını birbirinden ayırır. Bu mimari model esas olarak masaüstü grafik kullanıcı arayüzleri (GUI'ler) için kullanılır.

Bu eğitimde şunları öğreneceksiniz:

MVVM nedir?

MVVM mimarisi, işaretleme dili veya GUI kodu yardımıyla grafik kullanıcı arabiriminin geliştirilmesinin ayrılmasını kolaylaştırır. MVVM'nin tam biçimi Model–View–ViewModel'dir.

MVVM'nin görünüm modeli bir değer dönüştürücüdür; bu, nesnelerin kolayca yönetilip sunulacağı şekilde Modelden veri nesnelerini açığa çıkarmanın görünüm modelinin sorumluluğunda olduğu anlamına gelir.

ANAHTAR FARK

  • MVC çerçevesi, bir uygulamayı Model, Görünüm ve Denetleyici olmak üzere üç ana mantıksal bileşene ayıran bir mimari modeldir. Öte yandan MVVM, işaretleme dili veya GUI kodu yardımıyla grafik kullanıcı arabiriminin geliştirilmesinin ayrılmasını kolaylaştırır.
  • MVC'de denetleyici, Uygulamaya giriş noktasıdır, MVVM'de ise görünüm, Uygulamaya giriş noktasıdır.
  • MVC Model bileşeni kullanıcıdan ayrı olarak test edilebilirken, MVVM ayrı birim testi için kolaydır ve kod olaya dayalıdır.
  • MVC mimarisinde Denetleyici ve Görünüm arasında 'bire çok', MVVC mimarisinde ise Görünüm ve Görünüm Modeli arasında 'bire çok' ilişkiler vardır.

MVC Kalıbı

MVC Mimarisi



Üç önemli MVC bileşenleri şunlardır:

  • modeli: Tüm verileri ve ilgili mantığını içerir.
  • Görüş: Verileri kullanıcıya sunun veya kullanıcı etkileşimini yönetin.
  • Denetleyici: Model ve Görünüm bileşenleri arasında bir arayüz.

Bu bileşenin her birini ayrıntılı olarak görelim:

modeli

Model bileşeni, verileri ve ilgili mantığı depolar. Denetleyici bileşenleri veya diğer ilgili iş mantığı arasında aktarılan verileri temsil eder.

Örneğin, bir Controller nesnesi, müşteri bilgilerini veritabanından almanıza yardımcı olur. Verileri manipüle eder ve veritabanına geri gönderir veya aynı verileri işlemek için kullanır.

görüş

Görünüm, Uygulamanın verilerin sunumunu temsil eden kısmıdır. Görünümler, model verilerinden toplanan veriler tarafından oluşturulur. Bir görünüm, Modelden çıktıyı kullanıcıya yeniden göndermesi için bilgi vermesini ister.

Görünüm ayrıca çizelgeler, diyagramlar ve tablodaki verileri de temsil eder. Örneğin, herhangi bir müşteri görünümü, metin kutuları, açılır menüler vb. gibi tüm UI bileşenlerini içerecektir.

Denetleyici

Denetleyici, Uygulamanın kullanıcı etkileşimini yöneten bölümüdür. Denetleyici, kullanıcıdan gelen fare ve klavye girişlerini yorumlayarak Modeli ve Görünümü uygun şekilde değiştirmesi konusunda bilgilendirir.

Bir Denetleyici, durumunu güncellemek için Modele komutlar gönderir (Örneğin, belirli bir belgeyi kaydetme). Denetleyici ayrıca Görünümün sunumunu değiştirmek için ilişkili görünümüne komutlar gönderir (Örneğin, belirli bir belgeyi kaydırma).

MVVM Kalıbı

İşte, MVVM için bir kalıp:

MVVM Mimarisi

MVVM mimarisi, görünüm ve görünüm modeli arasında iki yönlü veri bağlama sunar. Ayrıca, Görünüm Modeli içindeki değişikliklerin görünüme yayılmasını otomatikleştirmenize yardımcı olur. Görünüm modeli, görünüm modelinde değişiklik yapmak için gözlemci modelini kullanır.

Bu bileşeni ayrıntılı olarak görelim:

modeli

Model, verileri ve ilgili mantığı depolar. Denetleyici bileşenleri veya diğer ilgili iş mantığı arasında aktarılan verileri temsil eder.

Örneğin, bir Controller nesnesi, öğrenci bilgilerini okul veritabanından alacaktır. Verileri manipüle eder ve veritabanına geri gönderir veya aynı verileri işlemek için kullanır.

Görüş:

Görünüm, HTML, CSS, jQuery, vb. gibi UI bileşenleri anlamına gelir. MVVC model görünümünde, Denetleyiciden bir sonuç olarak alınan verilerin görüntülenmesinden sorumlu tutulur. Bu Görünüm ayrıca Model(ler)i Kullanıcı Arayüzüne (UI) dönüştürülür.

Modeli Görüntüle:

Görünüm modeli, Görünümün durumunu desteklemek için işlevlerin, komutların, yöntemlerin sunulmasından sorumludur. Modeli çalıştırmaktan ve Görünümdeki olayları etkinleştirmekten de sorumludur.

MVC'nin Özellikleri

MVC'nin önemli özellikleri şunlardır:

  • Kolay ve sürtünmesiz test edilebilirlik. Son derece test edilebilir, genişletilebilir ve takılabilir çerçeve
  • Ayrıca ASP.NET, Django, JSP, vb. Tarafından sunulan mevcut özelliklerden de yararlanabilirsiniz.
  • URL'lerinizin yanı sıra HTML'niz üzerinde tam kontrol sunar.
  • Test Odaklı Geliştirmeyi (TDD) destekler
  • Bu mimari mantık ayrımı sunar
  • SEO Dostu URL'ler için yönlendirmeye izin verir.
  • Anlaşılabilir ve aranabilir URL'ler için eşleme sunar.

MVVM'nin Özellikleri

MVVM mimarisinin özellikleri şunlardır:

  • MVVM, veri bağlama özelliklerine sahip masaüstü uygulaması için yazılmıştır - XAML ve INotifyPropertyChanged arabirimi
  • Görünüm Modelinde değişiklik yapmak istiyorsanız, Görünüm Modeli bir gözlemci deseni kullanır.
  • MVVM modeli çoğunlukla WPF, Silverlight, nRoute vb. Tarafından kullanılır.

MVVM ve MVC arasındaki fark

İşte, MVVM ve MVC arasındaki önemli farklar

MVC OGVM
Denetleyici, Uygulamaya giriş noktasıdır.Görünüm, Uygulamaya giriş noktasıdır.
Denetleyici ve Görünüm arasında bire çok ilişki.Görünüm ve Görünüm Modeli arasında bire çok ilişki.
Görünümün Denetleyiciye referansı yokGörünümün Görünüm Modeline referansları vardır.
MVC Eski ModeldirMVVM nispeten Yeni bir Modeldir.
Bu Modeli okumak, değiştirmek, birim testi yapmak ve yeniden kullanmak zorKarmaşık veri bağlamalarımız olduğunda hata ayıklama işlemi karmaşık olacaktır.
MVC Model bileşeni, kullanıcıdan ayrı olarak test edilebilirAyrı birim testi için kolay ve kod olaya dayalıdır.

MVC'nin Avantajı

İşte, MVC'nin avantajları/artıları

  • Yeni bir istemci türü için daha kolay destek
  • Çeşitli bileşenlerin geliştirilmesi paralel olarak gerçekleştirilebilir.
  • Bir uygulamayı ayrı (MVC) birimlere bölerek karmaşıklığı önler
  • Yalnızca tek bir denetleyici kullanarak web uygulaması isteklerini işleyen bir ön denetleyici deseni kullanır.
  • Test odaklı geliştirme için en iyi desteği sunar
  • Büyük web tasarımcıları ve geliştiricileri ekipleri tarafından desteklenen Web uygulamaları için iyi çalışır.
  • Endişelerin (SoC) temiz bir şekilde ayrılmasını sağlar.
  • Sınıflandırılmış tüm nesneler ve nesneler birbirinden bağımsızdır, böylece bunları ayrı ayrı test edebilirsiniz.
  • MVC, bir denetleyicideki ilgili eylemlerin birlikte mantıksal olarak gruplandırılmasına izin verir.

MVVM'nin Avantajları

İşte, MVVM'nin artıları/faydaları

  • İş mantığı Ul'den ayrılmıştır
  • Bakımı ve testi kolay
  • Bileşenleri yeniden kullanmak kolay
  • Gevşek bağlı mimari: MWM, uygulama mimarinizi gevşek bağlı hale getirir.
  • Görünüm'e başvurmaya gerek kalmadan hem görünüm modeli hem de Model katmanı için birim test senaryoları yazabilirsiniz.

MVC'nin Dezavantajı

İşte, MVC'nin eksileri/dezavantajları

  • İş mantığı Ul ile karıştırılır
  • Testleri yeniden kullanmak ve uygulamak zor
  • Resmi doğrulama desteği yok
  • Artan karmaşıklık ve verilerin verimsizliği
  • Modern kullanıcı arayüzü ile MVC kullanmanın zorluğu
  • Paralel programlama yapmak için birden fazla programcıya ihtiyaç vardır.
  • Birden fazla teknoloji bilgisi gereklidir.

MVVM'nin Dezavantajları

İşte, MVVM'nin eksileri/dezavantajları

  • Kontrolörde çok sayıda kodun bakımı
  • Bazı insanlar, MVVM mimarisinin basit kullanıcı arayüzleri için aşırıya kaçabileceğini düşünüyor.
  • Görünüm ve görünüm modeli arasında sıkı bağlantı sağlamaz