Skip to content

Ninject 1.0 Goes Gold

June 16, 2008

It’s always great to watch an idea mature from its first conception. About 18 months ago I began work on the first version of Ninject, which was then called Titan. It’s gone through a lot of iterations and all sorts of changes along the way, but today I’m happy to announce that Ninject 1.0 has officially gone gold and is available for download.

I’ve put in a lot of effort over the past couple of months to make Ninject multi-platform. One of the original goals of the Ninject project was to create a light enough framework that dependency injection was viable anywhere you could run a CLR. I’m proud to say that 1.0 supports the following platforms:

  • .NET Framework 2.0, 3.0 and 3.5
  • .NET Compact Framework 2.0 and 3.5 (Ninject.Core and Ninject.Conditions)
  • Silverlight 2.0 beta 2 (Ninject.Core, Ninject.Conditions, and all shipping extensions)

The same codebase is used for all supported platforms, with certain features turned off when the platform doesn’t support them. Unless I’m mistaken, Ninject is the first dependency injection framework to officially support the .NET Compact Framework or Silverlight, and this is no small feat. Kudos to Mike Eaton for kicking me in the right direction by encouraging me to provide Silverlight support. :)

It’s rare that open source software reaches a full version 1.0, instead preferring to remain beta-0.999 or release candidate 63. I’m not sure why that is; maybe open source developers are just too aware of the deficiencies of their software and are afraid to claim that the product production-ready. I’ve personally used Ninject in production systems for over a year now, and by now I’m very confident that it’s ready for prime time.

I’ve also taken the opportunity to re-launch the Ninject website. At the Cleveland Day of .NET, Brian Prince mentioned that he was frustrated that many open source project websites don’t contain any information about what the product is or does. I’ve tried to fix that with the new design, introducing some value propositions that I think explain how Ninject can help you write sleek, well-designed software that can stand the test of time.

So, what are some of the features of Ninject 1.0?

  • Constructor, property, method, and field injection
  • Instantiation behaviors (singleton, one-per-thread, one-per-request)
  • Fluent interface for declaring type bindings
  • Contextual bindings, where the selection of which type to instantiate can be delayed until activation
  • Support for instance scope and deterministic disposal
  • Fully pluggable, modular design: each kernel component can be easily replaced to alter the framework’s behavior
  • Lightweight interceptor support (aspect-oriented programming)
  • Integrations with other popular frameworks

I’d like to thank all of the companies and individuals that have contributed to the project, whether it’s been bug reports, patches, or software licenses. Please take some time to look at the products of the companies listed on the sponsors page.

I’d also like to dedicate this release to my wife Nicole, who has been understanding enough to put up with me hammering away at a keyboard for hours on end late at night. (She also helped me put together the cool products available in the Ninject store!) I love you sweetie. :)

Anyhow, grab the software, check out the manual, join in on the discussion, and by all means, buy some swag! :)

About these ads

From → miscellaneous

10 Comments
  1. Awesome, congrats on all the hard work! I’m going to get me a ninject mug.

  2. David permalink

    Congrats! This is a welcome addition to the .NET toolbox.

  3. Steve permalink

    Congratulations on the v1.0 release!

  4. Congratulations, Nate! So much hard work has obviously gone in to make Ninject a really innovative yet polished piece of code. I’m only surprised you didn’t bump up the revision number earlier :)

  5. Just thought you would like to know there is a site with ninjas a lot like yours:

    http://www.themeninja.com/

    Dale

  6. @Dale: Yeah, the ninjas aren’t mine, they were made by a designer named Ike Allred. He was kind enough to donate them to the project.

  7. @Nate: That was nice of him. I knew you had a guy do the ninjas up for you, but I just wanted to make sure either you or he was aware of the site in case they didn’t have permission.

    Great job on Ninject, by the way, I use it as my primary IoC.

  8. Hi,

    It is very good to finally have a supported/documented/with-cool-web-site IoC framework for using under the .NET Compact Framework.

    I’ve wrote my own some time ago, it is hosted at http://code.google.com/p/compactcontainer/ (so I guess you’re not the first :p)
    It is somewhat basic, but it works ok for me.

    Well, congratulations and thank you for your effort!
    Bye.

  9. Magesh permalink

    Wow!!! Thats a great news and Congratulations!!!

Trackbacks & Pingbacks

  1. Nicholas Blumhardt : IoC on Silverlight

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: