İçeriğe geç
parazade

MVC Nedir?

Yayın: · Son güncelleme:

MVC Nedir? Kısaca

MVC (Model-View-Controller), bir uygulamayı veri ve iş kuralları (Model), kullanıcıya görünen arayüz (View) ve ikisi arasındaki trafiği yöneten kontrolcü (Controller) olarak üç parçaya ayıran mimari desendir.

MVC nedir?
İçindekiler
  1. MVC nedir?
  2. Bir istek MVC'de nasıl ilerler?
  3. Nelere dikkat etmeli?

MVC nedir?

MVC, Model-View-Controller kelimelerinin kısaltmasıdır ve bir uygulamanın kodunu görevlerine göre üç bölüme ayırır. Amaç, veriyle ilgili kodun ekranla ilgili koda karışmamasıdır. Böylece arayüzü değiştirirken iş kurallarını bozma riski azalır.

  • Model: Veriyi ve iş kurallarını tutar. Veritabanından kayıt okur, doğrulama yapar.
  • View: Kullanıcının gördüğü kısımdır. HTML sayfası ya da mobil ekran olabilir.
  • Controller: Kullanıcının isteğini alır, uygun modeli çağırır ve sonucu hangi view'ın göstereceğine karar verir.

Bir istek MVC'de nasıl ilerler?

Bir e-ticaret sitesinde "siparişlerim" sayfasına tıkladığınızı düşünün. İstek önce controller'a gelir. Controller, sipariş modelinden sizin siparişlerinizi ister; model veritabanından örneğin son 10 siparişi getirir. Ardından controller bu listeyi sipariş view'ına verir ve view tabloyu oluşturup tarayıcıya gönderir.

Bu düzen sayesinde aynı modeli hem web sayfasında hem de mobil uygulamanın kullandığı bir API'de tekrar kullanabilirsiniz. Laravel, Django, Ruby on Rails ve ASP.NET MVC bu yaklaşımı benimseyen bilinen framework örnekleridir. Django kendi yapısını MTV (Model-Template-View) diye adlandırsa da fikir aynıdır.

Nelere dikkat etmeli?

En yaygın hata, controller'ı şişirmektir. İş kuralları controller'a yığıldığında dosyalar yüzlerce satıra çıkar ve test zorlaşır. Kuralları modelde ya da ayrı servis sınıflarında tutmak daha sağlıklıdır. MVC'yi öğrenmeye başlıyorsanız küçük bir yapılacaklar listesi uygulaması yazıp her dosyanın hangi katmana ait olduğunu not etmek iyi bir ilk adımdır.

Sıkça Sorulan Sorular

MVC sadece web için mi kullanılır?

Hayır. MVC ilk olarak masaüstü arayüzler için ortaya çıktı. Bugün web framework'lerinde çok yaygın olsa da mobil ve masaüstü uygulamalarda da kullanılır.

MVC ile MVVM arasındaki fark nedir?

MVC'de controller isteği yönetir. MVVM'de ise ViewModel, view'a veri bağlama (data binding) ile bağlanır ve arayüz verideki değişikliği kendiliğinden yansıtır.

İlgili terimler

MVVMMVVM (Model-View-ViewModel), arayüzü (View) veriden (Model) ayıran ve aradaki ViewModel katmanı ile veri bağlama sayesinde ekranın verideki değişiklikleri kendiliğinden göstermesini sağlayan mimari desendir.Katmanlı Mimari(Layered Architecture)Katmanlı mimari, uygulama kodunu sunum, iş mantığı ve veri erişimi gibi yatay katmanlara ayıran ve her katmanın yalnızca bir altındaki katmanla konuştuğu, en yaygın kullanılan yazılım mimarisi yaklaşımlarından biridir.FrameworkFramework, bir uygulamanın temel yapısını ve çalışma kurallarını hazır olarak sunan yazılım iskeletidir. Geliştirici bu iskeletin içine kendi kodunu yerleştirir; yönlendirme, veritabanı ve güvenlik gibi ortak işler framework tarafından karşılanır.Yazılım Mimarisi(Software Architecture)Yazılım mimarisi, bir yazılım sisteminin ana bileşenlerini, bu bileşenlerin birbiriyle nasıl iletişim kurduğunu ve sistemin hangi ilkelere göre büyüyeceğini belirleyen üst düzey yapı ve kararlar bütünüdür.HTMLHTML (HyperText Markup Language), web sayfalarının başlık, paragraf, bağlantı, görsel ve form gibi içerik yapısını etiketlerle tanımlayan ve tarayıcıların sayfayı nasıl göstereceğini belirleyen standart işaretleme dilidir.DjangoDjango, Python ile yazılmış, veritabanı yönetimi, kullanıcı girişi ve yönetim paneli gibi özellikleri hazır sunan açık kaynaklı bir web çatısıdır. Hızlı ve güvenli web uygulaması geliştirmek için kullanılır.RubyRuby, 1990'ların ortasında Japonya'da geliştirilen, okunabilir ve doğal dile yakın sözdizimiyle bilinen, yorumlanan ve nesne yönelimli bir programlama dilidir. En çok Ruby on Rails çatısıyla web geliştirmede kullanılır.