Задать вопрос

Какой IoC контейнер для .NET лучше? Unity или Ninject?

Много гуглил на эту тему в интернете, но достаточно широкого анализа не нашел. Единственное, что я узнал, что Unity производительнее. Прошу поделиться собственным опытом использования этих контейнеров в бою или подсказать ссылки на толковые материалы по их сравнению. Спасибо.
  • Вопрос задан
  • 14415 просмотров
Подписаться 4 Оценить 1 комментарий
Решения вопроса 4
szKarlen
@szKarlen
Могу посоветовать Ninject — имеет очень активное сообщество, существуют расширения для MVC3, NLog, Glimpse + много чего.
Лично мне нравится сам API. если хотите убедиться в простоте использования, то можно на примере ASP.NET MVC:

1) назначаем привязки
class RepoModule : NinjectModule
{
    public override void Load()
    {
        Bind<ICategoryRepository>().To<CategoryRepository>();

        Bind<IProductRepository>().To<ProductRepository>();
    }
}


2) загружаем ядро
var modules = new INinjectModule[]
            {
                new RepoModule()
            };
            var kernel = new StandardKernel(modules);
            RegisterServices(kernel);
            return kernel;


3) пишем наш контроллер
public class ProductsController : Controller
{
    private readonly IProductRepository productRepository;

    public ProductsController(IProductRepository productRepository)
    {
        this.productRepository = productRepository;
    }
}
Ответ написан
Комментировать
@krakako
Я немного поздновато, но все же, тесты: тынц

Ninject вообще не радует, хотя тесты и синтетические.
Ответ написан
Комментировать
SychevIgor
@SychevIgor
ну unity все таки делают в ms и они его не бросят и буду пилить под каждую платформу. мы на прошлой работе его использовали и были довольны.
Ninject кстати быстрее по крайней мере на winrt портировался. я когда зимой его смотрел, то они уже работали, а unity был только для ctp и не совместим с winrt cp/beta уже.

Я бы выбрал unity почему-то я доверяю им больше.
Ответ написан
Комментировать
sdramare
@sdramare
Unity очень медленный. Если у вас работа с контейнером идет постоянно(получить синглтон, построить новый объект и т.д.) вы получить серьезную просадку по производительности. Так что бы я рекомендовал Ninject если нужны всякие доп.фичи или Autofac если важна скорость работы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@FOXHOUND
А у нас какие — то проблемы с ним были — перешли на Autofac.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы