MVC Nedir? Basit ve Net Şekilde MVC Yapısı Anlatım
MVC 1979 yılında yazılım alanında kullanılmaya başlanan önemli ve kullanışlı bir mimari (pattern)'dir. Microsoft, MVC pattern'ini .NET'e yıllar sonra eklemiştir, yani sanıldığı gibi MVC .NET'e ait bir yapı değildir.
MVC Model-View-Controller kısaltmasıdır, her bir kelime farklı katmanı ifade eder. Şimdi bu katmanları tanıyalım.
MODEL:
Projede kullanılan içerikleri, verileri temsil etmektedir. Verilerin nasıl işleneceği yani mantığı burada tutulur. Genel olarak Database ver alma - gönderme işlemlerinin yapılmasında kullanılır. Tabi daha farklı kullanımları da var fakat genel basit kullanımı bu şekildedir.
VIEW:
En basit anlatımı ile kullanıcıların gördüğü sayfadır. Yani web sitemizin tasarımı. HTML, CSS, JS vb. arayüz teknolojileri burada kullanılır ve görünür.
CONTROLLER:
Model ve View arasındaki veri alışverişi, getir götür işlerini yapan katmandır. Metotlar, fonksiyonlar, değişkenler buradan çağırılır ve kullanılır. Yani özetle Kullanıcıların View üzerinden yaptığı işlemleri Model'e götürür, Model'den aldığı verileri de tekrar View'e götürerek kullanıcıya sunar.
ROUTES:
Routes (Routing) kısaca projenizin URL yapısını kurguladığınız yerdir. Anlaşılabilirlik ve SEO açısından uygun bir proje için buradan gerekli ayarları yapabilirsiniz, örnek vermek gerekirse "www.siteadi.com/yazidetay?id=58" gibi karmaşık bir kullanım yerine "www.siteadi.com/yazilar/mvc-nedir" şeklinde anlaşılır bir yönlendirme yapmayı sağlar.
Peki Neden MVC Tercih Edilmeli? Başlıca Avantajları Nedir?
- Proje Geliştirmeyi Hızlandırır: Projede bulunan katmanlar birbirinden ayrı olduğu için eş zamanlı çalışma yapılabilir ve bu katmanlar kolayca birleştirilir.
- Düzenli, Anlaşılır ve Bağımsız: En büyük avantajlarından biri de tasarım ile kodun birbirine karışmaması. .NET'te tasarım sayfasının arkasına (Code-Behind) kodlama işlemi yapıyorduk, MVC ile ise Modelleme yapılır ve Controller'a metotlar yazılır. Yanı kodlar ile tasarım birbirinden bağımsız olur, böylece sayfa tasarımını değiştirmek gerektiğinde kod işleyişini değiştirmeye gerek kalmayacak. Vakitten kazanıyor, karmaşadan kurtuluyor ve az kod ile çok iş yapıyoruz.
- Performans: .NET'te bulunan ViewState, durumları muhafaza etme mekanizması client-server arası transferi büyük boyutlara ulaştırıyor ve bu durum oldukça büyük performans kaybına yol açıyor, bu özellik MVC'de yerini ViewBag, TempData, ViewData taşıyıcılarına bırakmıştır. Bu sayede Controller - View arasında bulunan veri alışverişi daha basite indirgenmiş, oldukça hızlı bir yapıya kavuşturulmuştur.
- Test Etmek Kolaydır: Katmanların birbirinden ayrı olması ve Test Driven Development işlemini kolaylaştıran yapısı ile test edilebilir bir proje geliştirilebilir.
MVC nedir sorusunu kısa ve net bir şekilde cevapladık, bundan sonraki makalelerde Model - View - Controller hakkında daha detaylı bilgi ve örneklere yer verecek ve adım adım MVC öğrenmeye devam edeceğiz.