مدیریت Route در ASP.NET Core5

تاریخ ارسال:

مدیریت Route در ASP.NET Core5

کوتاه کننده لینک یا لینک شورتنر

همیشه بهترین راه برای آموزش مطلبی یا توضیح دادن اونا، این بوده که از یک مثال عملی و واضح استفاده بکنیم. همونطور که میدونید مسیریابی صفحات در دات نت بر طبق نام کنترلر یا نام page ها انجام میگیرد. اما میشه با استفاده از مواردی مثل Route Constraint یا attribute نام کنترلر را در rout تغییر داد.


اما به هر حال این تغییرات کاملا استاتیک و ثابت است. و نمی توان در سایت لینک های داینامیک داشت. به همین دلیل شما باید یک سری تنظیمات حرفه ای دیگه هم انجام بدهید. تا به rout های کاملا داینامیک برسید. چند نمونه از rout های داینامیک چیز هایی مانند پروفایل های اینستاگرام، صفحه مدل ها در Surir یا همین لینک های کوتاه در LS1.ir می باشند.

ایسنتاگرام
اینستاگرام هم بعد از نام دامین آیدی پروفایل های کاربران را قرار می دهد.
لینک دات آی آر
در سایت لینک دات آی آر نیز شما برای هدایت به آدرس اصلی. باید آدرس خلاصه را بعد نام دامنه قرار بدهید. ls1.ir/MH

برای اینکار کافیه که شما از Route constraint ها استفاده کنید. توضیحات کامل و با جزییات بسیار بیشتر در سایت خود مایکروسافت موجوده. که حتما توصیه می کنم اونجا رو هم کاملا مطالعه کنید.

اما خب مایکروسافت کاملا مبحث را تئوری پیش برده. پس ما در این مقاله، خیلی مختصرطرز کار Route constraint که در LS1.ir از اون استفاده کردیم را توضیح میدهیم.

استفاده از Route Constraint در کوتاه کننده لینک

  1. قدم اول ایجاد پروژه است که خب احتمالا فرایندش آشنا هستید.
  2. در قدم بعدی ما یک کلاس می سازیم. تا محدودیت ها یا Constraint ها مد نظر مارا در RouteConfig اعمال کنید.

این کلاس از IRouteConstraint ارث بری می کند. و ما متد Match آن را مطابق سلیقه و نیاز خود می نویسیم. در این پروژه قرار بود که من لینک های خلاصه ای که پس از آدرس دامنه وارد شده بود را بگیرم. سپس چک بکنم که در دیتابیس همچین لینکی داریم یا نه.

در کد بالا می بینیم که در ابتدا چک کردیم آیا بعد از دامین عبارتی وار شده است یا خیر. سپس با استفاده ازسرویس LinkService استفاده می کنیم تا ببینیم عبارت در دیتابیس موجود است یا خیر. (که خودمان نوشتیم و در استارتاپ به عنوان Transient در Context قرارش دادیم). اگر عبارت معتبر بود. کل آبجکت را از دیتابیس گرفته و در Context قرارش می دهیم تا بعدا از آن استفاده کنیم.

  • قدم بعدی ثبت این محدود کننده یا Constraint در تنظیمات Routing است. برای اینکار به Startup متد ConfigureServices می رویم و این عبارت را قرار میدهیم.

این عبارت Constraint مارا به RouteOption معرفی می کند. حالا به متد Configure می   رویم تا از آن استفاده کنیم. در این متد قسمت زیر را:

با این کد جایگزین می کنیم.

دلیل اینکار استفاده از Constraint در Routing است. همچنین بعد از Constraint ما RouteControl پیشفرض را باقی می گذاریم تا اگر عبارتی در دیتابیس ما موجود نبود. خود .Net کنترلر ها را نمایش دهد. یا به صورت پیشفرض صفحات 404 را مدیریت کند.

  • در قدم چهارم ما محل نمایش لینک های دریافتی را مدیریت کنیم. همانطور که دیدیم در قسمت قبلی وقتی Constraint خود را به EndPoint ها اضافه کردیم. این عبارت را هم قرار دادیم.

این عبارت بدین معنی است که اگر Constraint ما لینک را تایید کرد. به صورت پیشفرض متد Index در کنترلر Rout بارگزاری شود.

در این متد هم ما بعد از گرفتن آبجکت از Contextکاربر را به یک صفحه Razor منتقل می کنیم. (همان که در مرحله دوم در Context قرار داده بودیم). تا از آنجا کاربر را بعد از چند لحظه به لینک اصلی داده شده انتقال بدهیم. شما می توانید همینجا کاربر را مستقیما به لینک اصلی Redirect کنید.

من برای انتقال کاربر ازین Script استفاده کردم. (متناسب به نیاز خودم در سئو!)

خب این بود توضیح مختصری از طرز کار RouteConstraint در دات نت کور 5. در آینده ای نزدیک سعی می کنم یک شرح کامل تر از منطق رفتاری .Net Core 5 در مسیریابی ها و  ریدایرکت ها برایتان قرار بدهم.

سورس کامل پروژه LS1 را هم در گیت هاب خودم قرار دادم. در صورت نیاز می تونید ازش استفاده بکنید. یا اگر پیشنهادی برای تغییراتش مدنظر داشتید. خوشحال می شوم که از آنها استفاده بکنم.

دانلود سورس پروژه

نظرات و راهنمایی های شما دلگرمی و کمک خواهد بود برای من و دوستانم. تا با انگیزه بیشتر کار خود را پیش ببریم. DarianMh و DarianTeam


آخرین بروز رسانی: شنبه 4 تير‏ 1401 ( 578   )

پست های مشابه

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

برای نظر دادن وارد شوید.

0 نظر

جدیدترین مطالب! آخرین مطالب بلاگ

آموزش گیت در ویندوز

آموزش گیت در ویندوز

شنبه 17 ارديبهشت 1401 ( 109   )

گیت هاب ابزار بررسی و نگهداری تاریخچه هرگونه فایل و پروژه می باشد. هدف از توسعه چنین ابزاری کمک به ت...

بخوانید
کد نویس تمیز - خلاصه کتاب و نکات مهم

کد نویس تمیز - خلاصه کتاب و نکات مهم

چهارشنبه 10 فررودين 1401 ( 252   )

خلاصه کتاب کد نویس تمیز می گوید که برنامه نویس حرفه ای چگونه...

بخوانید
خلاصه نکات مهم از کتاب کد تمیز (CLEAN CODE)

خلاصه نکات مهم از کتاب کد تمیز (CLEAN CODE)

سه‏ شنبه 2 فررودين 1401 ( 301   )

کد زمانی تمیز است که به راحتی توسط تمام افراد حاضر در تیم قا...

بخوانید
معرفی کتاب اثر مرکب

معرفی کتاب اثر مرکب

شنبه 28 اسفند 1400 ( 198   )

"بر اساس این اصل که تصمیمات کوچک و روزمره یا شما را به زندگی...

بخوانید
شباهت های موجود در کاتلین و سی شارپ

شباهت های موجود در کاتلین و سی شارپ

چهارشنبه 11 اسفند 1400 ( 252   )

بیان شباهت های موجود بین زبان سی شارپ و کاتلین برای برنامه ن...

بخوانید