هفتمین جلسه دوره آموزشی ASP .NET Core پیشرفته با تدریس مهندس علیرضا ارومند با موفقیت برگزار شد.
از مباحثی که در این جلسه مطرح شد عبارتند از:
1- وابستگی و ایرادات آن
یکی از بزرگترین مشکلات سیستمهای نرم افزاری وابستگی قسمتهای مختلف برنامه به هم میباشد. در صورت وجود وابستگی تغییرات در یک بخش باعث تاثیرات مخرب در سایر قسمتها میشود. ضمن اینکه در صورت وابستگی سخت بین قسمتهای مختلف برنامه تغییر و جابجایی ماژولها با یکدیگر نیز بغضا غیر ممکن است.
2- DI چیست؟
یکی از بزرگترین تغییرات در .NET Core و ASP.NET Core ماژولار شدن بخش های مخلتف آن و پشتیبانی توکار از DIP میباشد که بحث این جلسه ما بود.
در ابتدا بررسی کردیم به صورت عمومی و معمول چه عادتها و روشهایی منجر به تولید یک برنامه وابسته میشود که نگهداری و توسعه آن به مرور زمان سخت و پرهزینه میشود.
در قسمت بعدی شروع به بازنویسی کد و جداسازی وابستگیها از هم کردیم و دیدیم چگونه میتوان وابستگیهای یک برنامه را کم کرد و صرفا وابستگیهایی به قراردادها داشته باشیم نه به پیاده سازی.زمانی که وابستگیها را جدا میکنیم باید مسئولیت برآورده سازی وابستگیها را به یک ابزار سوم واگذار کنیم. اما قبل از شروع با ابزار سعی کردیم عملکرد این ابزارها را شبیه سازی کنیم تا با ساختار و رفتار داخلی DI Containerها آشنا شویم.
3- مدیریت وابستگیها
بعد از اینکه با روال کلی توسعه یک برنامه غیر وابسته آشنا شدیم نوبت به معرفی امکانات توکار ASP.NET Core برای مدیریت وابستگیها رسید. در نسخه جدید به صورت توکار امکان مدیریت وابستگیها فراهم شده است میتوانیم بدون وابستگی به ابزارهای دیگر از یک DI Container خوب بهرهمند شویم.
4- DI Container
بعد از بررسی امکانات اولیه نوبت به مدیریت طول عمر اشیا توسط DI Container رسید. ابزار توکار سه چرخه حیات مختلف برای اشیا فراهم میآورد که به ترتیب تمامی این روشها را مورد بررسی قرار دادیم و دیدیم چگونه میتوانیم اشیایی داشته باشیم با طول عمرهای متفاوت.
تا اینجای کار تمامی وابستگیهایی که در برنامه داریم از طریق سازنده کلاس به کلاسها تزریق میکردیم. اما شاید سناریوهایی باشد که نیاز داشته باشیم سازنده نداشته باشیم. برای این شرایط ۲ روش دیگر را بررسی کردیم. در یکی از این روشها نیازمندیها را مستقیما از DI Container دریافت کردیم و مزایا و معایب این روش را دیدیم و در نهایت دیدیم چگونه میتوانیم وابستگی را فقط به یک تابع خاص تزریق کنیم.
5- نحوه کارکرد با Factoryها
در ادامه کلاس نحوه کار کردFactory ها را بررسی کردیم و دیدیم چگونه با ترکیب این امکان و الگوی Proxy میتوانیم یک برنامه ماژولار و کاملا قابل انعطاف طراحی و پیادهسازی کنیم.
جهت کسب اطلاعات بیشتر میتوانید به دوره بسیار کاربردی دوره آموزشی ASP.NET Core MVC پیشرفته مراجعه کنید.
2 دیدگاه
امین ثریا
با عرض درود و خسته نباشید
مطالب ارائه شده توسط استاد ارومند کامل و عالی هستن اما مدتیه که دچار نگرانی کاذب شدم و همین با عث عدم رغبت من به یادگیری بیشتر تو این زمینه میشه!
دلیلش هم اینه که اکثر شرکتها میل به زبان php و جاوا دارن و هرجا که سرچ میکنم غریب به نود درصد سایتها با php درست شدند(جالبه خود مایکروسافت) و بیشتر استخدامی ها مربوط به پایتون و laravel و wordpress هست با وجود این که من همه سرمایم رو روی mvc مایکروسافت بستم اما با این شرایط حاکم کم کم دارم از آینده کاریم میترسم . و نمیدونم بازهم باید به نگرانیم ادامه بدم یا ن
آرزو محمدزاده
سلام وقت بخیر
به نقل از مهندس ارومند
نگرانی کاذبی هست و جدی نیست به این دلیل که بازار کار ایران کاملا متفاوتت و دات نتی هست اما شاید به اندازه درخواست php کار نباشد و میزان حقوق هم متفاوت هست و قابل مقاییسه نیست.
و سطح دریافتی یک دات نت کار از یک php کار خیلی بیشتر است.
واینکه در سطح جهانی بستگی به کشور دارد اگر در اروپا باشید درخواست برای جاوا بیشتر از دات نت است .
ولی در استرالیا و کانادا و امریکا به این صورت نیست هر کدام شرایط خودشان را دارند.
شما در هر زمینه ای که قوی باشین کار به قدر کفایت هست و جای نگرانی نیست.