ظرف چند هفته اخیر مقالات و دوره هایی که در مورد نسخه سوم asp core منتشر شده بودند را مطالعه کردم و در حال تولید یک دوره ویدیویی آموزشی جامع برای شروع کار با 3 asp core هستم.
قبلا هم دوره ای برای 1 asp core تهیه کرده بودم که فکر کنم هنوز به درد بخور باشه.(اینجا)
برای مرور سریع asp core هم ویدیویی جدیدا در یوتیوب قرار داده بودم.(اینجا)
دات نت کور تغییر مهمی نسبت به نسخه های پیشین داشته و آن ترویج استفاده از روش Razor page است. دات نت کور در نسخه 2 این روش را بعنوان یک جایگزین سریع پیشنهاد داده بود اما هیچوقت مقالات و دوره های MVC به این اندازه در مورد این موضوع صحبت نکرده بودند.
خیلی از برنامه نویسان دات نت، هنگام سرچ، وقتی با Razor page مواجه میشدند تصور می کردند که این همان صفحات Razor است که در MVC استفاده میکنند و از کنار آن میگذشتند.
اگر در دات نت کور از ویوکامپوننت ها استفاده کرده باشید و با مکانیزم تولید آن آشنا باشید به راحتی با Razor page ها کنار خواهید آمد.
این روش شبیه به معماری MVVM (Model-View-ViewModel) کار میکند. اگر قبلا با web form ها کار کرده باشید به شکلی میتوان Razor page را بازگشت به همان سبک قدیمی کد نویسی وب مایکروسافت دانست.
اگر میخواهید حجم مقالات در مورد این مطلب را ببینید کافیست عبارت Razor pages vs mvc را سرچ کنید.
در RazorPage ها چرخه حیات یک ریکوئست با حالت MVC تفاوت دارد. شما با صدا زدن یک آدرس، ابتدا cshtml را صدا میزنید و پشت صحنه آن یک فایل cs وجود دارد که تعامل با ویو را به عهده دارد. همین فایل حاوی مدلی است که ویو از آن استفاده میکند.
امیدوارم در آینده در یک ویدیوی مبسوط، به این موضوع بپردازم. اما هنوز به نکته اصلیِ این نوشته نرسیدیم. معمولا جو ایجاد شده پس از انتشار یک تمپلیت جدید، یا معماری جدید، باعث میشود به راحتی روش های قبل را بدون توجه به نوع پروژه ها کنار بگذاریم.
خوشبختانه Razor page هنوز همه گیر نشده اما به خاطر داشته باشید که برای ایجاد SPA ها و استفاده از فریم ورک های فرانت مثل Angular یا Vue، استفاده از MVC مناسب تر است، بطور کلی اگر تقسیم کار در پروژه هایتان به گونه ایست که api را یک تیم و پیاده سازی front-end این api ها را تیم دیگری برعهده دارد از همان روش MVC استفاده کنید.
اما در پروژه هایی که صرفا برای نمایش اطلاعات است و یا فرم های خیلی ساده دارند بهتر است از Razor page ها استفاده شود که بسیار سریع و ساده هستند.