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'm "code complete" on StructureMap 2.0! Release to follow.

The real release will be over the weekend, but I'm calling myself "code complete" for now on StructureMap development for the long delayed 2.0 release.  If you're curious, the bits are in SVN at https://svn.sourceforge.net/svnroot/structuremap/trunk.  I'll make a much longer set of release notes later, but at a high level:

  • Fullblown support for Generics including "auto-wiring"
  • Ease of use
  • Much, much more flexible configuration options
  • Make composite applications and configuration merging easier
  • New Fluent Interface API for programmatic configuration and component wiring (it turned out much differently than the previous blog post though)
  • DRY'ed out and streamlined Xml configuration.  Express the same configuration with much less xml
  • Plugin ASP.net UserControl's (it's in the Trunk Jeffrey, but it's strictly programmatic at the moment)
  • Use the Prototype pattern
  • Bug fixes of course
  • Little bit better runtime diagnostics

I'll post several tutorials on the blog post for both the new features and some old features that are probably overlooked.  I occasionally get asked the advantage of StructureMap compared to the other tools, so I think I'll finally get around to that one. 

Before the release, I still have to:

  • Update the Xml comments for public API's
  • Update the schema documentation
  • Fix a build script problem
  • Wrestle with SourceForge.  I'm debating with myself whether or not I want to move StructureMap to somewhere else in the long term.  I think Tigris is a lot easier to use, so that's a possibility.

 

 

 

I did get a last minute feature request for better Setter injection support that I'll try to pick up very shortly.

 

 

And thanks to Ayende for a tip on Generics support - just the comment was enough actually.  The basic support wasn't that bad, but it played havoc with the diagnostic code.



Comments

Ayende Rahien said:

Can you define what you mean by:

Fullblown support for Generics including "auto-wiring"

When I read this statement, I think:

Register(IRepository<T>, NHiberanteRepository<T>)

Get<IRepository<Blog>>();

# March 30, 2007 10:16 AM

Jeremy D. Miller said:

Ayende,

Exactly what you describe, but with arbitrarily different syntax.  And down and down as well.

Repository<T>(IDataService<T>) works n-deep now.  The internal InstanceFactory & InstanceBuilderobjects are built upfront for the templated IRepository<> type, and built on the first demand for IRepository<SomeDomainObject> .

Repository<T, U> is fine, but I hit a limitation on Repository<T, U, V> and started getting exceptions deep from mscorlib and gave up.

# March 30, 2007 10:57 AM

Jens Winter said:

Did you consider using Codeplex.com for hosting StructureMap?

# March 30, 2007 1:20 PM

Jeremy D. Miller said:

I knew someone would ask, and the answer is no.  Nothing against CodePlex, I just don't want to have to wrestle with TFS.  I'd rather stay with SVN.  If I move I'll either go to Tigris or try Google Code.

I'm happy to hear suggestions.  If anybody is actually using Codeplex, how is that working out?

# March 30, 2007 1:51 PM

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