ASP.NET Routing ve Middleware Rehberi


ASP.NET Routing ve Middleware Rehberi

Giriş: ASP.NET Routing ve Middleware Nedir?

ASP.NET Routing ve Middleware, modern web uygulamalarında esnek ve sürdürülebilir yazılım geliştirme için kritik iki bileşendir. Routing, bir uygulamanın gelen HTTP isteklerini uygun kontrolcülere yönlendirmesini sağlar. Middleware ise, istek ve yanıt süreci boyunca devreye girerek uygulamada özel işlemler yapabilen yazılım bileşenleridir. ASP.NET Routing ve Middleware kavramları, performanslı ve bakımı kolay web uygulamaları geliştirmek için vazgeçilmezdir.

ASP.NET Routing: Temel Kullanım ve Kod Örneği

Routing, bir URL'nin ilgili kontroller veya endpoint ile eşleştirilmesine yardımcı olur. ASP.NET Core'da routing işlemi Startup sınıfında yapılandırılır. Temel bir Route tanımlaması şu şekilde yapılabilir:


public void Configure(IApplicationBuilder app)
{
    app.UseRouting();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}

Bu örnekte UseRouting çağrısı ile routing sistemi devreye alınır. MapControllerRoute metodu, klasik bir Controller/Action/Id yapısı ile eşleşen bir route tanımlar. Farklı taleplere göre özelleştirilebilir ve RESTful API tasarımına da olanak tanır.

Middleware: Kendi Middleware'inizi Yazmak

Middleware, ASP.NET Core pipeline'ında istek ve yanıt üzerinde ek işlemler yapmamızı sağlayan bileşenlerdir. Örneğin, basit bir Logging Middleware şu şekilde geliştirilebilir:


public class LoggingMiddleware
{
    private readonly RequestDelegate _next;
    public LoggingMiddleware(RequestDelegate next)
    {
        _next = next;
    }
    public async Task InvokeAsync(HttpContext context)
    {
        Console.WriteLine($"İstek geldi: {context.Request.Path}");
        await _next(context);
    }
}
// Startup.cs içinde ekleme:
public void Configure(IApplicationBuilder app)
{
    app.UseMiddleware<LoggingMiddleware>();
    app.UseRouting();
    app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
}

Bu örnekte, LoggingMiddleware her gelen istek için çalışır ve isteğin yolunu konsola yazar. Sonra pipeline'daki bir sonraki middleware'e geçer. Middleware zincirinin sırası önemlidir; örneğin UseRouting ve UseEndpoints genelde en sona yakın konumlandırılır. Kendi middleware'lerinizi yazabilir ve ihtiyaçlarınıza göre özelleştirebilirsiniz.

Sonuç: ASP.NET Routing ve Middleware Önemi

ASP.NET Routing ve Middleware, modern web tabanlı yazılım geliştirmenin yapı taşları arasında yer alır. Routing ile uygulamanızın URL yapısını profesyonelce yönetebilir, Middleware ile ise uygulamanıza güvenlik, loglama ve hata yönetimi gibi katmanlar kolayca ekleyebilirsiniz. Uygulamanızın sürdürülebilirliğini ve performansını artırmak için ASP.NET Routing ve Middleware özelliklerini yakından incelemek büyük avantaj sağlar.