برنامه نویسی Asp.Net Core 3
مایکروسافت در پروژه ی Asp.Net Core 3 سعی داشت تا وابستگی آن را به کتابخانه های شرکتها و افراد ثالث حذف کند تا در آینده ی طراحی وب سایت با این فریم ورک بتواند تضمین های بهتری برای پشتیبانی و پایداری محصولش ارائه کند و همچنین آن را بسیار سبکتر کند.
به همین دلیل یادگیری Asp.Net Core 3 برای آن دسته از فراگیرانی که به صورت حرفه ای در این زمینه فعالیت دارند و یا در تلاش هستند که در آینده برنامه نویس مایکروسافت شوند بسیار ضروری می باشد.
این مجموعه در 56 قسمت (43 ساعت) برای شما عزیزان با کیفیت بسیار عالی تهیه شده است.
سخن استاد در خصوص دوره برنامه نویسی Asp.Net Core 3:
در مورد این دوره ی تصویری آموزش asp.net core 3 بیشتر بدانیم
تغییرات باعث بروز شدن و پیشرفت می شوند.
اگر شما از آن دسته از فراگیرانی هستید که با نخسه Net Core در بستر وب با زبان برنامه نویسی Asp.Net MVC در نسخه های قدیمی آن آشنایی دارید این دوره بهترین فرصت برای بروز شدن شما می باشد.
شاید هم تا به حال هیچ آشنایی با Asp.Net Core و حتی Asp.Net MVC نداشته اید اما علاقه مند به یادگیری آن هستید پس این فرصت طلایی را از دست ندهید و با فراگیری این دوره که از صفر تا صد به صورت پروژه محور می باشد خودتان را بعنوان یک برنامه نویسی وب معرفی کنید.
در این دوره آموزشی با توجه به تغییر در نسخه Core و بروز شدن آن تلاش شده تا تغییرات و نحوه کدنویسی در بخش های سمت کاربری و سمت سروری به صورت ساده و روان آموزش داده شود.
این دوره به صورت پروژه محور از صفر تا صد در محیط ویژوال نسخه 2019 پیاده سازی شده است.
پیاده سازی پایگاه داده به صورت کدفرست و با لایه بندی بخش ها به صورت BLL , DAL , Domain همراه بوده است که یکی از حرفه ای ترین و امن ترین روش های کد نویسی به شمار می آید.
پسورد فایل: hoshmandan
فصل 1:
معرفی دوره
پیش نیازهای دوره
نسخه های برنامه های مورد نیاز
معرفی و آنالیز جدول های پایگاه داده
فصل 2:
ایجاد یک پروژه خالی بعنوان پروژه مادر
ایجاد یک کتابخانه سی شارپی
ساخت کلاس های اصلی به همراه اتریبیوت ها
ایجاد رابطه بین جدول ها
ساخت کلاس خطایابی
فصل 3:
معرفی کلاس های ایجاد شده برای بخش های جدول
بررسی کلید ها اصلی و خارجی
ساخت کلاس اتریبیوت های دلخواه
نحوه فراخوانی اتریبیوت ساخته شده
تعریف ویژگی های اصلی اتریبیوت
فصل 4:
بررسی صحت کد ملی با اتریبیوت
تعریف الگوریتم بررسی
ساخت متدهای لازم با ارث بری از اتریبیوت
استفاده از اتریبیوت ساخته شده در متدها
نحوه ایجاد شرایط نمایش خطا برای اتریبیوت
فصل 5:
بررسی صحت پسورد با اتریبیوت
تعریف الگوریتم بررسی پسورد قوی
معرفی Data Access Layer
تنظیم کانفیگ برای اتصال به پایگاه داده
ساخت کلاس DbContext و معرفی DbSet
فصل 6:
حل تمرین ساخت اتریبیوت تلفن همراه
تکمیل DbSet های Context
فعالسازی ماگریشن Migration
اضافه کردن Migration یه DAL
ساخت پایگاه داده
ایجاد کلاس Repository Pattern
ایجاد خاصیت IDisposable
فصل 7:
تعریف الگوهای ریپوزیتوری
ساخت کلاس GenericRepository برای الگو
ارسال کلاس های مورد نظر برای رپوزیتوری
نحوه تعریف TEntity
ساخت الگوی GetByID برای دریافت کردن اطلاعات با شناسه
ساخت الگوری GetByList برای دریافت اطلاعات به صورت لیست
فصل 8:
تکمیل بخش معرفی ریپوزیتوری جنریک های هر بخش
ایجاد الگوی وارد سازی داده بدون خروجی
ایجاد الگوی وارد سازی داده با خروجی
ایجاد الگوی بروزرسانی داده بدون خروجی
ایجاد الگوی بروز رسانی داده با خروجی
ایجاد الگوی حذف داده بدون خروجی
ایجاد الگوی حذف داده با خروجی
ایجاد الگوی ویرایش گروهی داده بدون خروجی
ایجاد الگوی وارد سازی گروهی داده بدون خروجی
ایجاد الگوی حذف گروهی بدون خروجی
فصل 9:
ابجاد بخش منطقی پروژه بنام BLL
ساخت کلاس اصلی برای فراخوانی پایگاه
دسته بندی کردن ازتباط با پایگاه و ارث بری از کلاس اصلی
ایجاد رابط کاربری با Core 3
انتقال قالب Html به پروژه
فصل 10:
ایجاد لایه اصلی سایت
پارچیال بندی صفحات اصلی
ساخت کوئری اول برای خروجی
بررسی ساختار صحیح کلاس ها در .Net Core
فصل 11:
ساخت کلاس AppConfig
ساخت کلاس Context برای ارتباط با پایگاه
ساخت کلاس پیش فرض ایجاد ماگریشن و پایگاه
ساخت Migration و اصلاح آن
ایجاد پایگاه داده در Sql
فصل 12:
ایجاد الگوی ریپوزیتوری در حالت .Net Core
اصلاح کلاس BassClass برای .Net Core
نمایش جدیدترین تورهای ثبت شده
نمایش جدیدترین هتل های ثبت شده
فصل 13:
ایجاد بخش جستجو برای تورها
ساخت ویومدل برای ترکیب جزئیات
جستجو تور براساس نام تور
جستجو تور براساس تاریخ ورود و خروج
جستجو تور براساس تعداد افراد
جستجو تور براساس تعداد اتاق
فصل 14:
ایجاد قالب جستجو
بررسی فیلدهای مورد نیاز
ایجاد تقویم شمسی نمونه با اسکریپت
فصل 15:
ساخت جستجو تور
ایجاد فیلد بررسی تاریخ مورد نظر
ایجاد تقویم شمسی و تبدیل آن به میلادی
ایجاد جستجو بر اساس تعدادنفرات بزرگسال و خردسال
ایجاد بخش جستجو براساس تعداد اتاق مورد نیاز
فصل 16:
ایجاد بخش نمایش جزئیات تور
ساخت کلاس ترکیبی برای نظرات و جزئیات تور
نمایش ترنسفر فرودگاهی تور با آیکون
جلوگیری از نمایش صفحه بدون محتوی
فصل 17:
نمایش نظرات تایید شده
نمایش امتیازات ثبت شده
نمایش میانگین امتیازهای ثبت شده
ثبت نظرات با امتیاز دهی
فصل 18:
تغییر بخش محاسبه امتیاز ها
ایجاد بخش رزرو
ساخت کنترل رزرو
نمایش اطلاعات جستجو روی صفحه تور
فصل 19:
نحوه تنظیم Session در کانفیگ
تنظیم کوکی در کانفیگ
تنظیم زمان ماندگاری Session در کانفیگ
دریافت اطلاعات رزرو تور و ذخیره سازی
فصل 20:
دریافت اطلاعات رزرو براسا رزرو انجام شده
نمایش اطلاعات رزرو با جزئیات
برطرف کردن مشکل Seesion رخ داده
ثبت نهاییرزرو و خروجی از آن
فصل 21:
معرفی درگاه پرداخت زرین پال
اضافه کردن وب سرویس به پروژه
معرفی وب سرویس تست زرین پال
ایجاد بخش درخواست پرداخت
ارسال اطلاعات به وب سرویس زرین پال
فصل 22:
تکمیل بخش تایید پرداخت از طریق درگاه پرداخت
ارسال اطلاعات به سمت سایت از طریق درگاه پرداخت
حذف رزروهای پرداخت نشده
نگهداری دائم اطلاعات پرداخت
کسر تعداد موجودی تور
فصل 23:
ایجاد صفحه صورتحساب پرداخت رزرو تور
نمایش اطلاعات رزرو و پرداخت
امکان ثبت اطلاعات افراد رزرو برای تور
نمایش اطلاعات کامل سفارش
فصل 24:
ایجاد بخش جستجوی هتل
تنظیم بخش جستجو هتل براساس تاریخ مورد نظر
ایجاد بخش انتخاب استان محل اقامت براساس استانهای برتردد و معمولی
جستجو براساس تعداد نفرات
فصل 25:
تکمیل بخش جستجوی هتل
اضافه کردن استان به جدول جزئیات هتل
بروزرسانی ماگریشن ها
ایجاد لیست جزئیات جستجوی هتل
فصل 26:
خروجی نهایی لیست جستجوی هتل
اصلاح بخش تاریخ جستجو در زمان نادرست
ایجاد بخش جزئیات هتل
فراخوانی ریپوزیتوری جزئیات هتل به صورت ترکیبی
فصل 27:
نمایش جزئیات صفحه هتل
نمایش گالری تصاویر هتل
نمایش امکانات هتل
نمایش ادرس و نام هتل و قیمت هر شب آن
فصل 28:
ادامه نمایش جزئیات هتل
نمایش اتاق و تخت های هتل به تفکیک
نمایش نظرات ثبت شده
امکان ثبت نظر و امتیاز
فصل 29:
بخش رزرو هتل
تفکیک تاریخ های رزرو شروع و پایان اقامت
نحوه دریافت آی پی کاربر
بررسی مجاز بودن تاریخ ها ی رزرو
ثبت رزرو کاربر براساس شناسه کاربری
فصل 30:
ادامه بخش رزرو هتل
دریافت اطلاعات رزرو هتل از جدول رزرو
اصلاح و بررسی مبلغ یک شب اقامت با شرط دستوری
تکمیل بخش رزرو هتل
خروجی گرفتن از مرحله رزرو هتل
فصل 31:
ادامه بخش رزرو هتل
اتصال به درگاه پرداخت بانکی
تایید پرداخت یانکی
ایجاد صفحه نمایش صورتحساب رزرو هتل
فصل 32:
ایجاد بخش ورود به سایت
ساخت کنترلر ورود
بررسی صحت ورود به سایت
اصلاح سیشن مربوط به بررسی ورود کاربر
فصل 33:
ایجاد بخش ثبت نام کاربر
ساخت صفحه ثبت نام
ایجاد بخش تایید نام کاربری ساخته شده
ورود کاربر با اعبتار سنجی تایید کاربری از قبل
فصل 34:
ادامه بخش ثبت نام
معرفی کلاس MailMessage
ایجاد متد ارسال ایمیل
بررسی بخش پورت و امنیت گذاری روی متد ارسال ایمیل
خروجی گرفتن نهایی ار ثبت نام
فصل 35:
ایجاد بخش ارسال پیامک
معرفی وب سرویس مورد نیاز
اضافه کردن کلاس وب سرویس پیامک به پروژه
ارسال مقادیر مورد نیاز به متد ارسال پیامک
تست نهایی خروجی وب سرویس
فصل 36:
ایجاد بخش مدیریت هتل ها
نمایش لیست تمامی هتل های ثبت شده
نمایش هتل هایی که تاریخ دسترسی انها برای رزرو به اتمام رسیده
ایجاد جدول هتل های با خاصیت های Dsiplay کلاس جدول ها
فصل 37:
ادامه بخش مدیریت هتل
ایجاد بخش نمایش جزئیات هتل
ساخت صفحه جزئیات
ایجاد بخش اضافه کردن هتل
ساخت صفحه ایجاد هتل
نحوه استفاده کردن از ویرایشگر متن CKEditor
فصل 38:
ادامه بخش ثبت هتل
دریافت فرم ثبت هتل
خروجی گرفتن از ثبت هتل
ایجاد صفحه ثبت جزئیات هتل
فصل 39:
ادامه بخش ثبت هتل
ایجاد بخش ذخیره جزئیات هتل
دریافت جزئیات هتل به صورت آرایه ای
ایجاد بخش امکانات هتل
دریافت اطلاعات امکانات به صورت آرایه ای
اصلاح دریافت ایکون و عنوان امکانات
فصل 40:
ادامه بخش مدیریت هتل
امکان اضافه کردن تصاویر گالری هتل
نحوه ذخیره تصویر روی روت هاست
ثبت تصاویر گالری و ایجاد تصویر پیش فرض
ایجاد بخش حذف هتل
حذف هتل به صورت موقت
فصل 41:
ادامه بخش مدیریت هتل
ایجاد بخش ویرایش هتل
امکان تغییرتاریخ های دسترسی
امکان اصلاح هتل بدون تغییر تاریخ
فصل 41:
بخش پایان مدیریت هتل
امکان ویرایش جزئیات هتل
نحوه دریافت تمامی رکوردهای جزئیات یک هتل
اصلاح به روز آرایه ای برای جزئیات
خروجی نهایی ویرایش هتل
فصل 43:
ایجاد بخش مدیریت تور
نمایش صفحه اصلی تورها
نمایش جزئیات تور
امکان Join کردن برای دو بخش تور و جزئیات تور
خروجی گرفتن از صفحه جزئیات
فصل 44:
ادامه بخش مدیریت تور
ایجاد صفحه ثبت تور جدید
اضافه کردن تصویر تور در بخش ثبت تور
خروجی گرفتن از صفحه ثبت تور
فصل 45:
ادامه بخش مدیریت تور
ایجاد بخش ثبت جزئیات تور
دریافت اطلاعات تاریخ تورها
دریافت اطلاعات به روش Bind
خروجی نهایی ثبت تور و جزئیات
ایجاد فیلد غیرفعالسازی برای تور
فصل 46:
ادامه بخش مدیریت تور
تکمیل بخش حذف تور
امکان حذف موقت تور
نمایش تورهای غیرفعال شده روی صفحه اصلی
ایجاد بخش ویرایش تور
فصل 47:
ادامه بخش مدیریت تور
تکمیل بخش ویرایش تور
امکان حذف تصویر تور و جایگزینی تصویر جدید
ایجاد بخش ویرایش جزئیات تور
ثبت نهایی ویرایش و خروجی
فصل 48:
امکان ورود صحیح به سایت
اصلاح Session های استفاده شده
به کارگیری از کوکی ها در کنترلر کاربری
نحوه صحیح فراخوانی کوکی و زمان دهی انقضا به کوکی
ورود و خروج صحیح از سایت
فصل 49:
ایجاد بخش دسترسی کاربران به سایت
ساخت متد بررسی مجاز بودن کاربر به عملیات
ساخت متد برای دسترسی مدیریت به سایت
ساده سازی فراخوانی دسترسی ها
خروجی نهایی دسترسی ها
فصل 50:
ادامه بخش مدیریت دسترسی
ایجاد قسمت پروفایل کاربری
جدا سازی کاربر عادی و مدیر در پروفایل
دسترسی جداگانه برای پروفایل به مدیر
فصل 51:
ایجاد لینک های دسترسی به مدیریت هتل و تور در پروفایل
ایجاد لیست تورهای رزرو شده در پروفایل
ایجاد لیست هتل های رزرو شده در پروفایل
تفکیک رزروهای استرداد شده یا رزرو نهایی در پروفایل
فصل 52:
ایجاد بخش مدیریت نظرات ارسالی
نمابش لیست نظرات
امکان تایید یا عدم تایید نظرات
مشاهده جزئیات نظرات
مرتب سازی ستون جدول نظرات به صورت نزولی
مرتب سازی ستون جدول نظرات به صورت صعودی
فصل 53:
ادامه بخش مدیریت نظرات ارسالی
ایجاد کلاس صفحه بندی
نحوه بدست آوردن تعداد صفحات و صفحه جاری و صفحه یعدی و قبلی
صفحه بندی همراه با مرتب سازی
فصل 54:
ایجاد بخش نمایش لیست صورتحساب هتل
نمایش صورت حساب کل و استرداد شده
امکان ثبت استرداد وجه
نمایش صورتحساب کلی روی نمودار
استفاده از چارت جاوااسکریپت
فصل 55:
ایجاد بخش نمایش لیست صورتحساب تور
نمایش صورت حساب کل و استرداد شده تور
امکان ثبت استرداد وجه تورها
ایجاد بخش فیلتر گذاری
فصل 56:
ساخت فیلتر برای هتل براساس ستاره
تبدیل تاریخ شمسی به میلادی
خروجی نهایی فیلتر هتل
پابلیش پروژه و اتمام آن
سحر سلیمی
در ویژوال استودیو من core 3 نمایش داده نمیشود در حالی که نصبش کردم. هر کاری میکنم جز core 2.1 کور دیگری نصب دیده نمیشود! در حالی نصب کرده ام همه را
مشکلی نداره با 3.1 کار کنید
ورژن 16.11.17 بلاخره نصب شد ولی برای core 3.0 نوشته not support و برای 3.1 نوشته long term support
ورژن ویژوال استودیوتون رو بفرمایید دوست عزیز
سحر سلیمی
چرا وقتی دارید ریپوزیتوری مینویسید برای بعضی توابع savechange میذارید برای بعضی نمیذارید ؟ یکی از insert ها savechange ذاره اون یکی نداره چرا؟
مثال هایی که زدند برای اشنایی با این موضوع بود که تفاوت بین نوشتن دستورهای برای درج داده با نمایش خروجی و درج داده بدون نمایش اطلاعات را متوجه شوید بنابراین هر جا که تغییرات در دیتابیس باید ذخیره شود مثل وارد کردن اطلاعات یا حذف داده حتما از savechanges باید استفاده کنید
بله متوجه هستم که زمانی که لازم باشد تغییرات در پایگاه داده ذخیره شود باید سیو کنیمم ولی در ویدئو اموزشی 8 در فایل Generic repository برای بعضی توابع کوئری ها save change نوشته نشد . مثلا دو تایع insert در فایل هست برای یکی نوشته شده برای دیگری نه به چه دلیل؟ برای توابع delete هم نوشته نشد درحالی که میخواییم نتایج در پایگاه داده ذخیره شود!
save changes را جایی استفاده میکنیم که میخواهیم تغییرات در db ذخیره بشوند برای اینکه کامل متوجه سوال شما بشوم لطف کنید فصل مورد نظر و اکشن مربوطه رو بفرمایید که چک کنیم ممنون از شما
سحر سلیمی
با سلام و خسته نباشیدخدمت استاد سوالی داشتم روش code first بهتر است یا model first؟ یه جایی نوشته بود برای پروژه های بزرگ خوب نیست از code first استفاده کنیم چرا به چه علت ؟ مگر چه فرقی داره؟ اصلا مزیت یا معایب این دو نسبت به هم چی هست؟
سلام و وقت بخیر خیلی بستگی به پروژه داره ، زمانی که پروزه کد فرست باشه تغییراتی که روی داده ها میخواین بدین و اضافه کردن سطر و ستون و .... ساده تر است و زمان کمتری لازم داره که تغییرات ایجاد بشه توصیه میکنم برای آشنایی بیشتر مقاله این لینک را مطالعه کنید https://www.hoshmandan.com/Home/DetailsPost/100/CodeFirst-or-DBFirst-
امیر
با سلام و خسته نباشید خدمت آقای مهندس بهارلو یر اساس سایت شما سایت من در قسمت سرچ متفاوت می باشد مثلا در قسمت سرچ فقط 3 drop down list می بلشد شبیه قسمت انتخاب استان در رزرو هتل سناریو برای کلینیک می باشد مثلا دراپ داون اول کلینیک بعدی بخش و در انتها پزشک من 3 تیبل درست کردم doctors , specifications , clinics هر سه تا تیبل را به یک تیبل کلید خارجی دادم و تمام کلید های خارجی در یک تیبل می باشد. جانکشن linq بدین صورت نوشتم: public List<DoctorsToSpecifications> GetDoctors() { var DoctorLst = (from cds in db.Clinic_and_DoctorsRepository.GetByList().ToList() join d in db.DoctorsRepository.GetByList().Where(e => e.IsActive.Equals(true)).ToList() on cds.DoctorId equals d.DR_ID join c in db.ClinicRepository.GetByList().ToList() on cds.ClinicId equals c.CL_ID join s in db.Doctor_SpecificationsRepository.GetByList().ToList() on cds.specificateId equals s.SPEC_ID select new { cds, d, s, c } ).Where(c => c.c.CL_ID.Equals(c.cds.ClinicId)); List<DoctorsToSpecifications> doctors = new List<DoctorsToSpecifications>(); if (DoctorLst.Count() > 0) { foreach (var item in DoctorLst) { DoctorsToSpecifications d = new DoctorsToSpecifications(); d.first_name = item.d.first_name; d.last_name = item.d.last_name; d.Picture = item.d.Picture; d.specification_Name = item.s.specification_Name; d.clinic_name = item.c.clinic_name; d.CL_ID = item.c.CL_ID; d.DR_ID = item.d.DR_ID; d.SPEC_ID = item.s.SPEC_ID; doctors.Add(d); } return doctors; } else { return null; } } ممنون میشم راهنمایی بفرمایید چطور این drop down listd با هم ارتباط داشته باشند طوری که کلینیک انتخاب شد سپس دراپ باکس بعدی فقط بخش های مرتبط با کلینیک و بعد دکتر های مرتبط با بخش ها را فقط در دراپ داون نشان دهد...
کافیه شما یک جدول داشته باشید که جدول تخصص و کلینیک باشه مثلا clinspe و با خودش در ارتباط باشه که برای شما ارسال میشود، یک جدول پزشک داشته باشید و یک جدول جدا هم داشته باشید که هم با جدول پزشک و جدول clinspe در ارتباط باشد و به سادگی میتوانید پیاده سازی که میخواهید رو انجام دهید
سلام و وقت بخیر دوست عزیز روشی که استفاده کرده اید خیلی مناسب نیست و بهتر است که جداول با هم لینک باشند یعنی مثلا کلید خارجی کیلینیک در جدول تخصص ها باشد و کلید خارجی تخصص در جدول دکتر ها باشد با این روش دیگه نیازی نیست که join انجام بدین و join خیلی سرعتتونو کند میکنه
babolfazla
سلام 1) چرا شما از class libraray .net استفاده کردید نه standard 2) چرا از ef.net استفاده کردید درصوریتکه عنوان دوره شما .netcore3 است قاعدتا باید از efcore استفاده میکردید باتشکر
درود. مورد های اشاره شده شما به جا هست, اگه صبور باشید و چندین قسمت بعد رو مشاهده کنید خواهید دید که این موارد اضافه و جایگزین خواهند شد. باتشکر
babolfazla
کلمه عبور دارد قسمت سوم
درود بر شما در صورت درخواست کلمه عبور از hoshmandan استفاده نمایید