ASP Genel VMware

ASP.NET Core ile MVC Yapısını Derinlemesine Anlamak

ASP.NET Core ile MVC Yapısını Derinlemesine Anlamak

ASP.NET Core ile MVC Yapısını Derinlemesine Anlamak

ASP.NET Core, Microsoft tarafından geliştirilen ve açık kaynak kodlu bir web uygulama geliştirme çerçevesidir. Bu makalede, ASP.NET Core ile Model-View-Controller (MVC) yapısını derinlemesine inceleyeceğiz. MVC, web uygulamalarını yapılandırmak ve yönetmek için yaygın olarak kullanılan bir tasarım desenidir. ASP.NET Core’un MVC yapısı, geliştiricilere güçlü ve esnek bir yapı sunar. Bu yazıda, ASP.NET Core MVC’nin temel bileşenleri, veri yönetimi, routing, ve performans optimizasyonu gibi konuları ele alacağız.

1. ASP.NET Core MVC Yapısının Temel Bileşenleri

ASP.NET Core MVC, üç ana bileşenden oluşur: Model, View ve Controller. Bu bileşenler, uygulamanın iş mantığını, kullanıcı arayüzünü ve kullanıcı etkileşimlerini yönetir.

1.1 Model

Model, uygulamanın veri katmanını temsil eder. Veritabanından gelen veya kullanıcıdan alınan verileri içerir. Model, iş mantığı ve veri doğrulama işlemlerini gerçekleştirmek için de kullanılır.

“`csharp
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
“`

Yukarıdaki kod, bir Product modelini temsil eder. Bu model, bir ürünün ID, adı ve fiyatı gibi özelliklerini içerir.

1.2 View

View, kullanıcıya sunulan arayüzü temsil eder. HTML, CSS ve JavaScript kullanarak kullanıcıya verileri gösterir. Razor View Engine, ASP.NET Core MVC’de yaygın olarak kullanılır.

“`html
@model IEnumerable

Product List

    @foreach (var product in Model)
    {

  • @product.Name – @product.Price
  • }

“`

Bu Razor View, bir ürün listesini kullanıcıya sunar. Modelden gelen verileri döngü kullanarak HTML içinde gösterir.

1.3 Controller

Controller, Model ve View arasında köprü görevi görür. Kullanıcıdan gelen istekleri işler, uygun Model’i seçer ve View’a veri gönderir.

“`csharp
public class ProductController : Controller
{
public IActionResult Index()
{
var products = new List
{
new Product { Id = 1, Name = “Laptop”, Price = 1500 },
new Product { Id = 2, Name = “Phone”, Price = 800 }
};

return View(products);
}
}
“`

Yukarıdaki Controller, bir ürün listesi oluşturur ve bu listeyi View’a gönderir. Kullanıcı Index eylemine istek gönderdiğinde, bu işlem gerçekleştirilir.

2. Routing ve URL Yönetimi

ASP.NET Core MVC, URL’leri yönetmek için routing mekanizmasını kullanır. Routing, gelen istekleri doğru Controller ve eyleme yönlendirir.

2.1 Routing Tanımlama

Routing, Startup.cs dosyasında tanımlanır. Aşağıdaki örnek, bir varsayılan rota tanımlar:

“`csharp
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: “default”,
pattern: “{controller=Home}/{action=Index}/{id?}”);
});
“`

Bu yapılandırma, varsayılan olarak Home Controller’ının Index eylemini çağırır. URL’de bir id parametresi opsiyonel olarak kullanılabilir.

2.2 Attribute Routing

Attribute routing, route bilgilerini doğrudan Controller ve eylemler üzerinde tanımlamanıza olanak tanır.

“`csharp
[Route(“products”)] public class ProductController : Controller
{
[Route(“list”)] public IActionResult List()
{
// Ürün listesini döndür
}
}
“`

Bu örnekte, ProductController içindeki List eylemi, /products/list URL’si ile eşleşir.

3. Veri Yönetimi ve Entity Framework Core

ASP.NET Core MVC, veri yönetimi için Entity Framework Core (EF Core) kullanabilir. EF Core, veritabanı işlemlerini kolaylaştıran bir ORM (Object-Relational Mapper) aracıdır.

3.1 DbContext Tanımlama

EF Core ile çalışmak için bir DbContext sınıfı tanımlamanız gerekir. Bu sınıf, veritabanı tablolarını temsil eden DbSet’leri içerir.

“`csharp
public class ApplicationDbContext : DbContext
{
public DbSet Products { get; set; }

public ApplicationDbContext(DbContextOptions options)
: base(options)
{
}
}
“`

3.2 CRUD İşlemleri

EF Core, CRUD (Create, Read, Update, Delete) işlemlerini basitleştirir. Aşağıda, ürün ekleme işlemi gösterilmiştir:

“`csharp
public void AddProduct(Product product)
{
using (var context = new ApplicationDbContext())
{
context.Products.Add(product);
context.SaveChanges();
}
}
“`

Bu kod, yeni bir ürünü veritabanına ekler ve değişiklikleri kaydeder.

4. Performans Optimizasyonu

ASP.NET Core MVC uygulamalarının performansını artırmak için çeşitli stratejiler kullanılabilir.

4.1 Caching

Caching, uygulama performansını artırmanın etkili bir yoludur. ASP.NET Core, bellek içi caching ve dağıtılmış caching gibi çeşitli caching mekanizmalarını destekler.

“`csharp
[ResponseCache(Duration = 60)] public IActionResult Index()
{
// 60 saniye boyunca cache’lenmiş içerik döndür
}
“`

Bu örnek, Index eylemi için 60 saniyelik bir cache ayarlar.

4.2 Asenkron Programlama

Asenkron programlama, uygulamanın yanıt verme süresini artırabilir. ASP.NET Core, asenkron işlemleri destekler.

“`csharp
public async Task GetProductsAsync()
{
var products = await _context.Products.ToListAsync();
return View(products);
}
“`

Bu örnek, veritabanından ürünleri asenkron olarak alır ve View’a gönderir.

5. Güvenlik ve Hata Yönetimi

ASP.NET Core MVC, güvenlik ve hata yönetimi için çeşitli araçlar ve özellikler sunar.

5.1 Kimlik Doğrulama ve Yetkilendirme

ASP.NET Core, kimlik doğrulama ve yetkilendirme için Identity Framework’ü kullanabilir. Bu, kullanıcı hesaplarını yönetmek ve erişim kontrolü sağlamak için kullanılır.

5.2 Hata Yönetimi

Hata yönetimi, kullanıcı deneyimini iyileştirmek için önemlidir. ASP.NET Core, hata sayfalarını özelleştirmenize olanak tanır.

“`csharp
app.UseExceptionHandler(“/Home/Error”);
“`

Bu yapılandırma, uygulamada bir hata oluştuğunda kullanıcıyı /Home/Error sayfasına yönlendirir.

ASP.NET Core MVC, modern web uygulamaları geliştirmek için güçlü ve esnek bir platform sunar. MVC yapısının sunduğu ayrıştırılmış yapı, uygulama geliştirme sürecini kolaylaştırır ve yönetilebilir hale getirir. Ayrıca, VDS Sunucular veya Cloud Sunucular gibi uygun altyapılarla birlikte kullanıldığında, yüksek performanslı ve ölçeklenebilir uygulamalar geliştirmek mümkün olur. Bu makalede ele alınan konular, ASP.NET Core MVC ile çalışırken karşılaşabileceğiniz temel kavramlar ve uygulama yöntemleridir.