
MVC’nin açılımı Module View Controller yani Model Görünüm Denetleyicisidir. MVC bir tasarım kalıbıdır (Design Pattern). Web uygulamalarının büyük çoğunluğu ve bazı mobil uygulamalarda (IOS geliştiriciler Iphone uygulaması geliştirirken) kullanılır. Yazdığımız uygulamanın iş mantığı ile kullanıcı ara yüzünü birbirinde ayrıştıran uygulamanın birbirinden farklı amaçlara hizmet eden kısımlarının birbirinden ayrılmasıdır. Bu sebeple büyük çaplı projelerde projenin yönetiminin ve kontrolünün daha rahat sağlanabilmesi için tercih edilmektedir.
Spagetti kodlama, bütün kodların tek bir sayfada yer almasıdır. Yani bir noktada düzeltmemiz gereken bir şey olursa işleri çok karıştırır hatta kodun yanlış çalışmasına, hatalar almamıza sebep olabilir. MVC kodlama spagetti kodlamaya göre çok daha avantajlıdır. MVC yapısı ara yüz ve mantık kısmını birbirinden ayırır. Örneğin yapacağım görüntüleri HTML sayfaları viewi alarak, mantık kısmını controller olarak, verilerin işleyeceği yapıyı ise model olarak ayırabiliriz. Dünya üzerinde en çok kullanılan tasarım kalıbıdır.
Model iş mantığı ve veri işleme olarak kullanılır. Yani uygulamalarda kullanacak bütün verileri modeller kullanarak işleyebilir, ekleyebilir, düzenleyebilir, görüntüleyebilir ya da silebiliriz.
View ise kullanıcıların, ziyaretçilerin gördüğü sayfalardır.HTML, CSS, JavaScript vb. kodların tamamı viewlerdir.
Controller ise uygulamanın kontrol ve karar mekanizmasıdır. Hemen hemen bütün işlemler burada yapılır.
gibi bütün kararları controller verir. Yani aslında kodlarla ilgili bütün fonksiyonlar, bütün işleme değerleri ve belki de bütün koşullu ifadeler controller içerisinde yer alır.
. kullanıcı talepte bulunur
. talep ilk olarak controllera gider
. controller bu talebi değerlendirdikten sonra bilgileri view vasıtasıyla kullanıcıya geri döndürür
. kullanıcı son işlem olarak viewi görür ancak o viewe gidene kadar bütün işlemler arka planda controller tarafından gerçeklenir
Detaya inecek olursak
. kullanıcıdan taleplerde bulunur
.routing istemci’nin uygulamaya yaptığı isteği uygun controllera yönlendirir
. eğer bir bilgi işlenmesi gerekiyorsa controller bunu modela aktarır
. model bilgiyi geri gönderir
gönderilen bu bilgi işlendikten sonra view vasıtasıyla sonuç tekrar kullanıcıya gösterilir
Toparlayacak olursak kullanıcının isteğine karşılık çıktı üzerinde çok büyük kontrol sağlayabiliriz. Bu sayede her alana müdahale edebilir ve isteğe en uygun çıktıyı sağlayabiliriz. Ek olarak katmanların birbirinden ayrı olması test aşamasında büyük kolaylık sağlar.
MVC uzun yıllardır birçok framework ve programlama dilinde kullanılmakta ve olgunlaşmaktadır.ASP.NET MVC sayesinde .Net framework dilleri ile MVC pattern kullanılarak hızlı çalışan, test edilebilir, tekrar kullanılabilir parçaları olabilen web uygulamaları geliştirilebilmesi sağlanmıştır.