MVC nedir? MVC Nasıl Çalışır? MVC Tarihi

Mimari nedir?
Mimari, bir sistemin temel organizasyonu olarak tanımlanır. Yazılım geliştirme süreci kapsamlı fonksiyonel ve büyük projeler için karmaşık bir süreçtir. Bu süreçte herhangi bir dağınıklık ve tıkanma yaşamak istemiyorsanız, projenizi bir mimari ile yön vermelisiniz. Mimari desenler, yazılım mimarisinde sık karşılaşılan sorunlara genel ve yeniden kullanılabilir bir çözüm sunar. Eğer bir yazılım projesinde başarıyı elde etmek istiyorsanız doğru olan yazılım mimarisini kurmak zorundasınız. Model-View-Controller (MVC) en çok bilinen ve sık sık kullanılan şablondur.
MVC Tarihi
Model-View-Controller (MVC), ilk olarak 1970’lerde Trygve Reenskaug tarafından Smalltalk programlama dili için tanıtıldı(Class olarak sonrasında mimari üzerine Smalltalk-80). O zamanlar, yazılımlar için sadece kullanıcıdan veri almak için makul miktarda mimari gerekiyordu. Reenskaug, meseleyi controller tarafından ele aldı ve ekrandaki her bir kullanıcı için bir Model- View — Controller(MVC) üçlüsü oluşturdu.
Web teknolojileri 1990’larda ortaya çıktıkça, NeXT ve WebObjects(Java) aracılığıyla Model- View — Controller(MVC)’a olan ilgi arttı. 2000’lerde Struts ve Spring (Java), Django (Python), Rails (Ruby) ve ASP.NET MVC gibi sunucu tarafı(Client Side) web frameworkleri tarafından daha da popüler hale getirildi. MVC’nin uzun zamandır popüler olduğu geleneksel kurumsal ortamın dışında popülaritesini artırmıştır. MVC web çerçeveleri artık MVC olmayan web araç kitlerine göre büyük pazar paylarına sahiptir. Yani başlangıçta masaüstü için geliştirilmiş olmasına rağmen, MVC büyük programlama dillerinde Web uygulamaları için bir tasarım mimarisi olarak yaygın bir şekilde benimsenmiştir.
Nasıl Çalışır?
Bazı web MVC frameworkleri, neredeyse tüm model, view ve controller mantığını sunucuya yerleştiren ince bir client yaklaşımı kullanır. Bu durum karşımıza, Django, Rails ve ASP.NET MVC gibi çerçevelerle çıkar. Bu yaklaşımda, client controller’a istekleri veya formu gönderir ve ardından view’dan eksiksiz ve güncellenmiş bir web sayfası (veya başka bir belge) alır; model tamamen sunucuda mevcuttur.
Reenskaug ilk başlarda Model, View ve Controller’ları şu şekilde tanımladı:
Model — Modeller bilgiyi temsil eder. Bir model, tek bir nesne olabilir veya nesnelerin bazı yapıları olabilir.
View– View, modelinin (görsel) bir temsilidir. Normalde modelin belirli özelliklerini vurgular ve diğerlerini gizler. Dolayısıyla bir sunum filtresi görevi görür.
Controller– Controller, bir kullanıcı ile sistem arasındaki bağlantıdır. Ekran üzerinde uygun yerlerde kendilerini göstermeleri için ilgili View ‘leri düzenleyerek kullanıcıya girdi sağlar. Kullanıcıya menüler veya diğer komut ve veri verme yöntemlerini sunarak kullanıcı çıktısı için araçlar sağlar. Controller bu tür kullanıcı çıktılarını alır, bunu uygun mesajlara çevirir ve bu mesajları bir veya daha fazla görünüme iletir.
Burada MVC modelinin ilk web tarayıcısından çok önce icat edildiğini anlamanız gerekmekte. MVC modeli ilk olarak Smalltalk-80 sınıf kitaplığının bir parçası olarak uygulandı. Başlangıçta grafik kullanıcı arayüzleri (GUI’ler) oluşturmak için mimari bir model olarak kullanıldı.
Kaynaklar:
1. https://indepth.dev/posts/1071/the-history-of-model-view-presenter
2. https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
3. http://stephenwalther.com/archive/2008/08/24/the-evolution-of-mvc
4. https://www.horato.com/tr/post/yazilim-mimarisi-software-architecture-60