Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

the ninja of .net dependency injectors

This branch is 0 commits ahead and 0 commits behind master

Octocat-spinner-32 .nuget Update Platform assms to Platform. Create 3.2 release. March 21, 2014
Octocat-spinner-32 Ninject.iOS.Tests Update to latest FA for Xamarin support March 23, 2014
Octocat-spinner-32 RemotingServer Changed the InstanceReference to look for interfaces based on type if… March 21, 2014
Octocat-spinner-32 RemotingTestClient Merge branch 'master' into master-onovotny March 21, 2014
Octocat-spinner-32 logos Updated to the latest build scripts April 26, 2011
Octocat-spinner-32 packages Update to latest FA for Xamarin support March 23, 2014
Octocat-spinner-32 src Merge branch 'master' into master-onovotny April 07, 2014
Octocat-spinner-32 tools Merge branch 'master' into master-onovotny March 21, 2014
Octocat-spinner-32 .gitattributes Add attributes June 01, 2012
Octocat-spinner-32 .gitignore Update to use new Nuget automatic restore March 21, 2014
Octocat-spinner-32 Build-NinjectAndExtensions.bat Improved releasing scripts March 26, 2012
Octocat-spinner-32 Build-NinjectAndExtensionsWithReleaseTag.bat Added .Net 4.5, SL5 and WP 7.1 builds January 10, 2012
Octocat-spinner-32 HowToBuild.txt Improved description in HowToBuild.txt March 27, 2012
Octocat-spinner-32 LICENSE.txt Updated licensing terms to reflect dual-license with Ms-PL March 23, 2009
Octocat-spinner-32 Ninject WinRT.sln Moved Ninject.Common under src August 29, 2012
Octocat-spinner-32 Ninject with Silverlight and WP7 Unittesting.sln Changed Silverlight unit tests to use xUnit April 17, 2011
Octocat-spinner-32 Ninject.build Changed detection of Remoting Proxies to support disposing of WCF pro… March 28, 2014
Octocat-spinner-32 Ninject.include Fixed build script that version is not changed during dependency vers… March 20, 2014
Octocat-spinner-32 Ninject.sln Update Platform assms to Platform. Create 3.2 release. March 21, 2014
Octocat-spinner-32 Ninject.sln.DotSettings Update build path to remove . as nuget pack doesn't like it November 24, 2012
Octocat-spinner-32 Portable.CommonServiceLocator.NinjectAdapter.nuspec Update Platform assms to Platform. Create 3.2 release. March 21, 2014
Octocat-spinner-32 Portable.Ninject.nuspec Update Platform assms to Platform. Create 3.2 release. March 21, 2014
Octocat-spinner-32 PushAllGoogleCode.bat Added NuGet only push Nuget and Google code scripts May 23, 2012
Octocat-spinner-32 PushAllGoogleCode.build Added NuGet only push Nuget and Google code scripts May 23, 2012
Octocat-spinner-32 PushAllNuGet.bat Added NuGet only push Nuget and Google code scripts May 23, 2012
Octocat-spinner-32 PushAllNuget.build Added NuGet only push Nuget and Google code scripts May 23, 2012
Octocat-spinner-32 PushGoogleCode.bat Improved releasing scripts March 26, 2012
Octocat-spinner-32 PushGoogleCode.build Added NuGet only push Nuget and Google code scripts May 23, 2012
Octocat-spinner-32 PushNuGet.bat Added NuGet only push Nuget and Google code scripts May 23, 2012
Octocat-spinner-32 PushNuGet.build Added NuGet only push Nuget and Google code scripts May 23, 2012
Octocat-spinner-32 README.markdown February 13, 2011
Octocat-spinner-32 ReleaseNotes.txt Changed Version Number to 3.2 March 21, 2014
Octocat-spinner-32 UnzipDependencies.cmd Fixed that the wrong error message is shown when there are multiple b… November 17, 2010
Octocat-spinner-32 build-alpha.cmd Added batch files to create pre release nuget packages December 19, 2011
Octocat-spinner-32 build-beta.cmd Added batch files to create pre release nuget packages December 19, 2011
Octocat-spinner-32 build-rc1.cmd Added batch files to create pre release nuget packages December 19, 2011
Octocat-spinner-32 build-release.cmd Changed build script that WP7 UniTests are not executed on Windows 8 March 20, 2014
Octocat-spinner-32 build.cmd Improved build scripts and cleaned the project files November 02, 2010
Octocat-spinner-32 pack.cmd Add NeutralResourcesLanguageAttribute to shared assembly infos November 25, 2012
README.markdown

This is the master repository for Ninject, the lightweight and lightning-fast .NET dependency injection framework. Ninject is currently in version 2.2.

If you're reading blog posts or books from before 2010, they're likely to be regarding version 1, which has some key improvements, summarised in the wiki

Ninject is a lightning-fast, ultra-lightweight dependency injector for .NET applications. It helps you split your application into a collection of loosely-coupled, highly-cohesive pieces, and then glue them back together in a flexible manner. By using Ninject to support your software's architecture, your code will become easier to write, reuse, test, and modify.

Ninject is:

  1. Focused. Too many existing dependency injection projects sacrifice usability for features that aren't often necessary. Each time a feature is added to Ninject, its benefit is weighed against the complexity it adds to everyday use. Our goal is to keep the barrier to entry - the baseline level of knowledge required to use Ninject - as low as possible. Ninject has many advanced features, but understanding them is not required to use the basic features.

  2. Sleek. Framework bloat is a major concern for some projects, and as such, all of Ninject's core functionality is in a single assembly with no dependencies outside the .NET base class library. This single assembly's footprint is approximately 85KB when compiled for release.

  3. Fast. Instead of relying on reflection for invocation, Ninject takes advantage of lightweight code generation in the CLR. This can result in a dramatic (8-50x) improvement in performance in many situations.

  4. Precise. Ninject helps developers get things right the first time around. Rather than relying on XML mapping files and string identifiers to wire up components, Ninject provides a robust domain-specific language. This means that Ninject takes advantage of the capabilities of the language (like type-safety) and the IDE (like IntelliSense and code completion).

  5. Agile. Ninject is designed around a component-based architecture, with customization and evolution in mind. Many facets of the system can be augmented or modified to fit the requirements of each project.

  6. Stealthy. Ninject will not invade your code. You can easily isolate the dependency on Ninject to a single assembly in your project.

  7. Powerful. Ninject includes many advanced features. For example, Ninject is the first dependency injector to support contextual binding, in which a different concrete implementation of a service may be injected depending on the context in which it is requested.

Everything else is in Extensions

Yes, sounds slim and focused, but where is the support for all the features that the competitors have?

Generally, they are maintained as specific focused extensions with owners who keep them in sync and pull in new ideas and fixes fast. These are summarized on the extensions section of the project website. Most are hosted alongside the core project right here.

Something went wrong with that request. Please try again.