Ninject
Ninject — это быстрый и ультралёгкий инжектор зависимостей для приложений .NET. Он помогает разделить приложение на набор слабосвязанных, но сильносцепленных частей, а затем гибко соединить их обратно. Используя Ninject для поддержки архитектуры программного обеспечения, вы сможете легче писать, повторно использовать, тестировать и модифицировать код.
Пишите код так, чтобы он был гибким...
public class Samurai {
public IWeapon Weapon { get; private set; }
public Samurai(IWeapon weapon)
{
this.Weapon = weapon;
}
}
...и позвольте Ninject соединить его за вас.
public class WarriorModule : NinjectModule
{
public override void Load()
{
this.Bind<IWeapon>().To<Sword>();
}
}
Сфокусированность. Многие существующие проекты внедрения зависимостей жертвуют удобством использования ради функций, которые не всегда необходимы. Каждый раз, когда в Ninject добавляется новая функция, её польза сопоставляется со сложностью, которую она добавляет при повседневном использовании. Наша цель — сделать порог входа как можно ниже. В Ninject есть много продвинутых функций, но понимание их не требуется для использования основных функций.
Лаконичность. Избыточность фреймворка является серьёзной проблемой для некоторых проектов, поэтому вся основная функциональность Ninject находится в одной сборке без зависимостей вне базовой библиотеки классов .NET. Размер этой единственной сборки составляет примерно 85 КБ при компиляции для выпуска.
Быстродействие. Вместо того чтобы полагаться на отражение для вызова, Ninject использует преимущества лёгкого создания кода в CLR. Это может привести к значительному (в 8–50 раз) улучшению производительности во многих ситуациях.
Точность. Ninject помогает разработчикам делать всё правильно с первого раза. Вместо того чтобы полагаться на файлы сопоставления XML и строковые идентификаторы для подключения компонентов, Ninject предоставляет надёжный предметно-ориентированный язык. Это означает, что Ninject использует возможности языка (например, безопасность типов) и IDE (например, IntelliSense и завершение кода).
Гибкость. Ninject разработан на основе компонентной архитектуры с учётом настройки и эволюции. Многие аспекты системы могут быть расширены или изменены в соответствии с требованиями каждого проекта.
Скрытность. Ninject не будет вторгаться в ваш код. Вы можете легко изолировать зависимость от Ninject до одной сборки в вашем проекте.
Мощь. Ninject включает в себя множество продвинутых функций. Например, Ninject — первый инжектор зависимостей, поддерживающий контекстное связывание, при котором может быть внедрена другая конкретная реализация службы в зависимости от контекста, в котором она запрашивается.
Да, звучит скромно и целенаправленно, но где же поддержка всех функций, которыми обладают конкуренты?
Как правило, они поддерживаются в виде конкретных целевых расширений с владельцами, которые следят за их синхронизацией и быстро внедряют новые идеи и исправления. Они обобщены в разделе расширения веб-сайта проекта. Большинство из них размещены вместе с основным проектом прямо здесь.
Ninject предназначен для использования как в среде с открытым исходным кодом, так и в коммерческих условиях. Чтобы обеспечить его использование в как можно большем количестве ситуаций, Ninject имеет двойную лицензию. Вы можете выбрать использование Ninject либо под лицензией Apache версии 2.0, либо под публичной лицензией Microsoft (Ms-PL). Эти лицензии по существу идентичны, но вам рекомендуется оценить обе, чтобы определить... Что лучше всего соответствует вашим потребностям.
Подробную информацию смотрите в LICENSE.txt.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )