Model-View-Controller (MVC), yazılım mühendisliği’nde kullanılan bir “mimari desen”dir. Kullanıcıya büyük miktarda verinin sunulduğu karmaşık uygulamalarda veri ve gösterimin soyutlanması esasına dayanır. Böylece veriler (model) ve kullanıcı arayüzü (view) birbirini etkilemeden düzenlenebilir. Model-view-controller, bunu controller adı verilen ara bileşenle, veri gösterimi ve kullanıcı etkileşiminden, veri erişimi ve iş mantığını çıkarma suretiyle çözmektedir.
Alışılmış metodda veritabanı işlemleri, Aracı Fonksiyonlar, Çıktı ve Sonuç tek bir arayüzde işlenirken MVC’de bir uygulamanın kullanıcı arayüzü 3 ana bölüme ayrılır:
• Model: Data işlemlerinin ve iş kurallarının tanımlanır, class’lar oluşturulur
• View: Kullanıcı arayüzünün nasıl gösterileceği tanımlanır
• Controller: Kullanıcı arayüzündeki işlemler ile data ve/veya spesifik katman arasındaki iletişim sağlanır.
1979 yılında bu tasarım ortaya çıkmış olsa da günümüzde Microsoft’un ASP.NET MVC Framework’u geliştirmesi ile çoğu kişi için MVC denince akla ASP.NET MVC Framework gelmektedir. Oysa Microsoft şirketinin henüz yeni kurulmuş olduğu dönemlerde bu tasarım kalıbı vardı.
MVC mantığı yazılımcıyı birçok gereksiz kod karmaşasından kurtardığı gibi SEO konusunda ve güvenlik konusunda birçok kolaylığı da yanında getirmiştir.