The separation of concerns provided by IoC/DI frameworks cannot be overestimated for a large projects, but is there a place for such techniques in a small project?
Can you share some real-life uses of IoC/DI frameworks you found to be useful when you were coding another small/average project.
For the sake of definition:
A "small project" contains 100-1000 lines of code (balpark, just to give an idea), it takes a 1-3 days to code and the lifetime of the resulting application before it gets thrown away or decomissioned is within 1 week - 5 years after the initial release (this is there it gets hard to draw a line between small/average/large project).
Thanks.
Depends on what you deem to be important in your implementation. If testability is important and if you tend to follow single responsibility principle (in small or big projects), you generally end up with a bit more classes than you probably would otherwise. This can result in an invocation like
var svc = new ShippingService(new ProductLocator(),
new PricingService(),
new InventoryService(),
new TrackingRepository(new ConfigProvider()),
new Logger(new EmailLogger(new ConfigProvider())));
If you can live with this and personally I would too, in a throw away app, then by all means you dont really need a DI Container. Go with whatever makes you happy. Cheers.
Edit:
Over the years I've found TinyIoC to be a good compromise for smaller projects.