Никита, а использовал ли ты MEF и другие способы attribute-based конфигурации внедрялки зависимостей? Почему в .NET мире этот способ почти никто не использует? В Java вон одни атрибуты везде, а у нас только в
ASP.NET.
А мне вот кажется, что слишком много магии в конфигурации на атрибутах. У нас несколько проектов используют конвенции (с помощью рефлекшена ищут типы и регистрируют в DI по правилам в зависимости от сборок, имён и неймспейсов), и мне это не очень нравится. Много магии, сложно разобраться, когда что-то идёт не так.
В Java я пользуюсь всей этой аннотационной магией, и мне она тоже не нравится. Бывает, что какая-нибудь стерлядь из библиотеки засунет чего-нибудь в твой контейнер, и тогда Spring очень возбуждается, начинает это всё автоконфигурить, и получается в итоге херня. Мне (как второй руки специалисту по Spring) было бы намного яснее и приятнее, если бы все компоненты в явном виде мной описывались в конфигурации проекта, и не было бы никакой autoload-магии.