MVC Nedir?

Bu yazımda MVC mimarisinden bahsetmek istiyorum.

MVC, Model, View ve Controller katmanlarından oluşan N-Tier Architecture yaklaşımını benimsemiş çok katmanlı mimari desenidir.

Amaç katmanlı mimarilerde olduğu gibi proje içerisindeki katmanların birbirinden ayırarak projenin yönetilebilmesinin kolaylaşması sağlanır. Proje içerisinde birbirine bağlı olup fiziksel olarak ayrı yerlerdedir. Bu şekilde kod karmaşasından kurtuluruz.

Neden MVC ?
  • Web Form'larda bulunan View State kavramı yoktur bu sayede uygulamamızda performans artar.(Performance)
  • Yeniden kullanılabilirlik sağlanmış olur.(Reusability)
  • Okunabilir kod yazarak projeyi yönetebilmemiz kolaylaşır.(Readability)
  • Projemizde oluşan hatayı aramak için ilgili katmana gideriz bu şekilde hatayı ayıklamamız kolaylaşır ve bize proje geliştirmede zaman kazandırır.
  • SEO'ya uygun url tasarımı oluşturabiliriz ve uygulamamız arama motorlarında daha kolay bulunabilir.(Adres - İçerik İlişkisi)
  • MVC'deki katmanlar başka projelerde kullanılabilir.

MVC'deki katmanlara gelecek olursak

Model : Veri kaynağının,veritabanı,bulunduğu bölümdür. Verilerin validasyonu da bu alanda yapılır. Code First'te tablo için class'lar(Entity) burada oluşturulur. Katmanlı mimarilerde, Business Logic Layer(BLL) katmanına karşılık gelir ve uygulamanın iş katmanıdır. Veri işlemleri burada gerçekleşir.

View: Uygulamanın arayüz kısmıdır. Kullanıcının gördüğü kısımların kodları bu katmanda yapılır.  Katmanlı mimarilerde, Presentation Layer(PL) katmanına karşılık gelir.

Controller: Model ile View arasında köprü görevini görür. İstemciden gelen veriyi değerlendirme, işleme ve sonrasında Model'e aktarma işlemini yapar. Model'den aldığı veriyi View'e aktarır Model ile View arasında iletişim olmaz. Katmanlı mimarilerde, Data Access Layer(DAL) katmanına karşılık gelir.

MVC çalışma sırası
  1. İstemciden istek gelir (Request) 
  2. Controller, bu isteği işler, değerlendirir. Veriyi Model katmanına iletir.
  3. Model, varsa veriyi doldurur. Veri tabanından isteğe göre sonuç oluşturur ve Controller'a aktarır.
  4. Controller, Model'den aldığı veriyi View katmanına iletir.
  5. View istemciye sonucu döndürür.
  6. İstemci sonucu görüntüler.(Response)
Aşağıdaki görselde çalışma mantığını daha iyi anlayabiliriz.







Yorumlar