آموزش پیشرفته طراحی سایت رسانه آموزشی با Asp.Net Core 2.2
اولین سؤالی که زمان مطالعه دربارهٔ Razor Page به ذهن میرسد این است که چرا از Razor Page بهجای MVC استفاده کنیم؟ جواب این سؤال یک خط است و میتوانیم بگوییم زمانی که روی UI تمرکز میکنیم یا وقتی به UI نسبت به ساختارهای پیچیده یا منطق دادهها اولویت میدهیم میتوانیم از Razor Page بهجای MVC استفاده کنیم.
درواقع در یک پروژهٔ MVC که Controller, View, Model, View-Model, Routing و غیره با یکدیگر یک گروه تشکیل دادهاند تا اپلیکیشن اجرا شود، اگر شما یک عملکرد واحد را تغییر دهید یا اضافه کنید، باید در ViewModel در قسمت Entity های مربوطه، نگاشت دادههای آن و همچنین View تغییراتی ایجاد کنید.
تیم ASP Core تلاش زیادی میکند استفاده از Razor Pages را بجای MVC جا بیاندازد. الگوی MVC سالها از محبوبترین روشهای پیادهسازی سایت بوده است اما اشکالاتی هم دارد.
در الگوی MVC همیشه نیاز به کنترلر دارید. حتی وقتی میخواهید یک صفحهٔ ساده “ارتباط با ما” نمایش دهید باید کنترلر و اکشن داشته باشید. همچنین مدل و ویو و کنترلر در فولدرهای مجزا نگهداری میشوند و مدیریت کردن پروژه در درازمدت سخت میشود. اگر بخواهید یک کنترلر را به همراه مدل و ویوهایش به یک پروژهٔ دیگر منتقل کنید با دردسرهای زیادی روبرو هستید.
در Razor Pages دیگر کنترلر نداریم و اکشنها میتوانند درون فایل ویو یا در یک فایل همنام ویو (مانند کلاسهای Win Form) قرار گیرند. در الگوی MVC درواقع Controller اهمیت ندارد بلکه اکشنهای درون کنترلر هستند که درخواستها را مدیریت میکنند. این دقیقاً بخشی است که Razor Pages روی آن تأکید دارد.
وقتی از Razor Pages استفاده میکنید تمام قابلیتهای MVC را دارید. بخشی از MVC است و درون یک سرویس بارگذاری میشود. وقتی یک پروژهٔ MVC در ASP Core ایجاد میکنید همزمان Razor Page هم به پروژه اضافه میشود. میتوانید بخشی از سایت را MVC و بخش دیگر را با Razor Page طراحی کنید.
مایکروسافت تأکید میکند که Razor Page فقط برای طراحی سایتهای کوچک نیست و میتوانید برای پیادهسازی هر سایتی از آن استفاده کنید. اما برنامه نویسان پر سابقهٔ MVC هنوز با شک و تردید به این تکنولوژی نگاه میکنند.
در این دوره تمامی امکانات موردنیاز برای ساخت یک وبسایت حرفهای با استفاده از Asp.net Core را یاد خواهید گرفت.
مزایای شرکت در در این دوره آموزشی :
- یادگیری کامل معماری به نام Clean Architecture و پیاده سازی آن در پروژه
- کار با ۳ قالب جهت یادگیری بهتر در چالش های به وجود آمده در هنگام طراحی
- پیاده سازی یک سایت رسانه آموزشی کامل با Asp.net Core 2.2
- استفاده حداکثری از قابلیت های Asp.net Core و EF Core
- یادگیری پیکربندی کامل یک پروژه خام Asp Core جهت پیاده سازی پروژه سنگین
- یاد گیری کامل بحث Razor Page
- سعی در عدم به وجود امدن بحث تکراری در هر جلسه آموزشی
- کار با انواع پلاگین های Jquery و Ajax
- چگونه در Asp Core یک Custom Attribute بنویسیم؟
- Refactor کردن کدها جهت تمیزی پروژه
موارد مهمی که در این دوره آموزشی به آن پرداخته شده است :
- Identity Claims
- Razor Page
- تولید لینک دانلود فایلها از خود سرور جهت جلوگیری از public شدن لینک دانلود فایلها
- درگاه پرداخت ( زرین پال )
- انواع کد تخفیف ( بر اساس بازه زمان ، تعداد ، بی نهایت )
- فیلتر محصولات به صورت Ajax
- کار با Notification های جی کوئری
سرفصل های آموزش پیشرفته طراحی سایت رسانه آموزشی با Asp.Net Core 2.2 :
- جلسه ۱ : معرفی دوره
- جلسه ۲ : ایجاد پروژه ، پیکربندی و ایجاد ساختار پروژه با معماری Clean Architecture
- جلسه ۳ : ایجاد مدل مربوط به کاربران و سطح دسترسی ، ایجاد روابط و ساخت دیتابیس
- جلسه ۴ : توضیحاتی در مورد قالب و انتقال قالب به پروژه
- جلسه ۵ : ایجاد تغییراتی در قالب ، کد نویسی ثبت نام کاربران ، چک کردن شماره موبایل و ایمیل تکراری
- جلسه ۶ : کد نویسی ورود کاربران ، چک کردن فعال یودن حساب کاربری ، کا با پلاگین Sweet Alert در صورت ورود موفق کاربر
- جلسه ۷ : کد نویسی فعال سازی حساب کاربری
- جلسه ۸ : پیکربندی Authentication ، پیاده سازی Claim در پروژه و دسترسی به Claim ها از طرسق Identity
- جلسه ۹ : کد نویسی ارسال ایمیل فعال سازی حساب کاربری
- جلسه ۱۰ : کد نویسی بازیابی کلمه عبور با ارسال ایمیل
- جلسه ۱۱ : انتقال قالب پنل کاربری با طراحی متریال
- جلسه ۱۲ : نمایش اطلاعات پروفایل کاربر جاری در پنل کاربری
- جلسه ۱۳ : نمایش اطلاعات پروفایل کاربر جاری جهت ویرایش اطلاعات
- جلسه ۱۴ : کد نویسی ذخیره اطلاعات پروفایل کاربر
- جلسه ۱۵ : کد نویسی تغییر کلمه عبور
- جلسه ۱۶ : طراحی مدل مربوط به کیف پول کاربر
- جلسه ۱۷ : کد نویسی محاسبه کیف پول کاربر ، نمایش لیست تراکنشهای کاربر
- جلسه ۱۸ : کد نویسی اتصال به درگاه پرداختی جهت شارژ کیف پول
- جلسه ۱۹ : معرفی اجزای قالب پنل مدیریت و انتقال ان به پروژه ، اضافه کردن Razor Page
- جلسه ۲۰ : داینامیک کردن ساید بار منو پنل مدیریت ، کد نویسی نمایش مشاهده اطلاعات مدیر جاری
- جلسه ۲۱ : طراحی و کد نویسی ویرایش اطلاعات پنل مدیریت
- جلسه ۲۲ : طراحی و کد نویسی تغییر کلمه عبور پنل مدیریت ، کد نویی نمایش اطلاعات کاربران
- جلسه ۲۳ : طراحی و کد نویسی نمایش اطلاعات کاربران به همراه فیلتر سازی و صفحه بندی اطلاعات
- جلسه ۲۴ : طراحی و کدنویسی ثبت کاربان توسط مدیر ، کد نویسی نمایش سطح دسترسی ها
- جلسه ۲۵ : چک کردن عدم تکراری بودن هنگام ثبت شماره موبایل و ایمیل کاربران توسط مدیر ، پیش نمایش عکس کاربر هنگام آپلود
- جلسه ۲۶ : کد نویسی نمایش اطلاعات کاربر برای ویرایش کاربران توسط مدیر
- جلسه ۲۷ : کد نویسی انتخاب سطح دسترسی کاربر و ویرایش نهایی اطلاعات کاربران توسط مدیر
- جلسه ۲۸ : نمایش سطح های دسترسی کاربران در لیست کاربران ، حذف کاربران و لیست کاربران حذف شده و کار با Query Filter در EF
- جلسه ۲۹ : کد نویسی حذف دسترسی های کاربر پس از حذف ، کد نویسی تغییر ایمیل کاربری و رمز نگاری ایمیل
- جلسه ۳۰ : کد نویسی پایانی تغییر ایمیل کاربری بدون عوض شدن پسورد کاربر
- جلسه ۳۱ : کد نویسی نمایش ، ایجاد ، حذف و ویرایش نقش ها
- جلسه ۳۲ : طراحی جداول مربوط به سطح دسترسی های نقش ، کد نویسی نمایش نقش های دسترسی ها
- جلسه ۳۳ : کد نویسی ثبت و ویرایش نقش ها برای هر سطح دسترسی
- جلسه ۳۴ : کد نویسی یک Attribute جهت تعیین دسترسی های کاربر
- جلسه ۳۵ : رفع باگ جلسه قبلی ، نوشتن یک CustomAttribute برای چک کردن داشتن Role برای کاربر
- جلسه ۳۶ : ایجاد مدل گروه بندی ، کد نویسی نمایش گروه بندی چند سطحی در سایت
- جلسه ۳۷ : ایجاد جدولهای دوره ها ، سطح دوره ها ، نوع دوره ها ، مدرس دوره ، شرکت های تولید کننده دوره و ایجاد روابط
- جلسه ۳۸ : تغییرات در دیتابیس ، کد نویسی نمایش گروه بندی ها ، مدرسین ، نوع و سطح آموزش ها برای قسمت درج آموزش
- جلسه ۳۹ : اضافه کردن ویرایشگر CkEditor به همراه فعال سازی اپلود تصویر ، Ajaxی کردن انتخاب گروه ها و زیر گروه ها
- جلسه ۴۰ : کد نویسی ثبت دوره اموزشی
- جلسه ۴۱ : اعتبارسنجی فایل اپلود شده ، ذخیره عکس در ۲ سایز ، فعال سازی اپلود فایل تا حجم ۱ گیگابایت (Mac-Linux-IIS)
- جلسه ۴۲ : کد نویسی نمایش دوره های اموزشی وب سایت در پنل مدیریت
- جلسه ۴۳ : نمایش همه گروه و زیر گروه های دوره ، کد نویسی ویرایش اطلاعات دوره
- جلسه ۴۴ : رفع مشکل انتخاب گروه بندی هنگام ویرایش و نمایش پیغام مناسب بعد از ثبت و ویرایش اموزش
- جلسه ۴۵ : کد نویسی نمایش محصولات اموزشی در صفخه اول وب سایت
- جلسه ۴۶ : کد نویسی فیلترینگ پیشرفته و قرار دادن صفحه مربوط به جست و جوی پیشرفته
- جلسه ۴۷ : کد نویسی فیلترینگ بر اساس نوع آموزش و گروه بندی اموزش
- جلسه ۴۸ : فیلتر دوره های اموزشی بر اساس مدرسین و شرکت های تولیده کننده
- جلسه ۴۹ : کد نویسی و نمایش شرکت های تولیده کننده و تعداد تولید آموزش در وب سایت
- جلسه ۵۰ : کد نویسی نمایش مدرسین و تعداد تولید آموزش در وب سایت
- جلسه ۵۱ : صفحه بندی ، نگه داری مقادیر گروه بندی انتخاب شده ، نگه داری مقادیر جست و جو هنگام عوض شدن صفحه در فیلترینگ
- جلسه ۵۲ : کد نویسی نمایش جزئیات هر دوره
- جلسه ۵۳ : ادامه بحث نمایش جزئیات هر دوره ، تبدیل دقیقه به زمان
- جلسه ۵۴ : ایجاد مدل مربوط به فاکتور ها ، کد نویسی صدور فاکتور هنگام خرید دوره آموزشی
- جلسه ۵۵ : کد نویسی نمایش جزئیات فاکتور هر کاربر ، محاسبه جمع کل ، طراحی قسمت کد تخفیف
- جلسه ۵۶ : چک کردن میزان اعتبار کیف پول نسبت به جمع کل سفارش ، کد نویسی نهایی سفارش و ثبت تراکنش
- جلسه ۵۷ : طراحی جدول دوره های دانلود کاربر ، ادامه کد نویسی نهایی کردن فاکتور سفارش کاربر و امنیت
- جلسه ۵۸ : طراحی مدل جدول تخفیف ها ، ایجاد کلاس Enum برای نمایش پیغام های مناسب هنگام وارد کردن کد تخفیف
- جلسه ۵۹ : کد نویسی کد تخفیف ، کد نویسی نمایش پیغام های مربوط به وضعیت کد تخفیف وارد شده
- جلسه ۶۰ : کد نویسی ایجاد کد تخفیف توسط مدیر ، استفاده از پلاگین جی کوئری برای انتخاب تاریخ شمسی
- جلسه ۶۱ : کد نویسی نمایش کد های تخفیف ، ویرایش کد تخفیف ، کد نویسی چک کردن کد تخفیف تکراری با Ajax
- جلسه ۶۲ : کد نویسی نمایش لیست دوره های خریداری شده کاربر و دانلود فایلها در پنل کاربری با رعایت نکات امنیتی
- جلسه ۶۳ : کد نویسی ثبت نظرات برای هر دوره با Ajax
- جلسه ۶۴ : کد نویسی نمایش نظرات و صفحه بندی نظرات به صورت Ajax
- جلسه ۶۵ : کد نویسی چک کردن کد تخفیف تکراری هنگام ویرایش ، نمایش دوره های امورشی ویژه در صفحه اول
- جلسه ۶۶ : کد نویسی نمایش پر فروش ترین محصولات
- جلسه ۶۷ : کد نویسی مدیریت گروه بندی ها ، افزودن ، ویرایش سر گروه و زیر گروه ها
- جلسه ۶۸ : طراحی Loading بسیار زیبا برای بارگذاری صفحات ، نمایش یا عدم نمایش منوهای مدیریت بر اساس سطح دسترسی
- جلسه ۶۹ : کد نویسی نمایش فاکتور ها و زیر فاکتورهای سفارشات کاربران در پنل مدیریت
- جلسه ۷۰ : نمایش کلی اطلاعات وب سایت اعم از ( تعداد کاربران ، میزان درآمد و …) – و نمایش جدول فروش دوره ها
* سورس ، قالب و فایلهای مربوط به هر جلسه در آموزش موجود می باشد. *
شما می توانید هرگونه سوال یا پیشنهاد خود را از طریق دیدگاه های همین پست مطرح بفرمایید.
نوشته آموزش پیشرفته طراحی سایت رسانه آموزشی با Asp.Net Core 2.2 اولین بار در دانشجویار پدیدار شد.