MVC, yazılım geliştirme sürecinde kullanılan bir mimari desendir ve Model-View-Controller kelimelerinin kısaltmasıdır. Bu desen, bir uygulamayı üç ana bileşene ayırarak, işlevselliği ve kod düzenini artırmayı hedefler. MVC mimarisi, özellikle web uygulamalarında sıkça tercih edilir. İşte bu üç bileşenin detaylı açıklaması:
Model
- Görevi: Uygulamanın veri katmanını temsil eder. Veri ile ilgili iş mantığını ve işlemleri içerir.
- Özellikleri:
- Veritabanından veri çeker, saklar ve işler.
- Genellikle veri doğrulama kuralları içerir.
- Kullanıcı arayüzüyle doğrudan bir ilişkisi yoktur.
- Örnek: Ürünlerin listelendiği bir e-ticaret sitesinde, “Ürün” sınıfı bir modeldir.
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
View
- Görevi: Kullanıcıya gösterilen arayüz katmanını temsil eder. HTML, CSS ve JavaScript gibi dilleri kullanarak kullanıcıya veriyi sunar.
- Özellikleri:
- Modelden gelen veriyi kullanıcıya anlamlı bir şekilde sunar.
- Veri işleme veya mantık içermez; sadece görüntüleme işlemi yapar.
- Örnek: Kullanıcıya ürün listesini bir tablo veya kart düzeninde göstermek.
@model IEnumerable<Product>
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Price</th>
</tr>
@foreach (var product in Model)
{
<tr>
<td>@product.Id</td>
<td>@product.Name</td>
<td>@product.Price</td>
</tr>
}
</table>
Controller
- Görevi: Model ve View arasında bir köprü görevi görür. İstemciden gelen istekleri işler, modelden veri alır ve bu veriyi View’a gönderir.
- Özellikleri:
- Kullanıcı isteklerini alır ve uygun cevabı oluşturur.
- İş mantığını içermez; iş mantığı Model’de yer alır.
- Örnek: Kullanıcının “Ürünler” sayfasını ziyaret ettiğinde, veriyi modelden çekerek View’a gönderir.
public class ProductController : Controller
{
public IActionResult Index()
{
var products = new List<Product>
{
new Product { Id = 1, Name = "Laptop", Price = 1000 },
new Product { Id = 2, Name = "Phone", Price = 500 }
};
return View(products);
}
}
MVC’nin Avantajları
- Kodun Ayrıştırılması: İş mantığı (Model), kullanıcı arayüzü (View) ve kontrol (Controller) birbirinden ayrıldığı için kod düzeni korunur.
- Kolay Bakım ve Geliştirme: Farklı katmanlar bağımsız olduğu için bakım ve güncellemeler kolaylaşır.
- Yeniden Kullanılabilirlik: Model ve View bağımsız olduğu için aynı model farklı View’larla kullanılabilir.
- Test Edilebilirlik: Her katman bağımsız test edilebilir hale gelir.
oku 🙂 ASP.NET Core MVC Örneği