MVC ve MVVM – Aralarındaki Fark
MVC ve MVVM Arasındaki Temel Farklılıklar
- MVC framework'ü, bir uygulamayı Model, Görünüm ve Denetleyici olmak üzere üç ana mantıksal bileşene ayıran bir mimari desendir. Öte yandan, MVVM, işaretleme dili veya GUI kodu yardımıyla grafiksel kullanıcı arayüzünün 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 mimarisi, Denetleyici ile Görünüm arasında “birden çoğa” ilişki kurarken, MVVM mimarisi Görünüm ile Görünüm Modeli arasında “birden çoğa” ilişki tanımlar.
MVC nedir?
The MVC Çerçevesi uygulamaları üç ana mantıksal bileşene ayıran bir mimari desendir: Model, View ve Controller. Bu nedenle kısaltması MVC'dir. MVC'nin tam biçimi Model View Controller'dır.
Bu mimaride, bir bileşen bir uygulamanın belirli geliştirme yönlerini ele almak için oluşturulur. MVC, iş mantığını ve sunum katmanını birbirinden ayırır. Bu mimari desen esas olarak masaüstü grafiksel kullanıcı arayüzleri (GUI'ler) için kullanılır.
MVVM nedir?
MVVM mimarisi, işaretleme dili veya GUI kodu yardımıyla grafiksel kullanıcı arayüzünün 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üsüdür; bu, veri nesnelerini Modelden nesnelerin kolayca yönetilip sunulacağı şekilde ortaya çıkarmanın görünüm modelinin sorumluluğunda olduğu anlamına gelir.
MVC Kalıbı
Üç önemli MVC bileşeni şunlardır:
- Model: Tüm verileri ve ilgili mantığını içerir.
- Görünüm: 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:
Model
Model bileşeni verileri ve ilgili mantığı saklar. Denetleyici bileşenleri veya herhangi bir 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 yönetir ve veritabanına geri gönderir veya aynı verileri oluşturmak için kullanır.
Görüntüle
Görünüm, Uygulamanın veri sunumunu temsil eden kısmıdır. Görünümler, model verilerinden toplanan verilerle oluşturulur. Bir görünüm, Modelin çıktıyı kullanıcıya yeniden göndermesi için bilgi vermesini ister.
Görünüm ayrıca grafikler, diyagramlar ve tablolardan gelen verileri temsil eder. Örneğin, herhangi bir müşteri görünümü metin kutuları, açılır listeler vb. gibi tüm kullanıcı arayüzü bileşenlerini içerecektir.
kontrolör
Denetleyici, Uygulamanın kullanıcı etkileşimini yöneten kısmıdır. Denetleyici, kullanıcıdan gelen fare ve klavye girişlerini yorumlayarak Model ve Görünüm'ün uygun şekilde değişmesini bildirir.
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 ilgili görünümüne komutlar gönderir (Örneğin, belirli bir belgenin kaydırılması).
MVVM Kalıbı
İşte MVVM için bir kalıp:
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şiklikler yapmak için gözlemci desenini kullanır.
Gelin bu bileşeni detaylı olarak görelim:
Model
Model, verileri ve ilgili mantığı saklar. Denetleyici bileşenleri veya herhangi bir ilgili iş mantığı arasında aktarılan verileri temsil eder.
Örneğin, bir Controller nesnesi öğrenci bilgilerini okul veritabanından alacaktır. Verileri yönetir ve veritabanına geri gönderir veya aynı verileri oluşturmak için kullanır.
Görüntüle
Görünüm, HTML, CSS, jQuery vb. gibi kullanıcı arayüzü bileşenlerini ifade eder.
Desen görünümü, Denetleyiciden alınan verileri bir sonuç olarak görüntülemekten sorumludur. Bu Görünüm ayrıca Model (ler)i Kullanıcı Arayüzüne (UI) dönüştürü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. Ayrıca modelin çalıştırılmasından ve Görünümdeki olayların etkinleştirilmesinden de sorumludur.
MVC ve MVVM arasındaki fark Archidoku
İşte MVVM ve MVC arasındaki önemli farklar:
MVC (Model Görünümü Denetleyicisi) | MVVM (Model Görünümü ViewModel) |
---|---|
Denetleyici Uygulamaya giriş noktasıdır. | Görünüm, Uygulamaya giriş noktasıdır. |
Denetleyici ve Görünüm arasındaki bire birçok ilişki. | Modeli Görüntüle ve Modeli Görüntüle arasındaki bire birçok ilişki. |
Görünümün Denetleyiciye referansı yok | Görünümün Görünüm Modeline referansları vardır. |
MVC Eski Modeldir | MVVM nispeten Yeni bir Modeldir. |
Bu Modeli okumak, değiştirmek, birim testine tabi tutmak ve yeniden kullanmak zor | Karmaşık veri bağlamaları olduğunda hata ayıklama süreci karmaşıklaşacaktır. |
MVC Model bileşeni kullanıcıdan ayrı olarak test edilebilir | Ayrı birim testleri için kolaydır ve kod olaya dayalıdır. |
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 de tam kontrol sağlar.
- Test Odaklı Geliştirmeyi (TDD) destekler
- Bu mimari mantığın ayrılmasını sağlar
- SEO Dostu URL'ler için yönlendirmeye izin verir.
- Anlaşılabilir ve aranabilir URL'ler için eşleme teklifleri.
MVVM'nin Özellikleri
İşte MVVM mimarisinin özellikleri:
- MVVM, XAML ve INotifyPropertyChanged arayüzü gibi veri bağlama özelliklerine sahip masaüstü uygulaması için yazılmıştır.
- View-Model'de değişiklik yapmak istiyorsanız View-Model bir gözlemci modeli kullanır.
- MVVM modeli çoğunlukla şu kişiler tarafından kullanılır: WPF, Silverlight, nRoute vb.
MVC'nin Avantajları
İşte MVC'nin avantajları/artıları
- Yeni müşteri türü için daha kolay destek
- Çeşitli bileşenlerin geliştirilmesi paralel olarak gerçekleştirilebilir.
- Uygulamayı ayrı (MVC) birimlere bölerek karmaşıklığı önler
- Yalnızca web uygulaması isteklerini tek bir denetleyici kullanarak işleyen bir ön denetleyici modeli kullanır.
- Test odaklı geliştirme için en iyi desteği sunar
- Büyük web tasarımcıları ve geliştirici ekipleri tarafından desteklenen Web uygulamaları için iyi çalışır.
- Endişelerin temiz bir şekilde ayrılmasını sağlar (SoC).
- Tüm sınıflanmış 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 olanak tanır.
MVVM'nin Avantajları
İşte MVVM'nin artıları/faydaları
- İş mantığı Ul'dan ayrılmıştır
- Bakımı ve testi kolay
- Yeniden kullanımı kolay bileşenler
- Gevşek bağlı mimari: MVVM 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 dezavantajları
İş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 veri yetersizliği
- MVC'yi modern kullanıcı arayüzüyle kullanmanın zorluğu
- Paralel programlama yapabilmek için birden fazla programcıya ihtiyaç vardır.
- Birden fazla teknoloji bilgisi gereklidir.
MVVM'nin dezavantajları
Burada MVVM'nin eksileri/dezavantajları verilmiştir
- Denetleyicideki birçok kodun bakımı
- Bazı insanlar basit kullanıcı arayüzleri için MVVM mimarisinin aşırıya kaçtığını düşünüyor.
- Görünüm ve görünüm modeli arasında sıkı bir bağlantı sunmaz