কম্পিউটার

কিভাবে C# ASP.NET কোর মিডলওয়্যার HttpModule থেকে আলাদা?


HttpModules web.config বা global.asaxDeveloper-এর মাধ্যমে কনফিগার করা হয় কার্যকর করার ক্রম নিয়ন্ত্রণে নেই।

যেহেতু মডিউলের ক্রম মূলত অ্যাপ্লিকেশনের জীবনচক্র ইভেন্টের উপর ভিত্তি করে। অনুরোধ এবং প্রতিক্রিয়াগুলির জন্য কার্যকর করার আদেশ একই থাকে।

HttpModules আপনাকে একটি অ্যাপ্লিকেশন ইভেন্টের সাথে নির্দিষ্ট কোড সংযুক্ত করতে সাহায্য করে। HttpModules System.web-এর সাথে সংযুক্ত।

মিডলওয়্যার web.config ফাইলের পরিবর্তে Startup.cs কোডে কনফিগার করা হয়েছে (অ্যাপ্লিকেশনের জন্য এন্ট্রি পয়েন্ট)

HttpModules এর বিপরীতে, কী কার্যকর করা হয় এবং কী ক্রমে তার সম্পূর্ণ নিয়ন্ত্রণ থাকে। অ্যাস্থেগুলিকে যে ক্রমে যুক্ত করা হয় সেই ক্রমে মৃত্যুদন্ড কার্যকর করা হয়৷

প্রতিক্রিয়ার জন্য মিডলওয়্যারের অর্ডারটি অনুরোধের জন্য এর বিপরীত।

মিডলওয়্যার এই ইভেন্টগুলি থেকে স্বাধীন৷

মিডলওয়্যারগুলি হোস্ট স্বাধীন।

Asp.Net core

-এর মিডলওয়্যারসে নির্মিত

প্রমাণিকরণ প্রমাণীকরণ সমর্থন প্রদান করে।

CORS ক্রস-অরিজিন রিসোর্স শেয়ারিং কনফিগার করে।

রাউটিং অনুরোধ রুট সংজ্ঞায়িত করুন এবং সীমাবদ্ধ করুন।

সেশন ব্যবহারকারীর সেশন পরিচালনার জন্য সমর্থন প্রদান করে।

ডায়াগনস্টিকস ত্রুটি পৃষ্ঠা এবং রানটাইম তথ্যের জন্য সমর্থন অন্তর্ভুক্ত।

উদাহরণ

public class MyMiddleware{
   private readonly RequestDelegate _next;
   private readonly ILogger _logger;
   public MyMiddleware(RequestDelegate next, ILoggerFactory logFactory){
      _next = next;
      _logger = logFactory.CreateLogger("MyMiddleware");
   }
   public async Task Invoke(HttpContext httpContext){
      _logger.LogInformation("MyMiddleware executing..");
      await _next(httpContext); // calling next middleware
   }
}

// HTTP অনুরোধ পাইপলাইনে মিডলওয়্যার যোগ করতে ব্যবহৃত এক্সটেনশন পদ্ধতি।

public static class MyMiddlewareExtensions{
   public static IApplicationBuilder UseMyMiddleware(this IApplicationBuilder
   builder){
      return builder.UseMiddleware<MyMiddleware>();
   }
}

//নিচে দেখানো এক্সটেনশন পদ্ধতি ব্যবহার করে অনুরোধ পাইপলাইনে কাস্টম মিডলওয়্যার যোগ করুন

public void Configure(IApplicationBuilder app, IHostingEnvironment env){
   app.UseMiddleware<MyMiddleware>()
   app.Run(async (context) =>{
      await context.Response.WriteAsync("Hello World!");
   });
}

  1. C# ASP.NET WebAPI-তে স্বীকার শিরোনাম সহ সংস্করণ কীভাবে করবেন?

  2. কিভাবে C# ASP.NET WebAPI এ CORS সমস্যা সমাধান করবেন?

  3. C# ASP.NET WebAPI-তে একটি অ্যাকশন পদ্ধতি থেকে কাস্টম ফলাফলের ধরন কীভাবে ফেরত দেওয়া যায়?

  4. Windows Core OS কিভাবে Windows 10 থেকে আলাদা?