-
Notifications
You must be signed in to change notification settings - Fork 275
/
Default.htm
167 lines (164 loc) · 8.07 KB
/
Default.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>StructureMap Home Page</title>
<link rel="stylesheet" type="text/css" href="style.css">
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body>
<TABLE cellSpacing="5" cellPadding="0" width="100%" border="0">
<TR>
<TD valign="top" width="210" class="form">
<p align="center">
<A href="http://sourceforge.net"><IMG src="http://sourceforge.net/sflogo.php?group_id=104740&type=5" width="210" height="62"
border="0" alt="SourceForge.net Logo"></A>
</p>
<P style="LINE-HEIGHT: 25px">
<A href="Default.htm">Home</A><BR>
<a href="http://sourceforge.net/projects/structuremap">StructureMap on SourceForge</a><br>
<A href="Basic Architecture.htm">Basic Architecture</A><BR>
<A href="Concepts.htm">Concepts</A><BR>
<A href="StructureMap-API.chm">API Documentation</A><BR>
<A href="FAQ.htm">FAQ</A><BR>
<A href="Configuration.htm">Configuration Schema</A><BR>
<a href="MementoSources.htm">Memento Sources</a><BR>
<a href="NodeNormalized.htm">Node Normalized Xml</a><BR>
<a href="AttributeNormalized.htm">Attribute
Normalized Xml</a><BR>
<a href="Attributes.htm">Attribute Usage</a><BR>
<a href="Scoping.htm">Instance Lifecyle Scoping</a><BR>
<A href="ConfigurationManagement.htm">Configuration Management</A><BR>
<A href="StructureMapDoctor.htm">StructureMapDoctor</A><BR>
<A href="StructureMapExplorer.htm">StructureMapExplorer</A><BR>
<A href="structuremap.deployment.htm">deployment Task</A><BR>
<A href="structuremap.verification.htm">verification Task</A><BR>
<A href="ValidationAttribute.htm">ValidationMethod Attribute</A><BR>
<A href="NAnt Tasks.htm">Other NAnt Tasks</A><BR>
<A href="Troubleshooting.htm">Troubleshooting</A><BR>
<A href="SingletonInjection.htm">Singleton Injection</A></P>
</TD>
<TD valign="top" style="PADDING-LEFT: 25px">
<h1>StructureMap</h1>
<h3>Description</h3>
<p>
StructureMap is a <a href="http://www.martinfowler.com/articles/injection.html">Dependency
Injection</a> 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.</p>
<p>
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.</p>
<p>
New for version 2.0</p>
<ul>
<li>Full support for pluggable generic types. IService<T> and Service<T>.
Auto wiring support for generic arguments</li>
<li>Simpler, more terse Xml configuration. Fewer steps and less Xml.</li>
<li>Define Profile instances inline for less Xml</li>
<li>New Fluent Interface API for programmatic configuration. If so desired, all configuration can now be done in code at application startup</li>
<li>The default StructureMap.config file is now optional</li>
<li>Use multiple configuration files additively for easier configuration of composite
applications</li>
<li>Pluggable ASP.Net UserControl's</li>
<li>Inject prototype instances</li>
<li>Inject prebuilt singleton instances </li>
</ul>
<p>
Consider using StructureMap if you…</p>
<ul>
<li>
Require significant extensibility
<li>
Are using a Test-Driven Development philosophy or want to largely automate
testing
<li>
Want to isolate a troublesome subsystem or provide smooth migration paths away
from legacy interfaces
<li>
Need a great deal of configurable properties or plugin hot spots </li>
</ul>
<p>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. </p>
<h3>Status</h3>
<p>StructureMap is the oldest IoC/DI tool for .Net development and has been used in multiple production systems
since
June 2004. The current version 2.0 was released in April 2007. StructureMap is maintained and developed by
<a href="mailto:jeremydmiller@yahoo.com?subject=StructureMap">Jeremy D. Miller</a>,
<a href="http://codebetter.com/blogs/jeremy.miller">The
Shade Tree Developer</a>.
</p>
<p>Recent Articles</p>
<ul>
<li>
<a href="http://codebetter.com/blogs/jeremy.miller/archive/2005/11/18/134816.aspx">
Introduction to using StructureMap for Dependency
Injection</a></li>
<li>
<a href="http://codebetter.com/blogs/jeremy.miller/archive/2006/04/06/142431.aspx">
Environment Tests and Self-Diagnosing Configuration (with
StructureMap)</a></li>
</ul>
<h3>Feature List</h3>
<UL>
<li>
Creates objects using the <a href="http://picocontainer.codehaus.org/Constructor+Injection">
Constructor Injection pattern</a> </li>
<LI>
Optionally, attach dependencies and other properties through Setter Injection
(v0.90)
<LI>
Runtime linking of object dependencies
<LI>
Configurable object <a href="Scoping.htm">lifecycle
scoping</a> (v1.0)<LI>
Optional support for an
<a href="SingletonInjection.htm">Injected Singleton</a> (v0.90)
<LI>
Generalized support for the
<a href="Concepts.htm#Plugin">Plugin</a> pattern using (almost) any type of class or
interface
<LI>
Configurable either implicitly through
<a href="Attributes.htm">custom attributes</a> or explicitly through
XML configuration
<LI>
Optional log4net integration
<LI>
<EM>Mock Injection</EM> using built in support for <a href="http://sourceforge.net/projects/nmock/">
NMock</a>
<LI>
Runtime injection of a static mock or stub (v0.90)
<LI>
Machine level overrides of default configuration
<LI>
Profile overrides of default configuration -- i.e. "Remote" vs "Local" vs
"Stubbed" dependency profiles
<LI>
NAnt tasks for diagnostic verification of configuration and deployment
utilities for easier continuous integration (v0.90)
<LI>
Command line utility for troubleshooting runtime configuration issues
(v0.90)
<LI>
Diagnostic WinForms tool for exploring and
troubleshooting configuration (v1.0)<LI>
Uses Reflection.Emit namespace classes to create IL code on the fly for
performance superior to Reflection based approaches</LI>
</UL>
</TD>
</TR>
<TR>
<TD valign="top" width="210" class="form">
</TD>
<TD valign="top" style="PADDING-LEFT: 25px">
</TD>
</TR>
</TABLE>
</body>
</html>