مفهوم Middleware در ASP.NET Core

مفهوم Middleware در ASP.NET Core به زبان ساده

Middleware در ASP.NET Core چیست؟
Middleware یکی از مفاهیم اساسی در معماری ASP.NET Core است که به شما اجازه می‌دهد درخواست‌ها (Request) و پاسخ‌ها (Response) را قبل از رسیدن به مقصد پردازش کنید. Middleware در حقیقت اجزایی است که در زنجیره پردازش درخواست و پاسخ قرار می‌گیرد و وظایف خاصی مانند احراز هویت، لاگ‌گیری، کش کردن، و حتی مدیریت خطاها را انجام می‌دهد.

 

آموزش رایگان Asp.Net Core

 

چرا Middleware در ASP.NET Core مهم است؟

انعطاف‌پذیری بالا: به شما امکان می‌دهد مراحل پردازش درخواست‌ها را به سادگی کنترل کنید.

ماژولار بودن: هر Middleware وظیفه مشخصی دارد و می‌توان آن را به‌صورت جداگانه توسعه یا مدیریت کرد.

بهبود عملکرد: با استفاده از Middleware، می‌توان عملیات غیرضروری را قبل از رسیدن درخواست به کنترلر حذف کرد.

ساختار Middleware چگونه است؟

Middleware‌ها در ASP.NET Core به‌صورت زنجیره‌ای (Pipeline) عمل می‌کنند. هر Middleware می‌تواند:

درخواست را پردازش کند.

آن را به Middleware بعدی ارسال کند.

پاسخ را تغییر داده و به کلاینت بازگرداند.

مثال ساده از یک Middleware

فرض کنید می‌خواهید یک Middleware ساده ایجاد کنید که زمان اجرای درخواست‌ها را لاگ کند.

public class RequestTimingMiddleware  
{  
   private readonly RequestDelegate _next;  
   public RequestTimingMiddleware(RequestDelegate next)  
   {  
       _next = next;  
   }  
   public async Task InvokeAsync(HttpContext context)  
   {  
       var startTime = DateTime.Now;    
       await _next(context);  
       var duration = DateTime.Now - startTime;  
       Console.WriteLine($"Request Duration: {duration.TotalMilliseconds} ms");  
   }  
}

 

افزودن به Pipeline:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
var app = builder.Build();

app.UseMiddleware();

app.UseRouting();
app.MapControllers();
app.Run();

 

انواع Middleware پیش‌فرض در ASP.NET Core

ASP.NET Core مجموعه‌ای از Middleware‌های آماده را ارائه می‌دهد که می‌توانید به‌راحتی از آن‌ها استفاده کنید:

UseStaticFiles: ارائه فایل‌های استاتیک مانند CSS و JavaScript.

UseAuthentication: مدیریت احراز هویت کاربران.

UseAuthorization: بررسی دسترسی کاربران به منابع مختلف.

UseCors: فعال‌سازی سیاست‌های CORS.

UseEndpoints: مسیریابی درخواست‌ها به کنترلرها.

 

ساخت Middleware سفارشی در ASP.NET Core

برای ساخت Middleware اختصاصی:

یک کلاس ایجاد کنید که یک متد Invoke یا InvokeAsync داشته باشد.

از RequestDelegate برای هدایت درخواست‌ها به Middleware بعدی استفاده کنید.

کلاس را در Program.cs با استفاده از UseMiddleware اضافه کنید.

 

 

نکات کلیدی برای استفاده بهینه از Middleware

ترتیب اجرای Middleware‌ها مهم است: Middleware‌ها به ترتیبی که در متد Configure تعریف شده‌اند، اجرا می‌شوند.

از Middleware‌های آماده استفاده کنید: برای وظایف رایج مانند لاگ‌گیری و احراز هویت از Middleware‌های پیش‌فرض استفاده کنید.

از منطق سنگین اجتناب کنید: برای بهبود عملکرد، منطق‌های پیچیده را در Middleware پیاده‌سازی نکنید.

 

Middleware یکی از اجزای کلیدی در ASP.NET Core است که امکان مدیریت و پردازش درخواست‌ها را به‌صورت انعطاف‌پذیر فراهم می‌کند. با استفاده از Middleware، می‌توانید برنامه‌هایی ماژولار، قابل توسعه، و بهینه بسازید.

اگر می‌خواهید بیشتر در مورد ASP.NET Core و نحوه استفاده از قابلیت‌های آن بدانید، به آموزش‌های پیشرفته ASP.NET Core در دیاکد مراجعه کنید.

نوشته شده توسط :

علیرضا مقدم

نظرات کاربران

هنوز نظری برای این مقاله ثبت نشده است. شما اولین نفر باشید .