Yazılım

MVC Nedir? MVC Avantajları Ve Dezavantajları Nelerdir ?

Yazılım dünyasında çoğunlukla ismini duyduğumuz MVC nedir, nasıl oluşmuştur, avantajları ve dezavantajları nelerdir?

MVC NEDİR?

MVC, adını Model-View-Controller katmanlarının baş harflerinden alan bir tasarım düzenidir. MVC, yazılan uygulamanın iş katmanıyla kullanıcı arayüzünü (user interface) birbirinden ayıran böylece uygulamanın farklı amaçlar için çalışan kısımlarında karışıklığı önleyen bir yazılım mimarisidir. Masaüstü, web veya mobil uygulamalara uyarlanarak kullanılabilir fakat genellikle web projelerinde kullanılmaktadır. MVC, yazılım mühendisliğinde önemli bir yere sahip architectural patterns (yazılım mimari desenleri)’ın bir parçasıdır.

MVC’NİN TARİHÇESİ

MVC, 1979 yılında Norveçli bilgisayar uzmanı Tygve Reeskaug tarafından oluşturulmuş ve yazılım gelişmede birçok projede kullanılmıştır. MVC modeli ilk olarak 1987 yılında Smalltalk programlama dilinde tanıtıldı. Son dönemlerde Microsoft’un MVC desenini ASP .NET teknolojisi ile birleştirmesi ile popülaritesi daha da artmıştır.

MVC ile ilgili en yaygın yanlış bilgi, MVC’nin Microsoft tarafından çıkartıldığı düşüncesidir. Yukarıdaki paragrafta da bahsettiğim üzere, MVC’nin ASP .NET’e entegre edilmesinden önce bu deseni bir çok .NET yazılım geliştiricisi bilmemekteydi, bilse de kullanım çok azdı.

MVC HANGİ DİLLER İLE KULLANILABİLİR?

MVC, Microsoft ile adını daha fazla duyurmuş olsa da kendini herhangi bir dile bağımlı değildir.

Nedir Bu Model, View, Controller ?

MODEL NEDİR?

  • İş mantığı (Business Logic) bölümüdür.
  • Uygulamada kullanılacak olan nesneleri temsil eder. Uygulamanın kullanacağı veri burada şekillendirilir.
  • Tek katmandan oluşabileceği gibi, birden fazla katmanı da içinde barındırabilir.
  • Controller’den gelen değerleri işler ve geriye döndürür. Model katmanında herhangi bir output işlemi yapılmaz.
  • Bir örnek verecek olursak projemizdeki Kişiler tablosuna karşılık gelir. Tablo sütunlarını tutar, kişi bilgilerine ihtiyaç duyduğumuz zaman bize bilgileri yollar, kişinin e-posta adresini değiştirmek istediğimizde bize imkan verir ve güncelleme yapılır.

VIEW NEDİR?

  • Veriyi göstermekten sorumlu olan katmandır, kullanıcı arayüzünü temsil eder.
  • Web uygulamalarında tarayıcı tarafından gösterilen HTML sayfasıdır.

CONTROLLER NEDİR?

  • Adından da anlaşıldığı üzere algoritmayı ve uygulamanın işleyişini yöneten karar mekanizmasıdır.
  • Model ve View arasındaki köprü görevini üstlenir.
  • View katmanından gelen istekleri (request) Model’e aktarır, işlemlerini gerçekleştirir ve sonucu tekrar View’e aktarır.

ÇALIŞMA MANTIĞI

Bir MVC projesi çalıştırıldığında kullanıcıya tarayıcı ekranında View’leri gösterir. Kişiler tablosuna ait kişileri listelemek için Listele butonuna tıkladığımızı düşünelim. Kullanıcının View üzerinden yaptığı bu istek Controller’a aktarılır. Controller isteği gerçekleştirmek için Model’e gider ve burada gerekli işlemleri yapar. Model’den aldığı listeyi View’e getirir ve View aracılığıyla kullanıcıya gösterilir.

MVC KULLANMANIN AVANTAJLARI NELERDİR?

  • Kullanıcıya sunulacak kodlar (HTML, CSS, JavaScript vs.) sistemin çalışmasını sağlayan mantıksal kodları birbirinden ayırarak temiz ve düzenli kod yazmamızı sağlar.
  • Kodlarda daha kolay optimizasyon yapılmasına, genişletilmesine ve yeniden kullanmaya olanak sağlar.
  • Ekip projelerinde görev paylaşımını ve kod okunabilirliğini arttırır ve ekip çalışmasına katkıda sağlar.
  • Front-End ile Back-End ayrı olduğundan kullanıcı arayüzünde yapılmak istenen bir değişiklik iş mantığı kısmından bağımsız yapılır.
  • Hata ayıklamayı ve kodu test etmeyi kolaylaştırır.
  • /controllerName/functionName şeklinde sayfalara ulaşma imkanı sunar.
  • Kodlar farklı projelerde daha kolay kullanılabilir.

MVC KULLANMANIN DEZAVANTAJLARI NELERDİR?

MVC bize birçok avantaj sunsa da, bazı dezavantajları da vardır. 

  • Karmaşıklık: MVC, uygulamanın bileşenlere ayrılmasını ve her birinin belirli bir sorumluluğu olmasını gerektirir. Bu, küçük veya basit projeler için gereksiz karmaşıklık yaratabilir.
  • Artan Dosya Sayısı: MVC uygulamaları genellikle çok sayıda dosyaya sahiptir. Model, View ve Controller her biri ayrı dosyalarda bulunur ve bu, uygulama projesinin yönetimini karmaşıklaştırabilir.
  • Öğrenme Zamanı: MVC tasarım desenini anlamak ve uygulamak, özellikle yeni başlayanlar için belirli bir öğrenme zamanı gerektirebilir. Bu tasarım desenini etkili bir şekilde kullanmak için deneyim ve anlayış gerekebilir.
  • Ayrım Hatası: MVC tasarımı gereği Model, View ve Controller’ın kesin bir ayrımı olmalıdır. Ancak bazı durumlarda bu ayrımı tutturmak zor olabilir ve karmaşık bir uygulamada bu ayrımın sürdürülmesi zorlaşabilir.

EN POPÜLER MVC WEB FRAMEWORKLER NELERDİR?

  • ASP .NET Core
  • Ruby on Rails
  • Django
  • CherryPy
  • CodeIgniter
  • Laravel

ASP.NET CORE MVC PROJESİ OLUŞTURALIM

ASP.NET ve Web Geliştirme Paketini Yükleme

Öncelikle eğer Visual Studio’da ASP.NET ve Web Geliştirme için gerekli paketi yüklemediysek onu yüklemeliyiz.

Bu işlemden sonra başlayacak olan indirme sonrasında ASP.NET Core uygulamaları geliştirmeye başlayabilirsiniz.

PROJEYİ OLUŞTURMA

Visual Studio uygulamasına girdikten sonra “Create a new project” tıklıyoruz.

ASP.NET CORE MVC aramamızı yaptıktan sonra ASP.NET Core Web App (Model-View-Controller) seçeneğini seçiyoruz.

Gerekli proje adı ve klasör bilgilerimizi girdikten sonra ilerliyoruz.

Framework kısmı zamanla değişebilir. Mart 2024 itibariyle .NET 7 ve 8 sürümleri en güncel sürümlerdir.

ASP.NET CORE MVC KLASÖR YAPISI

  • Connected Services : Projemizde bağlanılan veri tabanları ve servisleri gösterir.
  • Dependencies : Framework ekleyebileceğimiz ve görüntüleyebileceğimiz kısımdır.
  • Properties : Projemizin ayarlarının yapıldığı kısımdır. Framework değiştirme, .exe ikon değiştirme vs.
  • wwwroot : Bizim css, js ve kütüphane dosyalarımızın tutulduğu klasördür.
  • Controllers : Controller’larımızın tutulduğu klasör.
  • Models : Modellerimizin tutulduğu klasör.
  • Views : HTML dosyalarımızın tutulduğu klasör.
  • appsettings.json : Projemizi derlemek istemediğimiz zamanda değişkenlerimizi tuttuğumuz json dosyasıdır.
  • Program.cs : Projemizde olan detaylı ayarları tutar. Https bağlantısı, veri tabanı bağlantısı vs.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Göz Atın
Kapalı
Başa dön tuşu