MVC Nedir? Neden Kullanılır?

02 Ekim 2015 2 dk okuma süresi 6 okunma
MVC bir linkin, bir sınıfın metodu ile ilişkili olduğu web geliştirme frameworküdür. Yani http://kadir.xyz/blog linki kod tarafında blog sınıfının listeleme metodu ile ilişkilidir.

MVC (Model-View-Controller) uygulamanın iş katmanı (business logic) ile kullanıcı arayüzünü (user interface/ui) birbirinden ayıran ve farklı amaçları olan kısımların birbiri ile karışmasını engelleyen bir mimaridir. Ve buna Seperation Of Concern denir. Yani birbirinden alakasız herşey ayrılır.

Model

Veri işlemlerinin ve iş kurallarının olduğu katmandır. Genellikle class'lar şeklinde tutulur (veritabanı tabloları, kolon ve bilgileri, iş kuralları ve doğrulama gibi kurallar). Veri katmanını uygulamadan izole eder.

View

UI'ın kendisidir, yani son kullanıcıya verilerin nasıl gösterileceğinin tanımlandığı katmandır.

Controller

Model ve View arasındaki iletişimi sağlayan katmandır. Controller'a model veya view'in sorumlulukları yüklenmemelidir.

MVC Çalışma Mantığı

Son kullanıcı browser üzerinden (View) istek yaptığında bu istek ilgili controller tarafından karşılanır. Controller ihtiyacı olan model ve bileşenlerini çağırır ve model'den gerekli cevabı bekler. Model'den cevap geldikten sonra bu cevabı tekrar View'a gönderir ve son kullanıcıya yapmış olduğu isteğin cevabını gösterir. Bu mantığı aşağıdaki örnek ile daha iyi anlayabilirsiniz.

Imdb sayfasında gezindiğinizi varsayın. Matrix yazdınız ve arama butonuna bastınız. Bu işlemi yaptığınız yer View. Arama ile ilgili bir controller var. Controller yaptığınız aramayı alıyor ve diyor ki birisi bana bir arama isteğinde bulundu. İlgili anahtar kelimeyi (Matrix) alıyor ve film'ler ile ilgili olan tüm bilgilerin tutulduğu Model ile iletişim kuruyor ve diyorki birisi şu şu kelime ile film arıyor, bana bu film ile ilgili detayları ver. Model ilk olarak film ile ilgili class'a gidiyor. Bu class'ta film bilgileri (başlık, yayınlanma yılı, yapımcı firma, yıl, puan vb.) ile beraber listeleme, arama, silme gibi metodlar bulunur. Model, arama ile ilgili metodunu çalıştırıyor ve veritabanından gelen bilgiyi Controller'a geri iletiyor ve al sana arama yaptığın film ile ilgili tüm detayları veriyorum. Controller Model'den aldığı bilgiyi tekrar View'a aktarıyor ve View'de son kullanıcıya bilgileri göstermiş oluyor.

MVC Avantajları

  • Çok katmanlı bir yapı sunar (n-tier), iş katmanı ve kullanıcı arayüzü birbirinden ayrı olduğundan temiz ve okunabilir kod yazmanızı sağlar. Bu nedenle de hem daha hızlı geliştirme yapılır hem de kodların yeniden kullanılmasına olanak sağlanır.
  • Arayüz değişiklikleri iş katmanından bağımsız olarak yapılabilir.
  • Hata ayıklama daha kolaydır ve TDD (test odaklı geliştirme) olan sunar.
  • Routing yapısı sayesinde Seo için avantaj sağlar.
Yazılarıma abone olmak ister misiniz?
Spam yapılmaz, sadece bildirim amaçlıdır. İstediğiniz zaman abonelikten çıkabilirsiniz.
İlginizi çekebilecek diğer yazılar.
İnternet üzerindeki birçok bilgi malesef çöp. Çöpten kasıt faydasız anlamında değilde aynı içeriğin 3-5 kelimesinin değiştirilerek tekrar yayınlanmasıdır. Aramalarda üst sıralarda çıkmak için mutlaka kaliteli içeriğe sahip olmak gerekir. Bu yazı size nasıl kaliteli içerik yazmanız gerektiğini gösterir.

Fonksiyonel programlama nedir, fonksiyonel programlamaya kısa bir giriş

Günümüz şartlarında motivasyon ve üretkenlik çok önemlidir. Gün içerisinde birçok kez motivasyonunuzu kaybedebilirsiniz fakat bunu geri kazanmanın ve konsantre olmanın birçok yolu var.