Dependency Injection in .NET
تزریق وابستگی اولین و مهمترین مبحثی هست که در این کتاب مد نظر قرار گرفته است.این کتاب در مورد .NET نیز هست که البته از اهمیت کمتری برخوردار است. زبان C# ، برای مثالهای کد،مورد استفاده قرار گرفته است، ولی کلیه مباحث این کتاب ،به راحتی برای برای زبانها و پلت فرمهای دیگر قابل استفاده است.
در حقیقت، من بیشتر مباحث و الگوهای مهم و پایه ای را از خواندن کتاب هایی فرا گرفتم که زبان مورد استفاده در آنها ، C++ یا Java بودند.
به مجموعه ای از اصول و الگوهای مرتبط به هم ، تزریق وابستگی یا به اختصار DI میگویند.این یک روش برای طراحی و فکر کردن درباره کد ، بیشتر از تکنولوژی مورد استفاده است. هدف نهایی استفاده از DI ، ساخت برنامه هایی با قابلیت نگهداری بالا، با استفاده از مدل شی گرایی است.
مفاهیم مورد استفاده در این کتاب ، همگی مربوط به برنامه نویسی شی گرا هستند.
مشکلی که DIها حل میکنند(نگهداری کد)، کاملا کلی هست، ولی دستیابی به هدف مورد نظر فقط در حوزهی زبانهای شی گرا و نوع امن مانند : C#, Visual Basic, Java,C++ امکان پذیر است. بنابراین از DI نمیتوانید در زبانهای رویه ای استفاده کنید و همچنین بهترین راه حل برای زبانهای پویا و تابعی نخواهد بود.
تزریق وابستگی به تنهایی یک چیز ساده و خیلی کوچک است، ولی با اصول و طراحیهای پیچیده و بزرگ برای طراحی نرم افزارهای شی گرا به طور خیلی نزدیکی در ارتباط است.
در حالی که در این کتاب از شروع تا پایان، به طور مداوم بر روی DI تمرکز میکنیم، بر روی مباحث دیگری که تا حدی مربوط به DI هست بحث خواهد شد.هدف این کتاب بیشتر از آموزش ویژگیهای DI به شما، تبدیل کردن شما به یک برنامه نویس بهتر شی گرا هست.
چه کسانی باید این کتاب را مطالعه کنند؟
این کتاب برای همهی توسعه دهندگان .NET هست، اگرچه امروزه جامعه NET. بسیار گسترده شده است ولی با این که NET. شی گرا است ، همهی توسعه دهندگان آن، کدهای شی گرا نمینویسند.
این کتاب دربارهی برنامه نویسی شی گرا است، بنابراین خوانندگان باید حداقل به مفاهیم برنامه نویسی شی گرا آشنا باشند و برای مثال بدانند که یک interface چیست.
در حقیقت من از تازه کاران انتظار ندارم که چیز زیادی از این کتاب سر در بیاورند، بیشتر هدف ، مخاطب قراردادن برنامه نویسهای با تجربه و معماران نرم افزار هست.
تمامی مثالهای این کتاب به زبان c# نوشته شده اند، در نتیجه تمام کسانی که با فریمورک .NET کار میکنند میتوانند از آنها استفاده کنند.
همچنین کسانی که به زبانهای غیر .NET مثل java یا c++ آشانا هستند میتوانند از این کتاب به خوبی استفاده کنند.به شخصه من کتابهای الگوهای طراحی زیادی به زبان جاوا خوانده ام و از آنها بسیار استفاده کرده ام و میکنم.
محتویات:
•بخش اول به معرفی عمومی DI می پردازد.در این بخش اگر نمیدانید که DI چیست، بهترین مکان برای شروع یادگیری است.در این بخش با اصطلاحات و مفاهیم به کار رفته در بخشهای دیگر آشنا میشوید.
•بخش دوم در مورد Catalog Patterns، anti-petterns و refactoring است. در اینجا شما راهنماییهای کلی در زمینه پیاده سازی یک DI و همیچنین خطراتی که مواظب آنهای باید باشید را پیدا خواهید کرد.
•بخش سوم DI را از سه جهت مورد بررسی قرار میدهد: Object Composition ، LifeTime Management و Interception.
•بخش چهارم شامل کتابخانههای DI Container میشود. این کتابخانهها شامل CastleWindsor, StructureMap, Spring.NETAutofac, Unity, MEF میشود.