149,000 تومان

احسان بابائی
BackEnd , DotNet ,Angularبرنامه نویسی وب-Asp.net core
تزریق وابستگی درAsp.Net Core
بررسی اجمالی
- فصل 1
- قسمت 21
- مدت زمان 03:10:06
- سطح پیشرفته
- وضعیت به اتمام رسیده
- سورس کد دارد
وابستگی یا Dependency چیست؟
قبل از اینکه مفهوم تزریق وابستگی را یاد بگیریم باید با خود وابستگی آشنا بشویم. در زبانهای برنامهنویسی هر کلاسی که ما ایجاد میکنیم میتواند تعدادی وابستگی داشته باشد.
این وابستگیها معمولاً کلاسهای دیگری هستند که ما از آنها برای پیشبرد هدف اصلی خود استفاده میکنیم.
بهعنوانمثال فرض کنید در برنامهای که توسعه دادهاید یک کلاس به نام SendMail دارید که وظیفه ارسال ایمیل در پروژه شما را برعهده دارد.
و یک کلاس دیگر به نام GMailService دارید که وظیفه ارسال ایمیل از طریق اکانت google را بر عهده دارد.
و ما اگر در کلاس SendMail از کلاس GMailService یک نمونه ایجاد، و از آن استفاده کرده باشیم، در واقع کلاس SendMail یک وابستگی به نام GMailService دارد و بدون آن وابستگی نمیتواند کار خود را بهدرستی انجام دهد.
به طور خلاصه اگر در کلاسهایی که ایجاد میکنید، نمونه یا instanceهایی از کلاسهای دیگر در کلاس خود ایجاد میکنید این نمونهها هرکدام یک وابستگی محسوب میشوند.
تزریق وابستگی (Dependency Injection) چیست؟
اگر در یک کلاس، بهصورت مستقیم در کد خودتان یک نمونه (Instance) از کلاس دیگری ایجاد میکنید در واقع خود شما وابستگی کلاس را تأمین کردهاید.
در مثال بالا اگر بهصورت مستقیم یک نمونه از کلاس GmailService در کلاس SendMail ایجاد کنیم، خود ما وابستگی کلاس را ایجاد کردهایم که این روش در کدنویسی حرفهای مرسوم نیست و ما باید بهجای این کار از تزریق وابستگی استفاده نماییم.
اما تزریق وابستگی یعنی چه؟ اگر بخواهیم تزریق وابستگی را به زبان ساده تعریف کنیم باید بگوییم طی فرایندی یک بخش را برای تأمین وابستگیهای کلاسها ایجاد میکنیم، و این بخش وابستگیهای هر کلاس را ایجاد و به آن کلاس ارسال میکند.
پس تعریف تزریق وابستگی یعنی وابستگیهای یک کلاس را از منبعی دیگر دریافت کنیم.
چرا تزریق وابستگیها را انجام میدهیم؟
هرچه برنامه بزرگتر میشود نگهداری آن هم سختتر میشود و در برنامههای بزرگ برای این که نگهداری را سادهتر کنیم و احتمال خطا را پایین بیاوریم باید از یکسری اصول و دیزاین پترنها استفاده کنیم که برنامه ما به استانداردهای یک برنامه بزرگ نزدیکتر شود و برای نگهداری و توسعه با مشکلات کمتری روبرو شویم.
بهاحتمال زیاد اصول Solid را شنیدهاید. اصولSolid به ما 5 اصل را معرفی میکند که ما با رعایت کردن این اصول میتوانیم کدنویسی بهتری انجام دهیم.
اصل D یا همان Dependency Inversion Principle تأکید دارد که وارونگی وابستگیها را انجام دهیم و این یعنی اینکه ماژولهای سطح بالا بهجای وابستگی به پیادهسازیها باید به انتزاع وابسته باشند.
البته اصل D راه حلی برای پیادهسازی آن ارائه نمیکند. حالا چطور در پروژه خود اصل D را اعمال کنیم؟ تزریق وابستگی یک روش یا راهحل برای پیادهسازی اصل D یا همان وارونهسازی وابستگیها است. البته شاید هنوز این تعریف را بهخوبی درک نکنید. اما جای هیچ نگرانی نیست در طول دوره با مثالهای متعدد شما را کامل با این مفهوم و موضوع آشنا میکنیم.
در دوره تزریق وابستگی در asp.net core چه چیزی یاد میگیریم؟
- در این دوره ابتدا اصل D از اصول Solid را بررسی میکنیم و سپس به آموزش تزریق وابستگی که یک روش برای اعمال اصل Dependency Inversion Principle در پروژههای برنامهنویسی است میپردازیم.
- سپس بررسی میکنیم که استفاده از تزریق وابستگی چه دست آوردهایی برای تیم فنی دارد؟ درواقع با استفاده از تزریق وابستگی چه مزایایی به دست میآوریم؟ با بررسی این موارد مطمئناً شما ترغیب میشوید در همه پروژههای خود از تزریق وابستگیها استفاده نمایید.
- یک نمونه تزریق وابستگی در سی شارپ به زبان ساده را پیادهسازی میکنیم و شما بعد از دیدن این قسمت بهصورت کامل مفهوم تزریق وابستگی را درک میکنید.
- در ادامه تزریق وابستگی در دات نت را به شما آموزش میدهیم.
- انواع تزریق وابستگی در Asp.Net Core را یاد خواهید گرفت.
- مثال تزریق وابستگی متنوعی در سی شارپ را پیادهسازی میکنیم.
- طول عمر اشیا را بررسی میکنیم.
و کلی موارد دیگر مربوط به بحث تزریق وابستگی
بعدازاین دوره شما کامل با تزریق وابستگیها در سی شارپ و asp.net core و همه موارد مربوط به آن آشنا میشوید و متوجه میشوید که کجا؟ و چرا؟ باید از تزریق وابستگی استفاده کنید.
پس همین الان با شرکت در این دوره یکبار برای همیشه تزریق وابستگی ها را یاد بگیر و مثل حرفهایها کدنویسی انجام بده.
ویدئوها
بعد از خرید این دوره آموزشی، به آسانی قادر خواهید بود به دوره دسترسی پیدا کنید و ویدئوهای آموزشی را دانلود کنید.
برای ارسال نظر وارد حساب کاربری خود شوید
ورود به حساب کاربری ثبت نام
نظرات 52
سلام. ممنونم بابت آموزش عالی تون!
سوال 1،
در قسمتی که قرار بود از بین چند سرویس یکی رو انتخاب کنیم، و مدیر سایت بتونه از طریق appsetting یکی رو انتخاب کنه، من این کد رو نوشتم که بنظرم ساده تر هست:
قسمت homeController :
و در قسمت appsetting این رو اضافه کردم :
آیا این کدی که نوشتم رو میتونم بجای کد شما در مراحل بعد استفاده کنم یا بعدها مشکل ایجاد میکنه؟
سوال 2 ،
من از منطق <IEnumerable <ISendService سردر نیاوردم، مثلا نتونستم از <IEnumerable <ISendService استفاده کنم، فقط IEnumerable قبول میکرد. چرا؟ و این که این باید لیستی از آبجکت های سرویس کانکریت میشد، اما تایپ هرکددوم ISendService هست، اینجا کمی گیج شدم، لطفا کمی راهنمایی کنید. ممنون
من این دوره رو همین الان تموم کردم
واقعا عالی بود، خیلی از موارد هم تو پروژه های بزرگ کاربرد داره هم گفته شده و این باعث میشه دید افراد به آینده باز بشه پیش زمینه خوبی پیدا کنن.
واقعا متشکرم از شما آقای بابائی و همکاران محترمتون.
یه پیشنهاد هم داشتم، بنظرتون برایدات نت 6هم امکان داره آپدیتی برای این دوره تهیه بشه؟
سلام ممنونم از دلگرمی شما
حتما به دات نت 6 آپدیت میشه
سلام
خیلی خیلی از شما دست اندرکاران وب سایت bugeto.net ممنونم که هم محصولاتتون رو با کیفیت عالی عرضه میکنین و هم تخفیفات خوبی رو تو سایت قرار دادین.
من این چهار دوره رو خریداری کردم.
آموزش c# - سطح متوسط
آموزش مدیریت خطا در سی شارپ و Asp.Net Core
آموزش Identity در Asp.Net Core
تزریق وابستگی درAsp.Net Core
لطفا بنده رو راهنمایی بفرمائید که با چه ترتیبی این دوره ها رو ببینم که بیشترین بازده رو داشته باشم
پیشاپیش متشکرم
سلام
ممنونم از شما که به نام باگتو اعتماد کرده اید
لطفا در ابتداسی شارپ متوسط را مشاهده نمایید
سپس دوره مقدماتی asp.net core و قبل از دیدن پروژه این دوره بهتره که دوره تزریق وابستگی را مشاهده نمایید
و سپس دوره Identity
و بعد دوره مدیریت خطا را مشاهده نمایید
روز برنامه نویس رو به شما آقای بابائی و تیم زحمتکشتون تبریک میگم👨💻✨🎉🎈🎆🎇👩💻
ممنون بابت آموزشهای خوبتون
خسته نباشد🖐
سلام
ممنونم
منم روز برنامه نویس رو به شما و همه کاربران باگتو تبریک میگم
استاد سلام سال نو مبارک باشه
خیلی وقته خبری نیست ، انشاالله قسمت های جدید دوره ها از چه تاریخی بارگذاری میشن؟
سلام
این دوره به اتمام رسیده
اما بقیه دوره ها شروع به ضبط کردیم و در هر هفته چندین نوبت آپلود قسمت های جدید را داریم
سلام جناب بابایی وقتتون بخیر،
من به مشکلی برخوردم که هرچی گشتم تو اینترنت جوابی براش پیدا نکردم
در تمرین چهارم که به صورت عملی پروژه ایجاد کردید، من دقیقاً کارهای که شما انجام دادید رو انجام دادم. در زمان 04:38 از ویدئو زمانی که شما Add reference...رو میزنید؛ namespace اضافه میشه و به راحتی ادامه میدید.
اما زمانی که من بر روی Add reference میزنم، یک لودینگ ظاهر میشه که اگر کنسل رو نزنیم تا چند ساعت میمونه و اتفاقی نمی افته و یک اعلان در ویندوز مبنی بر Visual Studio is busy. نشون میده،
شما اطلاعی از این اررور ندارید
ممنون اگه راهنماییم کنید
سلام
نه متاسفانه
نرم افزار رو بروزرسانی کنید احتمالا درست بشه
حل شد ممنون
سلام
طی دو روز کل فیلم ها را دیدم. فوق العاده باکیفیت و روان تدریس شده و خیلی چیز ها یاد گرفتم
واقعا لذت بردم. ممنون از زحمات شما مخصوصا مدرس دوست داشتنی آقای بابایی عزیز
منتظر دوره های جدید شما هستیم.
سلام
من اين دوره رو خريدارى كردم چند ماه پيش ولى تا قسمت ١١ دانلود كردم فكر كردم تموم شده
الان ميخوام ادامش رو دانلود كنم نميتونم چرا؟؟؟
سلام مشکلی در دانلود وجود نداره
چه پیغامی دریافت می کنید؟
مهندس جان سلام.
ببخشید دیر جوابتونو خوندم
یه پروژه چند زبانه دارم می نویسم و می خواستم به انتیتی ها، مثلا validation یا display name که اعمال میکنم بر اساس زبان انتخاب شده باشه.
از localization برای ترجمه استفاده نکردم.
روشم درسته مهندس عزیز؟
سلام مهندس
خدا قوت.
واقعا ممنون از این دوره فوق العاده
می خواستم بدونم امکان تزریق وابستگی در مدل ها وجود داره؟
سلام آقا رضا
خوشحالم که این دوره تونسته تایید شما رو بگیره
در هر جایی از Asp.Net Core میتونیم تزریق وابستگی رو انجام بدیم.
اما شما منظورتون انتیتی هاییه که تبدیل میشه به جداول دیتابیس؟
برای چه منظوری میخواید در این انتیتی ها تزریق وابستگی رو انجام دهید؟
قشنگ معلومه، هدفتون اینه تمام چیزی که میدونید رو به دانشجو انتقال بدین
ممنونم از آموزش بسیار ارزشمندتون
دید من نسبت به تزریق وابستگی بازتر شد
و الان حس می کنم که میدونم چرا و کجا باید از تزریق وابستگی استفاده کنم.
قسمت 5 این دوره عالی بود برای من
با عرض سلام و خسته نباشید
تشکر می کنم واقعا عالی بود.
بهترین دوره تزریق وابستگی در سطح وب فارسی همین بود.
خیلی استفاده کردیم.
منتظر دوره های بیشتر از آقای بابایی هستیم
سلام
فایل فشرده قسمت های 18-19-20 مشکل داره و حتی WinRar آخرین ورژن رو نصب کردیم ولی باز هم Error میده. لطفاً مشکل رو بررسی و مرتفع کنید.
با تشکر.
سلام
بررسی کردیم فایل ها مشکلی نداشتند.
این سه قسمت رو با یک فرمت دیگه فشرده کردیم و برای شما ارسال شد.
لطفا ایمیل خود را چک کنید
سلام آقای بابایی
روزتون بخیرباشه. حقیقتش ما فکر میکردیم این مبحث تزریق وابستگی نسبت به دوره پیشرفته تون خیلی خیلی زودتر تمام بشه ولی ظاهراً با این سرعتی که ای بخش رو منتشر میکنید احتمالاً حالا حالاها باید منتظر ادامه ویدئوهای این بخش باشیم. به عنوان مثال خودتون به پنج ویدئوی آخری که برای این بخش آپلود کردید دقت بفرمائید، کاملاً متوجه میشید که کل مبحث آموزشی این پنج ویدئوی آخری حتی میتونست در قالب یک یا حداکثر دو ویدئو منتشر بشه که متاسفانه در پنج بخش در دسترس قرار گرفته و دلیلش هرچی که هست مطمئناً برای یکسری از برنامه نویسان روی تصمیم به خرید پکیج دوره پیشرفته ASP.NET Core شما تاثیر گذاشته چرا که هرکسی که تزریق وابستگی رو ازتون تهیه کرده حتماً نیازش بوده که گرفته وگرنه اگه میخواست این مباحث رو بصورت متراکم از توی سایتهای داخلی و خارجی جمع آوری کنه خب مسلماً سرعت یادگیریش بالاتر از این فاصلهی زمانی بین آپلود ویدئوهای شما بود. در نهایت اگه حتی یک درصد هم فکر میکنید که دوره پیشرفته تون هم طبق صحبتهایی که کردید تا اواخر شهریور یا حداکثر اواخر مهرماه تمام نمیشه خواهشمندیم اطلاع رسانی کنید تا بفکر تهیه این دوره آموزشی از منابع دیگه ای باشیم.
با تشکر از توجهتون(هرچند برخی از کامنتها در سایت شما منتشر نمیشه)
سلام دوست عزیز
1- بابت تاخیر های پیش اومده که برای کل دوره های سایت بود در بخش نظرات asp توضیحاتی ارائه کردیم و از همه کاربران بابت اون تاخیر غذرخواهی کردیم و سرعت اتشار ویدیوها رو بالاتر بردیم.و تعدادی دیگه از ویدیوهای این دوره ضبط شده که در همین هفته منتشر می شوند. و به زودی این دوره هم تموم میشه.
2- در باگتو ما جدا سازی ویدیوها رو بر اساس محتوای ویدیو انجام می دهیم و سعی می کنیم تا حد امکان در هر قسمت یک موضوع رو آموزش دهیم که این خودش باعث افزایش قدرت یادگیری میشه.
3- و اما دوره ستارگان با سرعت خیلی بیشتری نسبت به دوره ها گذشته ما ویدیوهاش منتشر میشه و تمامی دغدغه های شما رو درک می کنیم و تلاش می کنیم با تمام توان کار کنیم که کار با کیفیت و سرعت انتشار مطلوبی به شما ارائه کنیم.
و برای اطمینان از سرعت مطلوب دوره ستارگان میتونید یه مدت انتشار ویدیوها این دوره رو دنبال کنید تا از این موضوع هم خیالتان راحت شود که ما با جدیت تمام داریم این کار رو انجام می دهیم.
4- و اما در مورد تایید کامنت ها. ما تمامی کامنت های ارسال شده چه انتقاد باشه چه پبشنهاد و یا هر موردی تایید می کنیم. و من برای اطمینان بیشتر کامنت های ارسال شده توسط شما رو بررسی کردم یک کامنت با متن زیر برای این دوره ارسال کرده اید
------------------------
سلام
و همچنانمنتظریم ...
----------------------
و دلیل تایید نشدن این کامنت شما این است که در کامنت قبلی دقیقا به این موضوع اشاره کرده اید.
در کل بابت تاخیر های که به وجود اومد از شما و همه کاربران معذرت خواهی می کنیم
منتظر ویدیوهای این دوره در همین هفته باشید
با تشکر از همراهی شما با باگتو
سلام مهندس
اینکه شما هم زمان در حال رکورد کردن دوره مقدماتی و دوره پیشرفته هستید و تک تک این رکوردها و ویرایشات مربوطه برای شما زمانبر هستش ولی خب ما هم در این بخش همچنان منتظریم.... تیم نگاهی به این سمت بندازید ممنون میشم.
سلام
قسمت های بعدی کی اپدیت میشن؟
ممنون از اموزش ها کاملتون.
سلام چند روزی در حال ضبط دوره مدماتی asp هستیم که تموم بشه. بعد از اون این دوره رو تموم می کنیم
بسيار عالى
لطفا در زمينه زامارين هم راهنمايي بفرماييد
حتما برای زامارین چندین دوره با کیفیت و خروجی مطلوبی ارائه می کنیم.
بعد از دوره ستارگان asp.net core دوره های بستری از باگتو منتشر می شود
دوره بسیار عالی بود.
تا به اینجا مطالب رو خیلی خوب یاد گرفتم.
منتظر دوره های بی نظیر بعدی شما هستیم
تشکر از تیم باگتو
آقای بابایی اگه میشه تخفیف این دوره رو تا دو روز و سه روز دیگه نگه دارید چون خیلی کاربردیه
تا پایان روز دوشنبه 6 مرداد این تخفیف فعاله
بیست ساعت یا بیست جلسه؟؟
٢٠ تا ٣٠ قسمت
سلام
این دوره حداکثر چند ساعت خواهد بود؟
ممنون
سلام
الان دقيق نميتونم بگم بين ٢٠ تا ٣٠ شايدم بيشتر. اما مطالب كاملي ارائه مي كنبم
سلام مهندس
قسمت هشتم رو آپلود نکردید و قسمت هفتم بجای اون مجدداً آپلود شده. ممنون میشم بررسی کنید.
سلام
بابت مشکل پیش آمده پوزش می طلبیم.
مشکل برطرف شد
لطفا دوباره دانلود نمایید
با سلام و خسته نباشید
تا قسمت 9 که دانلود کردم عالی بود واقعا.
ادامه دوره کی آپلود میشه؟
تشکر از شما
در هفته آینده قسمت های بعدی آپلود می شوند
من تزریق وابستگی رو از روی سورس کدهای شرکتمون که برنامه نویس قبلی زده یاد گرفتم و منم به همون روش کد می زنم
اما واقعا نمیدونم هدف چیه چرا این کار رو انجام میدیم؟
بی صبرانه منتظر این دوره هستم
سلام مهندس بابایی این دوره کی شروع میشه؟
چه IOC رو جایگزین IOC Container داخلی می کنید؟
دوره شروع شده و می تونید تهیه و دانلود نمایید.
از بین قویترین هاشون یک یا دو تارو انتخاب می کنیم و جایگزین ioc Container داخلی می کنیم.
منتظرم کاربرانی که دوره را خریداری می کنند پیشنها د بدهند و بعد انتخاب کنیم.
سلام
موارد جایگزین منظورتون چیه؟؟ فکر نمیکنید این مبحث رو می تونستید در دوره پیشرفته آموزش ASP.NET Core قرار بدید؟ چون یکی از پایه های اصلی و فونداسیون برنامه نویسی با ASP.NET Core هستش.
با تشکر از شما.
سلام
در دوره ستارگان مباحث تکنیکال در مورد ioc container ها گفته می شود.
اما تزریق وابستگی فقط تکنیکال نیست.
برای کسانی که نمیدونند تزریق وابستگی چیه
و می خواهند خیلی تو این موضوع عمیق بشوند این دوره رو منتشر کردیم