Systems, where I’ve started out “as simple as possible”, and later wished that I had baked in an IoC container from the beginning: Several.
Systems, where I’ve baked in Castle Windsor from the beginning, and where I later wished that I hadn’t: 0.
#justsaying
(IMO, using an IoC container does not increase overall complexity – it just moves some of the complexity out of my code, and into a thing that implements a bunch of useful patterns in a slightly more opaque way than if I’d implemented those things myself.)
This is very true. IoC is a versatile and refreshing baseline for nearly any application.
Mix equal parts event system and a smart approach to any needed configuration and it’s definitely software bliss! 😉