Я бы не связывал IoC с размером проекта так же, как:
- количество классов в проекте
- сложность их зависимости
- ожидаемое количество обслуживания и продления
- ожидаемое переключение разработчиков при расширении и обслуживании
Особенно последние два облегчат, если вы протестируете свой код, для которого вам нужен (ну, этого можно избежать с помощью подходящих инструментов, но ...) IoC.
Не перегружайте свой код
Следовательно, я бы предложил не использовать DI-контейнеры для начинающих, но определенно использует IoC в терминах интерфейсов и двойных конструкторов, таких как:
public class Example : IExample // for others that might depend on it
{
private IDependant service;
// default constructor used in your application
public Example() : this(new DependentService())
{
// does nothing else
}
// constructor for testing purposes
public Example(IDependant service)
{
this.service = service;
}
// IExample implementation
}
Простыми двухуровневыми зависимостями легко управлять вручную без использования DI-контейнеров. И, скорее всего, быстрее использовать. Это сделает ваш код легко тестируемым и особенно подумайте об этом, если вы предоставите ошибки в качестве тестовых примеров, которые автоматизируют предотвращение ошибок на будущее.
Небольшие проекты имеют тенденцию к росту
Небольшие проекты с добавленной стоимостью в бизнес-среде, как правило, расширяются довольно часто, поскольку это стимулирует воображение пользователей о том, как их можно улучшить еще больше. Так что не стоит недооценивать ваш маленький проект. Это может скоро вырасти.