I study WPF and MVVM and have a little understanding of the principles of SOLID. As a result, I heard about such concepts as DI and IoC. There are many articles on this subject in the network, but basically all of them are poorly structured, because of this there is no general picture of what to look for. As a result, the question arose: where to start, in what order and what should be studied in order to know a good and flexible architecture?
UPD. There are already ready DI containers, such as Unity or Ninject. I would like to hear what it is, how much they are needed, and is it worth it to pay attention to them at all?