В свете последних "колебались с линией партии" от MS возник вопрос. Тот же Unity придется отложить, который в целом по тестам и функционалу хотел задействовать для проекта. Но - поддержку у него забросили, Research Labs и сочуствующие от проекта отошли и поэтому хотелось бы услышать глас народа и практиков.
Нужно:
- IOC максимально легкий, без лишних перегрузов
- Возможность работы с атрибутами, чтобы можно было ключевые поля помечать, а не на автомате пытаться все public свойства инициализировать (типа [Dependency] в том же Unity)
- Чтобы была возможность зацепить готовые прокси для ведения логов и перехвата вызовов
- Очереди событий и подписка/отписка на них
Вроде все.
Spring.Net - работает со строками для инициализации, а не типами. Один из самых медленных. Порт еще второй версии и толком не развивается.
MvvmLight - атрибутов нет и проксирования нет
Prism от MS - это какой-то безразмерный монстр сейчас по объему и наворотам, слепили опять нечто энтерпрайозное
По тому, что народ в интернете обжевывает, хвалят Castle Windsor, Ninject. Хочется узнать у практиков - кто в работе использовал?
Нужно под client / server side, без asp.net и прочего браузерного мусора.
C# IOC framework
-
- Уже с Приветом
- Posts: 1665
- Joined: 16 Jul 2009 14:18
- Location: Uganda
-
- Уже с Приветом
- Posts: 23804
- Joined: 05 Jul 2003 22:34
- Location: Брест -> St. Louis, MO
-
- Уже с Приветом
- Posts: 1665
- Joined: 16 Jul 2009 14:18
- Location: Uganda
-
- Уже с Приветом
- Posts: 23804
- Joined: 05 Jul 2003 22:34
- Location: Брест -> St. Louis, MO
Re: C# IOC framework
Я уже потерял нить кто там куда загнулся и ушел если честно. A PRISM кстати использую, просто не надо пытаться все фичи брать, что надо то и используем.
Лучше водки — хуже нет! ©
-
- Уже с Приветом
- Posts: 1665
- Joined: 16 Jul 2009 14:18
- Location: Uganda
Re: C# IOC framework
Он очень здоровый и зависимостей там слишком много. Это как Enterprise библиотеки, которые MS продвигает для поддержки их модели работы с данными и пр.
Тот же MVVM Light отлично сделан, но в нем прокси не реализовать для логгирования и перехвата exceptions
-
- Уже с Приветом
- Posts: 23804
- Joined: 05 Jul 2003 22:34
- Location: Брест -> St. Louis, MO
Re: C# IOC framework
Опять-же. Я не знаю что там "сегодня". Тот PRISM что у меня это пару библиотек(Microsoft.Practices.Prism). Оно организовано "ala cart". Т.е. ну не надо фича - не используйте. Мы используем практически все. Modules, Regions/Navigation, Pub/Sub events, NotificationObject.mynameiszb wrote: ↑15 Aug 2017 20:07 Он очень здоровый и зависимостей там слишком много. Это как Enterprise библиотеки, которые MS продвигает для поддержки их модели работы с данными и пр.
Тот же MVVM Light отлично сделан, но в нем прокси не реализовать для логгирования и перехвата exceptions
А так там особо больше ничего и нет.. MVVM Light там ничего нет, тот же MVVM самому написать обертку для VM за пол часа можно. Сила PRISM в view injection, очень удобно.
Лучше водки — хуже нет! ©
-
- Уже с Приветом
- Posts: 1355
- Joined: 07 Jul 2012 04:07
Re: C# IOC framework
А что с Unity не так? Не развивается? Так что надо, там реализовано.
Prism после передачи соопчеству прекрасно себе живет, и с Юнити очень даже дружит.
Prism после передачи соопчеству прекрасно себе живет, и с Юнити очень даже дружит.
-
- Уже с Приветом
- Posts: 1665
- Joined: 16 Jul 2009 14:18
- Location: Uganda
Re: C# IOC framework
Базовый Unity на вольных хлебах, поэтому новый функционал он вряд ли будет поддерживать. И старые проблемы у него так и остались. Например, для полноценной поддержки проксирования events придется либо ручками код по ним писать, либо напильником под себя дорабатывать на основе reflection. "Из коробки" он этого не умеет, я на это уже спотыкался.PrettyVacant wrote: ↑25 Aug 2017 23:01 А что с Unity не так? Не развивается? Так что надо, там реализовано.
-
- Уже с Приветом
- Posts: 1665
- Joined: 16 Jul 2009 14:18
- Location: Uganda
Re: C# IOC framework
Up по последним итогам.
Unity в свободном полете - обновлений и саппорта нет год уже как. Prism для WinForm порт тоже мертвый. Поэтому фактически под старую платформу остался тот же замороженный Spring .Net 2, который имеет кучу ограничений... Но других вариантов и нет...
Unity в свободном полете - обновлений и саппорта нет год уже как. Prism для WinForm порт тоже мертвый. Поэтому фактически под старую платформу остался тот же замороженный Spring .Net 2, который имеет кучу ограничений... Но других вариантов и нет...