MVC Yapısı Yazılım Mühendislerini yakından ilgilendiren bir yazılım mimari yapısıdır. Model, View ve Controller’dan gelen MVC 1979 yılında Tygve Reeskaug tarafından oluşturulmuş ve yazılımda bir çok projede kullanılan bir yapı haline gelmiştir. MVC Nedir surusunu gelin biraz daha detaylandıralım.
Yazılımda karmaşık yapılar pek sevilmez. Her şey düzenli ve sade bir yazım ile kod yazılırsa daha anlaşılır ve kolay düzenlenebilir olur. Özellikle son dönemlerde MVC yapısı, Microsoft’ta ASP.NET teknolojisi ile birleştirilmesi sonucunda popülerliği artan bir yapı olmuştur.
MVC birbirinden farklı üç yapıdan oluşmaktadır. Bu yapılar birbirlerinden etkilenmeden bağımsız çalışırlar. Çoğunlukla büyük projelerde kullanılması da az evvel belirttiğim üzere proje yönetiminin ve kontrolünün daha rahat sağlanabilmesi için tercih edilmektedir. MVC ile oluşturulan projeler bu sayede çoğu kişi tarafından rahatça okunabilmektedir.

Model
MVC’de Model, iş mantıcının yürütüldüğü ya da başladığı alandır diyebiliriz. Doğrulama yani validation ve veri erişimi data access işlemleri de bu bölümde gerçekleştirilmektedir.
Model tek bir kavram olarak gözükebilir fakat model içinde de birden fazla katmana yer verilebiliyor. Özellikle büyük çaplı projelerde bunu görmek mümkündür.
View
View, projede arayüzlerin oluşturulduğu yerdir. Kullanıcılara sunulacak olan HTML kısmı burada yer almaktadır. Yazılım dillerine göre dosya uzantıları da farklılık göstermektedir. Projelerde dikkat edilmesi gereken en önemli nokta ise, klasörlemedir. Yani şöyle özetleyelim, bazı yazılımcılar aynı dosyada HTML, CSS ve Javascript dosyaları aynı klasör içinde kullanıyorlar. Bazılarıda HTML, CSS, Javascript diye ayrı klasör içinde tutuyolar.
View, kullanıcılardan alınan istekleri controller’a göndermektedir.
Controller
MVC’de projenin süreçlerini takip eden bölüm controller’dır. Model ve view arasındaki bağlantılar kurulmaktadır. Köprü görevi görmektedir. Kullanıcı istekleri controller’da değerlendirilmektedir. İsteğe bağlı olarak hangi işlemlerin yapılacağı ve hangi kullanıcıya hangi view’ın döneceği (response) belirtilir.
MVC Çalışma Prensibi
Microsoft’un resmi web sitesine buradan erişebilirsiniz.
HTTP Request: Kullanıcının MVC yapısını görmek istemesi bir istek (request) tir. Bu istek HTTP üzerinden IIS tarafından alınır. Yapılan her istek sunucu tarafından bir yanıtla son bulur.
Routing: İstek yapıldığında yanıt UrlRoutingModule HTTP Module tarafından durdurulur. URM(UrlRoutingModule) bir isteği durduğu zaman, gelen istek RotueTable’dan hangi Controller üstüne alacağına karar verir.
Controller: Route tablosundan gelen route bilgisine bağlı olarak Controller hangi işlemi çalıştıracaksa View çalıştırılır. View, Controller aracılığıyla render edilemez geriye ViewResult ile döndürülür.
ViewResult: View’i render etmek amacıyla aktif View Engine’i çağırır.
ViewEngine: CSHTML dosyası oluşturulduğunda içindeki scriptler, Razor View Engin tarafından ASP.NET API’lerini sayfaları HTML’e çevirmek amacıyla kullanır.
View: View Engine tarafından gelen HTML’e dönüştürülen kodlar kullanıcıya sunulmaktadır.
Response: HTTP üzerinden View işlemleri kullanıcıya gösterilir.
Konu ile alakalı diğer açıklamamız olan “C# ASP.NET MVC Nedir” içeriğimize göz atabilirsiniz.