StructureMap is a Dependency Injection / Inversion of Control tool for .Net 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.

StructureMap is released under the permissive Apache 2 OSS license.  You are free to download, modify, or redistribute StructureMap in any way you see fit without restriction.

Consider using StructureMap if you:

  • Require significant extensibility
  • Simply want a generic configuration tool
  • Want to support multiple deployment configurations
  • Are using a Test-Driven Development philosophy or want to largely automate testing
  • Want to isolate a troublesome subsystem or provide smooth migration paths away from legacy interfaces
  • Need a great deal of configurable properties or plugin hot spots

Do not use StructureMap if an application or process requires little flexibility. The abstraction and indirection afforded by StructureMap is unnecessary and even harmful in simpler systems or processes.

The easiest way to get started is with the StructureMap QuickStart.  Please send any questions or suggestions to the StructureMap User Group on Google Groups.