C# IOC framework

mynameiszb
Уже с Приветом
Posts: 1666
Joined: 16 Jul 2009 14:18
Location: Uganda

C# IOC framework

Post by mynameiszb »

В свете последних "колебались с линией партии" от MS возник вопрос. Тот же Unity придется отложить, который в целом по тестам и функционалу хотел задействовать для проекта. Но - поддержку у него забросили, Research Labs и сочуствующие от проекта отошли и поэтому хотелось бы услышать глас народа и практиков.

Нужно:

- IOC максимально легкий, без лишних перегрузов
- Возможность работы с атрибутами, чтобы можно было ключевые поля помечать, а не на автомате пытаться все public свойства инициализировать (типа [Dependency] в том же Unity)
- Чтобы была возможность зацепить готовые прокси для ведения логов и перехвата вызовов
- Очереди событий и подписка/отписка на них

Вроде все.

Spring.Net - работает со строками для инициализации, а не типами. Один из самых медленных. Порт еще второй версии и толком не развивается.
MvvmLight - атрибутов нет и проксирования нет
Prism от MS - это какой-то безразмерный монстр сейчас по объему и наворотам, слепили опять нечто энтерпрайозное

По тому, что народ в интернете обжевывает, хвалят Castle Windsor, Ninject. Хочется узнать у практиков - кто в работе использовал?
Нужно под client / server side, без asp.net и прочего браузерного мусора.
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: C# IOC framework

Post by katit »

MEF?
Лучше водки — хуже нет! ©
mynameiszb
Уже с Приветом
Posts: 1666
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: C# IOC framework

Post by mynameiszb »

katit wrote: 13 Aug 2017 15:51MEF?
Так он вроде как в чистом виде загнулся и ушел в состав Prizm?
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: C# IOC framework

Post by katit »

Я уже потерял нить кто там куда загнулся и ушел если честно. A PRISM кстати использую, просто не надо пытаться все фичи брать, что надо то и используем.
Лучше водки — хуже нет! ©
mynameiszb
Уже с Приветом
Posts: 1666
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: C# IOC framework

Post by mynameiszb »

katit wrote: 14 Aug 2017 16:21 Я уже потерял нить кто там куда загнулся и ушел если честно. A PRISM кстати использую, просто не надо пытаться все фичи брать, что надо то и используем.
Он очень здоровый и зависимостей там слишком много. Это как Enterprise библиотеки, которые MS продвигает для поддержки их модели работы с данными и пр.

Тот же MVVM Light отлично сделан, но в нем прокси не реализовать для логгирования и перехвата exceptions :(
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: C# IOC framework

Post by katit »

mynameiszb wrote: 15 Aug 2017 20:07 Он очень здоровый и зависимостей там слишком много. Это как Enterprise библиотеки, которые MS продвигает для поддержки их модели работы с данными и пр.

Тот же MVVM Light отлично сделан, но в нем прокси не реализовать для логгирования и перехвата exceptions :(
Опять-же. Я не знаю что там "сегодня". Тот PRISM что у меня это пару библиотек(Microsoft.Practices.Prism). Оно организовано "ala cart". Т.е. ну не надо фича - не используйте. Мы используем практически все. Modules, Regions/Navigation, Pub/Sub events, NotificationObject.

А так там особо больше ничего и нет.. MVVM Light там ничего нет, тот же MVVM самому написать обертку для VM за пол часа можно. Сила PRISM в view injection, очень удобно.
Лучше водки — хуже нет! ©
PrettyVacant
Уже с Приветом
Posts: 1356
Joined: 07 Jul 2012 04:07

Re: C# IOC framework

Post by PrettyVacant »

А что с Unity не так? Не развивается? Так что надо, там реализовано.

Prism после передачи соопчеству прекрасно себе живет, и с Юнити очень даже дружит.
mynameiszb
Уже с Приветом
Posts: 1666
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: C# IOC framework

Post by mynameiszb »

PrettyVacant wrote: 25 Aug 2017 23:01 А что с Unity не так? Не развивается? Так что надо, там реализовано.
Базовый Unity на вольных хлебах, поэтому новый функционал он вряд ли будет поддерживать. И старые проблемы у него так и остались. Например, для полноценной поддержки проксирования events придется либо ручками код по ним писать, либо напильником под себя дорабатывать на основе reflection. "Из коробки" он этого не умеет, я на это уже спотыкался.
mynameiszb
Уже с Приветом
Posts: 1666
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: C# IOC framework

Post by mynameiszb »

Up по последним итогам.

Unity в свободном полете - обновлений и саппорта нет год уже как. Prism для WinForm порт тоже мертвый. Поэтому фактически под старую платформу остался тот же замороженный Spring .Net 2, который имеет кучу ограничений... Но других вариантов и нет...

Return to “Вопросы и новости IT”