این دوره به شکل رایگان به تدریج در یوتیوب قرار خواهد گرفت. در صورت خرید مبلغ آن صرف امور خیریه خواهد شد.
در این دوره به کمک asp.net Core به بررسی Clean Architecture می پردازیم. پیش نیاز این دوره آشنایی با سی شارپ و دات نت کور در حد ابتدایی است و مفاهیم تا حد امکان به شکلی توضیح داده شده که افراد مبتدی نیز بدون مشکل ویدیوها را دنبال کنند. این دوره بر اساس مقالاتی که در ویرگول با همین نام نوشته شده تهیه شده است.
آیا این دوره برای من مناسب است؟
اگر برنامه نویسی هستید که دوست دارد تمرکزش را روی منطق برنامه نویسی بگذارد و هر بار درگیر از صفر آغاز کردن نشود دوره مناسبی را انتخاب کرده اید. در این دوره شما شکل دهی به یک پروژه را یاد خواهید گرفت و به شکل تئوری و عملی با یک پروژه ساختارمند کار خواهید کرد.
در این دوره به چه مباحثی پرداخته خواهد شد؟
نام این دوره آموزش Clean Architecture است. سرفصل مطالب را میتوانید در پایین همین صفحه ببینید اما بطور کلی شما ابتدا با لایه بندی سنتی آشنا میشوید و تفاوت آن با Clean Architecture توضیح داده خواهد شد. اگر میخواهید خیلی عمیق تر مطالب گفته شده در این دوره را بیاموزید حتما یک نگاهی به این سلسله مقالات بیاندازید؛ اما نگران نباشید اگر حوصله خواندن ندارید خلاصه آن مطالب در این دوره بیان شده است.
در این دوره یک پروژه ساده مدیریت محتوا ساخته و در حد توضیح معماری جزئیات آن بررسی میشود. در مورد ریپازیتوری و الگوی پیاده سازی آن در پروژه توضیح داده میشود. اینکه سرویس چیست و چه نقشی در بیزنس دارد بخشی از مطالبیست که بیان شده است. همچنین در مورد Entity Framework و ارتباط آن با ریپازیتوری توضیحاتی داده شده است. لایه های Core و Infrastructure و مفاهیمی همچونPresenter و Domain و Entity و UseCase و Service و Interactor و ... در این دوره برای شما روشن خواهند شد.
در انتهای دوره با MediatR آشنا میشویم و آن را روی پروژه خود پیاده می کنیم.
دوره آموزشی Clean Architecture
کل ویدیوهای مربوط به آموزش معماری کلین، در یک فصل ارائه میشود. این فصل شامل 19 بخش مختلف است که به توصیف مفاهیم مختلف و پیاده سازی یک پروژه می پردازد. انتظار میرود برنامه نویس بعد از مشاهده این فصل بتواند یک پروژه با معماری کلین را توسط دات نت کور پیاده سازی نماید.
در این بخش آنچه در مورد CA در مقالات گفته شد شبیه یک کلاس درس به شکل خلاصه توضیح داده میشود. لایه بندی سنتی را خواهیم دید و تفاوت آن با CA را بررسی خواهیم کرد. اینکه وظیفه اصلی هر کدام از لایه ها چیست و چگونه با هم تعامل دارند در این بخش توضیح داده شده است.
در این بخش تصویر معروف Clean Architecture بر اساس توضیحات موجود در مقدمه تفسیر میشود. با مشاهده این بخش دیگر مشکلی در برقراری ارتباط با این دیاگرام نخواهید داشت
در این بخش ملاحظاتی که برای کد نویسی تحت یک معماری باید لحاظ کنیم گفته شده است. اینکه نباید کورکورانه لایه ها را ساخت و قبل از مشخص شدن پروژه قواعد تکراری و به درد نخور را به عنوان چارچوب تعیین کرد.
در این بخش توضیح میدهیم که قرار است چه پروژه ای در قالب وب سایت مدیریت محتوایی دارای جداول Post و Category و Tag و Comment و User ایجاد شود.
هر پست میتواند یک کتگوری داشته باشد و یک کتگوری میتواند چند پست داشته باشد. هر پست میتواند چند تگ داشته باشد و یک تگ میتواند چند پست داشته باشد. هر پست میتواند چند کامنت داشته باشد و هر کامنت مرتبط با یک پست است. هر پست توسط یک کاربر ایجاد میشود و طبیعتا یک کاربر میتواند چندین پست داشته باشد.
در این بخش قرار است وظایفی را که لایه Core به لایه Persistence محول میکند را به شکل اینترفیس تعریف کنیم. میخواهیم برای موجودیت Category یک Crud داشته باشیم و برای بخش های دیگر هم قابلیت هایی تنظیم کنیم. نگاه ما در تولید فانکشن یک نگاه بیزنسی است و بر اساس خواسته ی UI قابلیت ها را تعریف میکنیم و به فکر شکل جداول نیستیم.
در این بخش با نصب کتابخانه MediatR به کدهای خود سامان میدهیم. علاوه بر ساماندهی کد ما آماده تبدیل به CQRS است. یک نمونه برای endpoint مرتبط با کوئری گرفتن از دیتابیس را پیاده سازی میکنیم.
در این بخش ما ساختاری برای UseCase ها ایجاد میکنیم و به جای MediatR از UseCase های خودمان استفاده میکنیم.
اعتبار سنجی به کمک Jwt
در این بخش به پروژه، اعتبارسنجی کاربر شامل ثبت نام و لاگین یا همان آتوریزیشن را اضافه می کنیم. با مفهوم token در jwt آشنا خواهیم شد و در مورد Claim صحبت خواهیم کرد.
در این بخش متد لاگین را به شکل شبه کد مینویسیم و بر اساس توکنی که تولید میکنیم دسترسی به یک api تستی را بررسی میکنیم. همچنین به مفهوم Claim و استخراج اطلاعات Claim در این بخش میپردازیم