یکی از فریم ورکهای کاربردی سایت که مبتنی بر داده و به صورت متمرکز بر صفحه، مورد استفاده قرار میگیرد، Razor Pages میباشد. برنامهنویسان داتنت در سمت ویو از این ابزار کاربردی استفادههای مختلفی دارند. در توضیحات دوره آموزشی Razor Pages در ASP.NET Core کدیاد، به معرفی و کاربرد این فریم ورک میپردازیم.
Razor Pages چیست؟
Razor گرامری برای افزودن کدهای سمت سرور (Visual basic یا #C) به WebPage میباشد. ریزر پیج یک امکان جدید از ASP.NET است. تمامی وب سایتهایی که به کمک این فریم ورک ارائه میشوند، کاملا کراس پلتفرم میباشند. به نوعی برنامهنویس صرفا یک بار سایت را طراحی میکند که بر هر سیستم عاملی قابل اجرا است. به کمک این فریم ورک میتوان به راحتی سطح بسیار بالایی از separation of concerns را ایجاد کنیم. این قابلیت نرم افزار را به حوزههای متفاوتی تقسیم میکند. هدف اصلی از ارائهی Razor Pages رفع مشکلاتی است که برنامهنویسان با MVC داشتند. همچنین برای ایجاد کاربردهای وب قابل استفاده است.
مزیتهای Razor Pages نسبت به MVC
- در الگوی MVC همیشه نیازمند controller هستیم. Model ، View و Controller تماما در فولدرهای جدا قرار گرفتند. بنابراین اگر قصد داشته باشید آنها را به پروژهی دیگری انتقال دهید میبایست زمان زیادی را صرف کنید.
- ریزر پیج Controller ندارند. اکشن متدها که وظیفهی مدیریت ورودی را دارند، درون فایلی به نام view قرار می گیرند.
- از همه مهمتر Razor Pages تمامی قابلیتهای MVC را شامل میشود.
- دسته بندی متفاوت MCV و Razor Pages است. دستهبندی عملکردها براساس آن چه یک درخواست انجام میدهند، صورت میگیرد. همان طور که اشاره شد Controllers contain actions, models contain data, and views هر یک در پوشههای مختص خود قرار میگیرند. این پوشهبندی های جدا از یک دیگر، قوانینی را ایجاد میکنند که در نهایت به عملکرد بهتر اجزاء کمک میکند. اما عملکرد مناسب Razor Pages پوشهبندی براساس مسئلهای است که حل میکند.
- نیازی به استفاده از MVC در هر جایی نیست. چرا که اکثر اوقات پیاده کردن منطقهای سادهای مثل تماس با ما به راحتی به کمک فریم ورک ریزر پیج به راحتی قابل ارائه است.
چرا از Razor Pages استفاده کنیم؟
- زمانی که از این فریم ورک استفاده میکنید، تمرکز شما به جای controller صرفا بر page میباشد. با استفاده از این تکنیک صرفا کافی است در ابتدا صفحهی html خود را بسازید و در صورتی که نیاز داشتید Page Handlerها را ایجاد میکنید.
- طبق تاکید مایکروسافت ریزر پیج هم برای سایتهایی کوچک و هم بزرگ کاربردی است.
- این شرایط را برای برنامه نویسان فراهم میکند تا در مسیرهای دوستانه قالبی را تعریف کنند تا هر آدرسی را که به فایلی اشاره نمیکند بتوان دریافت کرد.
- فریم ورک Razor Pages بسیار سبک وزن و قابل انعطاف میباشد.
- Razor Pages قدرت نشانهگذاری ASP.NET سنتی را دارد. با این تفاوت که علاوه بر این که یادگیری ریزر پیج راحتتر است به سادگی میتوان آن را پیاده کرد.
- این فریم ورک بیشتر مشابه PHP و ASP میباشد.
- ریزر پیج قابلیت پشتیبانی از دو زبان برنامه نویسی بسیار کاربردی Visual Basic و #C را دارد.
- گرامر Razor Pages از سینتکسهای سادهای بهره میبرد که یادگیری آن برای تازه کارها بسیار ساده است. همچنین به پیشرفت بیشتر افراد کاربلد در این حوزه هم کمک میکند.
- سینتکس ریزر پیج بر مبنای چارچوب ASP.NET میباشد که به ما تمام ویژگیها و قدرت ASP.NET را ارائه میدهد.
کدهای سمت سرور (Visual basic یا #C) این قابلیت را دارند که قبل از ارسال صفحه به مرورگر محتوای HTML پویا تولید کنند. در صورتی که از نظر مرورگر، صفحه HTML ارائه شده، به کمک کدهای سمت سرور، هیچ تفاوتی با محتوای HTML استاتیک ندارد.
نکات مهم دوره آموزش آموزش Razor Pages در ASP.NET Core
- اشاره شد که این فریم ورک برای سایتهای کوچک و بزرگ با تعداد صفحات زیاد، بسیار کاربردی است. اما در شرایطی قابل استفاده نیست. برای مثال زمانی که از پروژههای AJAX بیش از اندازه استفاده میشود، کارایی ندارد.
- به منظور نمایش ولیدیشن فرم (فرمهای اعتبار سنجی) میبایست از asp-validation-for استفاده کنیم. اما برای مدلولیدیشن (که ترکیبی که پراپرتیها میباشد) میبایست از asp-validation-summary بهره گرفت.
- به منظور این که متوجه شویم کدام متد پست شدن یک فرم را مدیریت میکند، میتوانیم از تگ هلپر (asp_ validation _ for) استفاده کنیم. نکتهی حائز اهمیت این است که میبایست اسمی که به عنوان هندلر وارد میکنید بعد از OnPost قرار بگیرد.
- در این فریم ورک شرایط استفاده از View Bage نیست. چرا که نوعی متغیر دینامیک میباشد که پردازش آن زمان بیشتری نیاز دارد. به طور کلی سعی کنید همیشه از View Data استفاده کنید.
- این فریم ورک به منظور تولید کدهای سمت سرور از زبان برنامهنویسی بسیار کاربردی سی شارپ بهره میبرد. از فایلهای ریزر پیج هم به منظور قرار گیری کدهای سی شارپ در Html و در نهایت تولید محتوای پویا برای مرور، میتوان استفاده کرد. این کدها عملیات پیچیدهای مانند دستیابی به پایگاه داده را برای ما انجام میدهند.
- یکی از قابلیتهای Razor این است که زمان فعلی سرور را میتواند به دست آورد و آن را نمایش دهد. به این منظور میتوانید گزینههای مربوط به فرمت را مشخص کنید. یا این که با فرمت پیشفرض آن را به نمایش بگذارید.
- صفحات وبASP.NET که از سینتکس Razor بهره میبرند؛ دارای پسوند فایل cshtm (برای فریم ورکی است که از #C استفاده میکند) و vbhtml (برای فریم ورکی است که از VB استفاده میکند) میباشند.
معرفی Razor Helpers
Helper های ASP.NET، کامپوننتهایی هستند که صرفا با نوشتن یک خط کد Razor میتوان به آنها دست یافت. برنامهنویسان helper های شخصی خود را یا با استفاده از گرامر Razor ایجاد میکنند یا اینکه از helper های آماده ASP.NET استفاده میکنند. در واقع ریزر نوعی موتور View میباشد که با زبان تلفیقی C# و HTML تلاش میکند صفحاتی با منطق برنامهنویسی ارائه دهد. وجود تگهای Helper کار توسعه در View را جذابتر میکند.
لیستی از helper های مفید Razor
- Web Grid (خطوط افقی و عمودی هستند که بستر طراحی را منظم میکنند.)
- Web Graphics (طراحی وب سایت که شامل لایهسازی صفحات وب، تولید محتوا، طراحی گرافیکی و رعایت اصول سئو میباشد.)
- Google Analytics (با تحلیل و بررسی رفتار کاربران در زمان مشاهده وبسایت و ارائه گزارشهای مختلف در این راستا، در بهبود سئوی سایت بسیار کمک میکند.)
- Facebook Integration
- Twitter Integration
- Sending Email (به منظور ارتباط با مشتری و کاربران)
- Validation (به منظور ارائهی فرمهای اعتبارسنجی در سایت)
Razor Pages چگونه کار می کند؟
به کمک این پلتفرم میتوان کدهای سمت سرور را در صفحات وب قرار داد. صفحاتی که به کمک این پلتفرم طراحی میشوند به عنوان صفحات HTML با دو نوع محتوا در نظر گرفته میشوند. این دو نوع محتوای HTML و کدهای Razor هستند. زمانی که سرور صفحهای را بررسی میکند، قبل از این که صفحه HTML را به مرورگر بازگرداند، کدهای Razor موجود در صفحه را اجرا میکند. به کمک اجرای این کد توسط سرور وظایفی که مرورگر از عهدهی آنها بر نمیآید، پیاده میشوند. به عنوان مثال در پایگاه داده توسط کدهای Razor و اجرای آن از سمت سرور میتوان به راحتی به کدهای مربوطه دیگر دسترسی پیدا کرد.
در پایان
در توضیحات این دوره یکی از کاربردیترین فریم ورکهای برنامه نویسی را به شما همراهان معرفی کردیم. اگر به دنبال قالبی جایگزین برای MVC هستید که بتوانید در بازهی زمانی کوتاه از مزایا و قابلیتهای فوقالعادهای برخوردار باشید، یادگیری Razor Pages را به شما توصیه میکنیم. برای شرکت در این دوره ی کاربردی و رایگان از کدیاد با ما همراه باشید.
نظرات دانشجویان
نظرات دانشجویان
علی محمدی
ممنون از استاد اشرافی عزیز و همچنین تیم کدیاد که دوره رو رایگان برگزار کردید قطعا یکی از خفن ترین دوره ها میشه ⚘😍
سلام وقت بخیر ضمن تشکر از دوره خوبتون لطفا آدرس گیت هاب رو بذارین.خیلی ممنون