CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Jeremy D. Miller -- The Shade Tree Developer

Under the hood and working with .Net, TDD, Software Design, and Agile Stuff

I was first dadgummit!

I get an email like this or a query fairly regularly:
I was wondering why you decided to write StrucutreMap rather than utilizing one of the existing .NET IoC containers (Spring.NET, Castle etc.).

StructureMap was first.  The port of Spring for .Net was announced right after I released StructureMap in June 2004, and I'm not sure when Castle was released but it was later.

Arguably StructureMap was the first production ready IoC/DI tool for .Net, but I'm not sure when, and if, PicoContainer.Net was ready for real usage.  At the time I released StructureMap I got a little grief from the Pico guys for building a new one instead of using Pico.Net.

Moral of the story?  If you want you're open source tool to succeed, do a better job getting publicity and a community than I did with StructureMap.




Comments

Haacked said:

Is StructureMap significantly different from the other container frameworks?  Have you considered trying to roll it into the others? Just curious.
# August 16, 2006 1:37 PM

Jeremy D. Miller said:

Haacked,

Oh, they're somewhat different.  I think any of the main tools are going to give you what you most likely would want.  StructureMap and Spring.Net are rough equivalents with plenty of unique features.  Just off the top of my head Spring has AoP, but StructureMap has a bunch of configuration management support.  Castle is more like PicoContainer (but I think Castle is implemented better) from the Java world that enables you to completely divorce yourself from any configuration if you so choose.  I think StructureMap has much stronger support for auto-wiring than Spring, but maybe I just don't know how to do it in Spring.

I don't think there's any value in rolling StructureMap into one of the other tools.  I don't know about Spring, but I think you could add some of the additional functionality of StructureMap on top of Castle.  Then again, if anybody thought that it was useful it would already be there anyway.
# August 16, 2006 2:12 PM

Jason said:

Seems like I hit a raw nerve there!
# August 18, 2006 10:53 AM

Jeremy D. Miller said:

Nah, it's more like a wasted opportunity on my part
# August 18, 2006 11:06 AM

Haacked said:

If you were to start over, would you create StructureMap or choose one of the existing ones?

# September 2, 2006 5:45 PM

Jeremy D. Miller said:

My preference is still to use StructureMap, but starting now?  I'd pick Castle/Windsor.  I probably wouldn't use it as extensively as I do StructureMap though.

Regardless, building StructureMap was definitely worth the time.  I used it originally to learn .Net (fear not, that code's all dead), TDD, and try out some design ideas.  I've had to hit the interview cycle recently, and having an open source tool on my resume has been beneficial -- at least in the places you would want to work.  I did interview with a member of the Spring.Net team and it never came up though.

# September 3, 2006 8:39 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Jeremy D. Miller

Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy previously worked as a systems architect building mission critical supply chain software for a Fortune 100 company and learned agile development practices as a .Net consultant at ThoughtWorks, one of the pioneers of agile development. Jeremy is the author of the open source StructureMap (http://structuremap.sourceforge.net) tool for Dependency Injection with .Net and the forthcoming StoryTeller (http://storyteller.tigris.org) tool for supercharged FIT testing in .Net. Jeremy's thoughts on just about everything software related can be found on his weblog "The Shade Tree Developer" at http://codebetter.com/blogs/jeremy.miller, part of the popular CodeBetter site. Jeremy is a Microsoft MVP for C#. Check out Devlicio.us!

This Blog

Syndication

News

All opinions expressed here constitute my (Jeremy D. Miller's) personal opinion, and do not necessarily represent the opinion of any other organization or person, including (but not limited to) my fellow employees, my employer, its clients or their agents.

About Me

"Best Of" Compendium

StructureMap (Dependency Injection for .Net)

StoryTeller (Supercharged Fit)

Build your own Cab

TestDriven

MVP