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.

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. 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 is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in StructureMap. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://codebetter.com/blogs/jeremy.miller jmiller

    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?

  • http://www.jenswinter.com Jens Winter

    Did you consider using Codeplex.com for hosting StructureMap?

  • http://codebetter.com/blogs/jeremy.miller jmiller

    Ayende,

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

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

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

  • http://www.ayende.com/Blog Ayende Rahien

    Can you define what you mean by:
    Fullblown support for Generics including “auto-wiring”

    When I read this statement, I think:

    Register(IRepository, NHiberanteRepository)

    Get>();