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

StructureMap goes 1.0! New release of the best Dependency Injection tool for .Net*

* as voted on by me, the impartial developer of StructureMap who has never used any of the other equivalent tools.  If nothing else, StructureMap predates both Spring.Net and Castle.

StructureMap is a Dependency Injection framework that can be used to improve the architectural qualities of an object oriented system by reducing the mechanical costs of good design techniques. StructureMap can enable looser coupling between classes and their dependencies, improve the testability of a class structure, and provide generic flexibility mechanisms. Used judiciously, StructureMap can greatly enhance the opportunities for code reuse by minimizing direct coupling between classes and configuration mechanisms.

I made a new release of StructureMap this evening that incorporates 15 months of enhancements and refactorings that I've made to support our project work.  We've used StructureMap successfully as the configuration subsystem of a rules engine and to smooth out the deployment reliability and testability of a large legacy system.  The new functionality includes:

  • New terser Attribute Normalized Xml configuration style
  • The ability to include secondary configuration files
  • Set a default profile at the top level of configuration
  • StructureMapExplorer, a WinForms tool to explore and debug StructureMap configurations
  • New ancillary NAnt tasks, including functionality to create a file "manifest" to verify the contents of an application deployment
  • New configuration storage choices
  • New Instance lifecycle scoping options (PerRequest, Singleton, ThreadLocal, etc.)
  • The "TemplatedMementoSource" option for large instance graphs
  • Streamlined codebase with less coupling and greater test coverage.  Greatly improved diagnostics.
  • New methods on ObjectFactory
    • GetAllInstances() - returns all instances of a certain type
    • WhatDoIHave() - for runtime troubleshooting
    • GetInstance(Type, InstanceMemento)

    See the release notes at:

    http://StructureMap.sourceforge.net or download at:

    http://sourceforge.net/projects/structuremap

    I wasn't sure I was ever going to get around to putting out another release (I honestly thought I'd get a release out last year before Revenge of the Sith came out), but I'm sitting here watching the Clippers win a playoff game, so I think you can say that anything is possible.



  • Comments

    Jeffrey Palermo said:

    Congratulations.  I use StructureMap for my own projects outside of work as well.  I know an application at Dell, Inc. is using it as well.  It's a great tool.  I wouldn't want to be without it now.
    # May 9, 2006 10:32 AM

    EZWeb guy: Jeffrey Palermo [C# MVP] said:

    StructureMap is very easy to use, but it makes creating loosely coupled OO systems a breeze (ok, that's...
    # May 9, 2006 12:09 PM

    Jeremy D. Miller -- The Shade Tree Developer said:

    ...it's time to give it a serious look.
    Martin Fowler wrote a piece on Ruby today called EvaluatingRuby. ...
    # May 10, 2006 1:39 PM

    EZWeb guy: Jeffrey Palermo [C# MVP] said:

    Not long ago, Jeremy Miller released version 1.0 his excellent dependency injection tool, StructureMap. ...
    # May 16, 2006 6:42 PM

    David M. Kean said:

    Its looks like, I be having a bit of a play around with it tonight.

    Have you considered running FxCop over it?
    # May 17, 2006 11:17 PM

    Nicolaz said:

    I looks great!!!!
    I would like to integrate it with an AOP framework.

    Is it possible to indicate StructureMap to use MyAOPFactory to create certain objets?

    regads,
    Nicolaz
    # August 19, 2006 1:26 AM

    markorangel.com said:

    # October 8, 2006 11:42 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