Model-View-Controller (MVC)
MVC yani Model-View-Controller, verinin farklı görselleştirme yöntemleriyle kullanıcıya sunulduğu, uygulamaların geliştirilmesinde kullanılan bir yazılım kalıbıdır.
Mimari desen veya tasarım deseni olarak kabul edilen MVC (Model-View-Controller), yazılan uygulamanın iş mantığı ile kullanıcı arayüzünün, farklı hedefleri olan kısımlarının birbirinden ayrılmasını sağlar.
Uygulama geliştirmede önemli bir yere sahip olan MVC, milyonlarca verinin olduğu karmaşık uygulamalarda verileri somutlaştırarak ve kodları birbirinden ayırarak geliştirmeyi daha kolay hale getirir. Masaüstü, web ve mobil uygulamaların hepsinde kullanılabilir. Nesne yönelimli programlama ile çalışabilir.
Çoğu kişi MVC yaklaşımını, Asp.Net MVC Framework’u ile karıştırır. Ancak MVC yaklaşımı, Asp.Net MVC Framework’unden önce çıkmıştır. Sadece popülerliği Asp.Net MVC ile beraber daha da artmıştır. MVC mimarisi ilk kez 1979 yılında Trygve Reenskaug tarafından tanımlanmıştır. Daha sonra Smalltalk programlama dili üzerinde tanıtılmıştır. Günümüzde ise MVC modeli, modern web uygulamalarında yaygın olarak kullanılmaktadır.
MVC Çalışma Mantığı
Mvc mimarisi üç parçadan oluşur. Bunlar Model, View ve Controller olarak parçalara ayrılır.
MVC mimarisi şu şekilde çalışır: Tarayıcıdan View sayfasına istek yapıldığında, View katmanı Controller’a gider. Controller isteği gerçekleştirmek üzere Model katmanına gider. Daha sonra Model'den alınan veriler, View’a gönderilerek istenilen verilerin görüntülenmesi sağlanır. En basit anlamda MVC, bir uygulamayı üç alana ayırma çabasıdır.
- Model: MVC mimarisi içinde verilerin tutulduğu, veri tabanına erişimin sağlandığı, tüm data işlemlerinin gerçekleştiği yer model katmanıdır. Veriler burada işlenir ve sorguları burada yapılır. Diğer yandan somut nesnelerin bilgisayar ortamda anlamlaştırılması yani modellenmesi anlamına gelir. Bunlar veri, dosya veya basit nesneler de olabilir. Örneğin bir müşteri web sitesine kayıt olduğunda onunla ilgili isim, yaş, cinsiyet ve konum gibi bilgiler modelde tutulur.
- View: View, Model katmanının görselleştirilmiş, kullanıcının uygulamayı gördüğü halidir. Kullanıcının görebileceği her şey View katmanındadır. Metin kutuları, menüler gibi tüm UI bileşenlerini içerir. Html, Css, Javascript gibi arayüz teknolojilerinden yararlanır.
- Controller: Model ve View katmanları arasındaki işlemleri gerçekleştirir. Yani View katmanından aldığı veri tabanı işlemleri ve hesaplamalar gibi tüm işlemleri Model katmanına taşır. Bir nevi arada köprü görevi görür.
MCV Ne İşe Yarar?
"MVC nedir?" sorusuna verilecek cevap, kullanıcı arabirimleri geliştirmek için yaygın olarak kullanılan bir yazılım tasarım modelidir. Peki ya MCV ne işe yarar?
- MVC modeli kullanılarak büyük projelerdeki kodların okunabilirliği kolaylaştırılır. MVC modeli, kodların güncellenmesine ve üzerine ekleme yapılmasına olanak tanır.
- MCV, masaüstü, web ve mobil uygulamalar tasarlamak için gerekli olan temel parçaları sağlar.
- Frontend, Backend ve Database gibi projelerin farklı kısımlarının birbirine karışmasını engeller.
- Kodun test edilmesini sağlar ve böylece hata oranını azaltılır. MVC modeli farklı amaçtaki kodları gruplandırarak, kodu daha okunabilir hale getirir. Tüm sınıflar ve nesneler birbirinden bağımsızdır.
- MVC ile yazılan kodlar farklı projelerde kolaylıkla kullanılır.
MVC Web Frameworkler Hangileridir?
Popüler ve yaygın olarak kullanılan MVC Frameworkleri şunlardır:
- Ruby on Rails
- Django
- CherryPy
- Spring MVC
- Catalyst
- Rails
- Zend Framework
- Fuel PHP
- Laravel
- Symphony