Durante la lettura di un libro, mi sono imbattuto in DI (dependency Injector) e nel successivo strumento contenitore DI. In precedenza, ho sviluppato un'applicazione seguendo un tutorial sul sito Web di asp.net che non ha mai utilizzato tale strumento. Quindi, la mia domanda può essere riassunta in seguito a due preoccupazioni: -
- Con che frequenza utilizzi il DI Container?
- Quali requisiti ti fanno fare così?
MODIFICA: esempi con e senza contenitore DI. Ho scritto i codici per capire quale approccio è migliore.
Senza contenitore DI -
LinqValueCalculator lc = new LinqValueCalculator();
ShoppingCart sc = new ShoppingCart(lc);
decimal total = sc.CalculateStockValue();
Console.WriteLine("Total: {0:c}", total);
con contenitore DI - (in questo esempio viene utilizzato Ninject)
IKernel ninjectKernel = new StandardKernel();
ninjectKernel.Bind<IValueCalculator>().To<LinqValueCalculator>();
IValueCalculator calcImpl = ninjectKernel.Get<IValueCalculator>();
ShoppingCart cart = new ShoppingCart(calcImpl);
Console.WriteLine("Total: {0:c}", cart.CalculateStockValue());
Sarò onesto, sento che scrivere il primo codice era più semplice e naturale. Ma i tuoi punti di vista sono ciò che conta come sto solo imparando il MVC.