ASP.NET Core-এ Routing একটি গুরুত্বপূর্ণ বিষয়, যা অ্যাপ্লিকেশনের ক্লায়েন্টের রিকোয়েস্টকে নির্দিষ্ট Controller Action-এ ম্যাপ করে। ASP.NET Core-এ রাউটিং করতে দুই ধরনের পদ্ধতি ব্যবহৃত হয়:
Convention-based Routing একটি centrally defined routing pattern ব্যবহার করে রিকোয়েস্টকে ম্যাপ করে। এটি সাধারণত Startup.cs ফাইলের মধ্যে UseEndpoints
বা MapControllerRoute
পদ্ধতির মাধ্যমে কনফিগার করা হয়।
এই পদ্ধতিতে রাউটিং প্যাটার্ন ডিফাইন করা হয় এবং সমস্ত রিকোয়েস্ট সেই প্যাটার্ন অনুসারে রুট হয়।
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
ব্যাখ্যা:
controller=Home
: যদি রিকোয়েস্টে কোন নির্দিষ্ট কন্ট্রোলার উল্লেখ না থাকে, তাহলে ডিফল্ট কন্ট্রোলার হবে HomeController।action=Index
: যদি কোন নির্দিষ্ট অ্যাকশন উল্লেখ না থাকে, তাহলে ডিফল্ট অ্যাকশন হবে Index।id?
: এই অংশটি ঐচ্ছিক (?
নির্দেশ করে)।Attribute Routing একটি declarative approach ব্যবহার করে, যেখানে রাউটিং প্যাটার্ন সরাসরি Controller এবং Action Method-এ সংজ্ঞায়িত হয়। এটি কন্ট্রোলারের নির্দিষ্ট পাথ এবং প্যারামিটার নিয়ন্ত্রণের জন্য ব্যবহার করা হয়।
Attribute Routing করতে Route
অ্যাট্রিবিউট ব্যবহার করা হয়। এটি প্রতিটি Controller বা Action Method-এর উপরে ডিক্লেয়ার করা হয়।
Controller-এর স্তরে Attribute Routing:
[Route("products")]
public class ProductController : Controller
{
[Route("")]
public IActionResult Index()
{
return View();
}
[Route("details/{id}")]
public IActionResult Details(int id)
{
return View();
}
}
ব্যাখ্যা:
/products
: Index অ্যাকশন কল করবে।/products/details/1
: Details অ্যাকশন কল করবে যেখানে id=1
।Action Method-এর স্তরে Attribute Routing:
public class ProductController : Controller
{
[HttpGet("products/{id}")]
public IActionResult GetProduct(int id)
{
return View();
}
[HttpPost("products/create")]
public IActionResult CreateProduct(Product product)
{
return View();
}
}
বৈশিষ্ট্য | Convention-based Routing | Attribute Routing |
---|---|---|
ডিফাইন করার পদ্ধতি | Startup.cs -এ কেন্দ্রিয়ভাবে সংজ্ঞায়িত। | সরাসরি Controller বা Action Method-এ। |
নিয়ন্ত্রণের মাত্রা | সীমিত, সাধারণ প্যাটার্নের জন্য। | Controller এবং Action অনুযায়ী কাস্টম। |
সহজতা | সহজ এবং দ্রুত। | জটিল এবং বিস্তারিত। |
উপযুক্ততা | সাধারণ অ্যাপ্লিকেশনের জন্য উপযুক্ত। | জটিল অ্যাপ্লিকেশনের জন্য আদর্শ। |
HTTP Method সমর্থন | ডিফল্টভাবে HTTP Method নির্দিষ্ট নয়। | নির্দিষ্ট HTTP Method ব্যবহার করা যায়। |
ASP.NET Core-এ Convention-based Routing এবং Attribute Routing একসঙ্গে ব্যবহার করা যায়। তবে জটিল অ্যাপ্লিকেশনের ক্ষেত্রে Attribute Routing বেশি কার্যকর, কারণ এটি নির্দিষ্ট নিয়ন্ত্রণ এবং কাস্টমাইজেশনের সুযোগ দেয়।
Routing ASP.NET Core-এ অ্যাপ্লিকেশন স্ট্রাকচার এবং ক্লায়েন্ট রিকোয়েস্ট পরিচালনার একটি অপরিহার্য অংশ। সঠিক রাউটিং প্যাটার্ন নির্বাচন অ্যাপ্লিকেশনের কার্যকারিতা এবং ব্যবস্থাপনা সহজ করে।
common.read_more