Size: a a a

.NET Chat Убежище

2017 November 29

λ

λετучαя рыбα in .NET Chat Убежище
Nikita Tsukanov
там написано, зачем у приложения должен быть _один_ composition root вместо лапши этой
Он пишет про недостатки tightly и преимущества loosely coupling, предпочитая не зависеть от DI фреймворка. И не стесняется использовать assembly scanning, используя соглашения по именованию классов. Но если взять пачку атрибутов, не зависящих от DI фреймворка?
источник

λ

λετучαя рыбα in .NET Chat Убежище
Хотя наверно это просто не нужно (ведь можно использовать naming conventions и AsImplementedInterfaces, действительно).
источник

A

Aikidos in .NET Chat Убежище
λετучαя рыбα
Хотя наверно это просто не нужно (ведь можно использовать naming conventions и AsImplementedInterfaces, действительно).
Т.е. мне тогда забить на атрибуты лучше и использовать соглашение имен?
источник

A

Aikidos in .NET Chat Убежище
Я вот, только что пельмени поел
источник

λ

λετучαя рыбα in .NET Chat Убежище
Более того, naming conventions можно даже для распознавания скоупа класса использовать, получается. Делать что-то типа FeedStoreService, FeedStoreScopedService, FeedStoreSingletonService.
источник

NT

Nikita Tsukanov in .NET Chat Убежище
не надо скоуп
источник

NT

Nikita Tsukanov in .NET Chat Убежище
чем тебя портянка регистраций не устроила?
источник

λ

λετучαя рыбα in .NET Chat Убежище
Aikidos
Т.е. мне тогда забить на атрибуты лучше и использовать соглашение имен?
Если ты используешь атрибуты, то ты в результате зависишь от твоего MEF.
источник

A

Aikidos in .NET Chat Убежище
Nikita Tsukanov
чем тебя портянка регистраций не устроила?
Меня?
источник

λ

λετучαя рыбα in .NET Chat Убежище
Nikita Tsukanov
чем тебя портянка регистраций не устроила?
Это треш какой-то! Даже Симан в своей книге пишет про преимущества ассембли скана.
источник

A

Aikidos in .NET Chat Убежище
Тут есть два момента:
Каждая регистрация должна иметь правила как должна проходить. Чтобы чуть поправить модуль и его приоритет, мне нужно лезть в "главный сектор"
источник

A

Aikidos in .NET Chat Убежище
А так, в атрибуте поправил и все. Дальше модуля никуда не полез
источник

A

Aikidos in .NET Chat Убежище
Я вообще могу забыть про коллекцию и больше никогда ее не трогать
источник

A

Aikidos in .NET Chat Убежище
Все само.
источник

λ

λετучαя рыбα in .NET Chat Убежище
Сложный вопрос! С одной стороны, атрибуты позволят сделать всё красиво и, как говорит Айкидос, менять только один файл, чтоб внедрить что-то новое в систему. Красиво. С другой стороны, атрибутами конкретного фреймворка обмазываться плохо, потому что tightly coupled. Но, позвольте! Как часто вы меняете свой DI фреймворк? Я вот сел на Автофак и сижу, на DryIoc не съедешь, он в абстрактные фабрики не могёт, надо сервис и вьюмодели переписывать под него.
источник

λ

λετучαя рыбα in .NET Chat Убежище
Есть ещё один вариант: в composition root сканить ассемблю и на основе расставленных атрибутов строить граф зависимостей. А атрибуты взять не от конкретного фреймворка, а от дяди Васи.
источник

A

Aikidos in .NET Chat Убежище
Я, кстати, говорил же, что только Рыба и Никита смогут разобраться с вопросом
источник

A

Aikidos in .NET Chat Убежище
И посоветовать дельное
источник

λ

λετучαя рыбα in .NET Chat Убежище
Aikidos
Я, кстати, говорил же, что только Рыба и Никита смогут разобраться с вопросом
В этом чате просто больше никого нет. Даже Фридрих заглядывает раз в 100 лет.  :(

Хороший чат, можно самому с собой поговорить!
источник

A

Aikidos in .NET Chat Убежище
λετучαя рыбα
Есть ещё один вариант: в composition root сканить ассемблю и на основе расставленных атрибутов строить граф зависимостей. А атрибуты взять не от конкретного фреймворка, а от дяди Васи.
Я даже серьезно не рассматривал скан ассембля т.к. думал, что проверка атрибутов будет долгой, но они в метаданных и все очень шустро
источник