PDA

View Full Version : Ninject



foadabd
چهارشنبه 13 اردیبهشت 1391, 21:17 عصر
سلام کسی از دوستان و اساتید با ninject کار کرده یا ninject.mvc چطور? من کلی منابع اصلی و مراحلش رو دیدم ولی هنوز برام دلیل استفاده اش جا نیوفتاده

ممنون میشم دوستان در این باره توضیحاتی بدن

amir-yeketaz
چهارشنبه 13 اردیبهشت 1391, 22:21 عصر
Ninject جهت پیاده سازی راحت تر الگوی Dependency Injection استفاده میشه که تو MVC خیلی کاربرد داره ... تو کتاب Pro Asp.net mvc از این کتابخونه استفاده میشه ...

foadabd
پنج شنبه 14 اردیبهشت 1391, 08:48 صبح
Ninject جهت پیاده سازی راحت تر الگوی Dependency Injection استفاده میشه که تو MVC خیلی کاربرد داره ...

ممنون
Dependency Injection , کاربردها رو متوجه نمی شم وانلا یه گوگل کنی از تعداد پست ها اهمیت ش کاملا معلومه !!!

sahebgharan
جمعه 15 اردیبهشت 1391, 19:51 عصر
Dependency Injection مجموعه ای از ابزارای طراحی نرم افزار و استفاده از Patternها برای توسعه ی نرم افزارها به صورت Loosley Coupled!
شما وقتی شروع می کنین به توسعه ی نرم افزار به مرور وابستگی بین کلاس ها زیاد می شه و همه چی می ره به سمت قره قاطی شدن!
یه تعریف جالب تو سایت StackOverflow هست که اینطوریه:
How to explain Dependency Injection to a 5-year old.
When you go and get things out of the refrigerator for yourself, you can cause problems. You might leave the door open,
might get something Mommy or Daddy doesn’t want you to have. You might even be looking for something we don’t even
have or which has expired. What you should be doing is stating a need, “I need something to drink with lunch,” and then we will make sure you have something when you sit down to eat.
خوب ارتباط بین کلاس ها جزء ملزومات شی گراییه که این به پترنی هم که قراره ازش استفاده کنید بستگی داره. تو زبانایی که interface دارن کار خیلی راحت تره و شما می تونین وابستگی رو خیلی کم تر کنین ولی باز وابستگی ها به یه کلاس از هر طرف به مرور بیشتر می شه. شما با ابزارهای DI که نمونه ی خیلی خوبشم همین Ninject هست می تونین instanceهایی که قراره از کلاس هاتون بسازین (که البته باید نقش interfaceها رو فراموش نکنید) و instanceهایی که قرار به کلاسا واسه استفاده پاس بدیم رو مدیریت کنید! می تونین bind کردنارو حتی به صورت شرطی انجام بدید وحتی ساخت instance رو به یه method، bind کنید.