<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Chris Garty's Weblog : Architecture</title><link>http://blogs.msdn.com/chrisgarty/archive/tags/Architecture/default.aspx</link><description>Tags: Architecture</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Conceptual Thinking Around Services: Which representation is the 'right' one?</title><link>http://blogs.msdn.com/chrisgarty/archive/2005/02/15/373086.aspx</link><pubDate>Tue, 15 Feb 2005 19:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:373086</guid><dc:creator>chrisgarty</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/chrisgarty/comments/373086.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chrisgarty/commentrss.aspx?PostID=373086</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I have been doing a lot of work with Indigo and&amp;nbsp;Service Orientation recently. I've been keeping quiet partly because Indigo was just about to have its &lt;/FONT&gt;&lt;A href="http://www.ftponline.com/conferences/vslive/2005/sf/indigo-day.aspx"&gt;&lt;FONT face=Verdana size=2&gt;big&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; &lt;/FONT&gt;&lt;A href="http://www.theserverside.net/articles/showarticle.tss?id=VSLiveDay02"&gt;&lt;FONT face=Verdana size=2&gt;party&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;, but mostly just because I've been busy.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Like any programming language or development style,&amp;nbsp;I like&amp;nbsp;to think of a&amp;nbsp;service oriented style as a combination of conceptual models (what), implementation details (how), and tooling (assistance).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;We are some way down the road to having solid options for all three, but one of the more interesting discussions to follow right now is in the conceptual space. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;A href="http://hyperthink.net/blog/default.aspx"&gt;Steve Maine&lt;/A&gt; &lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;has made an&amp;nbsp;&lt;A href="http://hyperthink.net/blog/PermaLink,guid,46c804f0-1384-4752-9519-182d407f9253.aspx"&gt;excellent post about conceptual models and the interplay between the conceptual models and implementation&lt;/A&gt;. Its so good that even &lt;A href="http://pluralsight.com/blogs/dbox/archive/2005/02/13/5837.aspx"&gt;Don Box linked to it&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;And if that kind of thing interests you, Steve has a bunch of links in his post that will give you hours of reading material :)&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=373086" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Jon Eaves: Infotainment</title><link>http://blogs.msdn.com/chrisgarty/archive/2004/12/08/278416.aspx</link><pubDate>Wed, 08 Dec 2004 21:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:278416</guid><dc:creator>chrisgarty</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/chrisgarty/comments/278416.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chrisgarty/commentrss.aspx?PostID=278416</wfw:commentRss><description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;I love geek humor, and &lt;/font&gt;&lt;a href="http://www.eaves.org/jon/index.shtml"&gt;&lt;font face="Verdana" size="2"&gt;Jon Eaves&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt; spits it out on a daily basis. Check out his latest contribution to world of patterns;&amp;nbsp;&lt;/font&gt;&lt;a href="http://www.eaves.org/blog-archive/000134.html"&gt;&lt;font face="Verdana" size="2"&gt;Bulimic Domain Model&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=278416" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Spring has arrived!</title><link>http://blogs.msdn.com/chrisgarty/archive/2004/10/05/237865.aspx</link><pubDate>Tue, 05 Oct 2004 19:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:237865</guid><dc:creator>chrisgarty</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/chrisgarty/comments/237865.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chrisgarty/commentrss.aspx?PostID=237865</wfw:commentRss><description>&lt;p&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;In the land down-under,&amp;nbsp;it is springtime. The birds are chirping louder, the days are getting longer, and the sun is getting hotter. I even got sunburnt playing soccer on Sunday :).&lt;/span&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;And for .Net developers Spring in another form has arrived in joyous splendor... &lt;a href="http://www.springframework.net/"&gt;Spring.Net 0.6 RC1 has been released&lt;/a&gt;.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt;The arrival of &lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.springframework.net/"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Spring.Net&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt; gives .Net developers another solid choice on the road to more loosely coupled component-based systems. &lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.springframework.net/"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Spring.Net&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt; will soon be &lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.springframework.org/docs/reference/aop.html"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;MUCH more than just a lightweight container&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt;, but even just as a lightweight dependency injection container it is an excellent offering for the .Net development community.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.martinfowler.com/"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Martin Fowler’s&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt; recent article on &lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.martinfowler.com/articles/injection.html"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;lightweight containers and dependency injection&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt; highlighted two excellent Java offerings; &lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.springframework.org/"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Spring&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt; and &lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.picocontainer.org/"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;PicoContainer&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt;. Now both of these alternatives are available to the .Net world.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt;Whether you use a dedicated dependency injection container like &lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.picocontainer.org/"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;PicoContainer&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt;, a service locator offering like .Net's own &lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.theserverside.net/blogs/showblog.tss?id=pluginArchitectures"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;System.ComponentModel namespace&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt;, a pluggable model&amp;nbsp;like the &lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspnet/html/asp04212004.asp"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;provider pattern&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt;, or a dependency injection container ‘&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.springframework.org/docs/reference/aop.html"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;with more&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt;’ like &lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.springframework.net/"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Spring.Net&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt; the important goal of &lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-AU"&gt;&lt;a href="http://www.martinfowler.com/articles/injection.html#SeparatingConfigurationFromUse"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;separating configuration from use&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-AU"&gt; during .Net software development has never been more widely supported or easier to achieve.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=237865" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Testability/default.aspx">Testability</category><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Lightweight+Containers/default.aspx">Lightweight Containers</category></item><item><title>MBF and WinFS: A view of the world I am entering</title><link>http://blogs.msdn.com/chrisgarty/archive/2004/09/22/232671.aspx</link><pubDate>Wed, 22 Sep 2004 21:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:232671</guid><dc:creator>chrisgarty</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/chrisgarty/comments/232671.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chrisgarty/commentrss.aspx?PostID=232671</wfw:commentRss><description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;a href="http://blogs.msdn.com/timbrookins/"&gt;Tim Brookins&lt;/a&gt; is an Architect on the MBF team (and he is&amp;nbsp;based in Fargo). When I got impatient waiting for a reply about the &lt;A href="http://weblogs.asp.net/chrisgarty/archive/2004/09/21/232260.aspx"&gt;position in the MBF team&lt;/a&gt;, an email to Tim was the thing that sparked it all off ;).&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;I just &lt;a href="http://blogs.msdn.com/timbrookins/archive/2004/09/20/231819.aspx"&gt;read a post from Tim&lt;/a&gt; (two days old) that explains &lt;a href="http://blogs.msdn.com/timbrookins/archive/2004/09/20/231819.aspx"&gt;the tie between MBF and WinFS&lt;/a&gt; and answers a few questions people might have about the scope of the MBF effort.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;I'm sure after reading that, you can understand why I'm really excited about getting over there and getting into it!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=232671" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Object+Relational/default.aspx">Object Relational</category><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/MBF/default.aspx">MBF</category><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/WinFS/default.aspx">WinFS</category><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Personal/default.aspx">Personal</category></item><item><title>MDNUG: DotNetNuke on the 28th of September</title><link>http://blogs.msdn.com/chrisgarty/archive/2004/09/15/229732.aspx</link><pubDate>Wed, 15 Sep 2004 19:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:229732</guid><dc:creator>chrisgarty</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/chrisgarty/comments/229732.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chrisgarty/commentrss.aspx?PostID=229732</wfw:commentRss><description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;The next &lt;a href="http://www.mdnug.org/"&gt;MDNUG&lt;/a&gt; (Melbourne Microsoft Developer Group) meeting will be on the 28th of September.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;A href="http://weblogs.asp.net/frankarr/archive/2004/09/14/229064.aspx"&gt;Frank Arrigo&lt;/a&gt; just posted a good summary:&lt;/font&gt;&lt;/p&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Microsoft joins forces with local user groups and brings you the &lt;/font&gt;&lt;a href="http://www.dnn.com.au/"&gt;&lt;font face="Verdana" color="#cc0000" size="2"&gt;DotNetNuke&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt; Development Team (&lt;/font&gt;&lt;a href="http://lucaslabs.net/blogs/mccullochs/"&gt;&lt;font face="Verdana" color="#cc0000" size="2"&gt;Scott McCulloch&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt; and &lt;/font&gt;&lt;a href="http://www.byte.com.au/"&gt;&lt;font face="Verdana" color="#cc0000" size="2"&gt;Phil Beadle&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;). Don't miss this introduction to &lt;/font&gt;&lt;a href="http://www.dnn.com.au/"&gt;&lt;font face="Verdana" color="#cc0000" size="2"&gt;DotNetNuke&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt; and why this open source, solution kit portal application has become one of the most successful open source projects utilizing Microsoft &lt;/font&gt;&lt;a href="http://www.asp.net/"&gt;&lt;font face="Verdana" color="#cc0000" size="2"&gt;ASP.NET&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;The session will start with an overview of the &lt;/font&gt;&lt;a href="http://www.dnn.com.au/"&gt;&lt;font face="Verdana" color="#cc0000" size="2"&gt;DotNetNuke&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt; Features then take a look at the High-Level Architecture before diving into some advanced topics such as Skinning and Module Development and finish with Open Source Challenges.&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p dir="ltr"&gt;&lt;font face="Verdana" size="2"&gt;It sounds great and it should cover the whole meeting time. That would make this the first meeting in four months where I haven't given a presentation ;)&lt;/font&gt;&lt;/p&gt; &lt;p dir="ltr"&gt;&lt;font face="Verdana" size="2"&gt;I hope you can all make it!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=229732" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Dependency Injection: World changing concept or nothing special?</title><link>http://blogs.msdn.com/chrisgarty/archive/2004/08/19/216533.aspx</link><pubDate>Thu, 19 Aug 2004 09:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:216533</guid><dc:creator>chrisgarty</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/chrisgarty/comments/216533.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chrisgarty/commentrss.aspx?PostID=216533</wfw:commentRss><description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;That was the question that I got asked about a month ago. My response was "something in the middle". I like &lt;a href="http://www.martinfowler.com/articles/injection.html"&gt;Dependency Injection&lt;/a&gt;. It facilitates testing, it facilitates change, and it facilitates clean design.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;I have been thinking about container assisted dependency injection lately&amp;nbsp;and&amp;nbsp;have been&amp;nbsp;playing around with &lt;a href="http://www.picocontainer.org/"&gt;PicoContainer&lt;/a&gt;. I've been trying to justify the use of PicoContainer to facilitate dependency injection versus&amp;nbsp;just&amp;nbsp;injecting dependencies manually. My primary aim was to facilitate testing and good design, so the manual passing of dependencies was sufficient, but there was&amp;nbsp;this nagging voice in my head telling me that the design would be more open to change if the rigidity of the dependency injections was placed in just one spot. However, I couldn't quite articulate that idea and had just left it hanging for a little while.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;&lt;font face="Verdana" size="2"&gt;Enter Mr Oberg. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;a href="http://jroller.com/page/rickard"&gt;Rickard Oberg&lt;/a&gt; is a very smart guy that I first found out&amp;nbsp;about when he did an &lt;/font&gt;&lt;a href="http://www.theserverside.com/talks/library.tss#oberg"&gt;&lt;font face="Verdana" size="2"&gt;interview on TheServerSide.com&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt; back in 2001 when he was a core architect and developer on the JBoss (then version 2.0) J2EE server. Rickard has made some great posts on &lt;a href="http://jroller.com/page/rickard"&gt;his blog&lt;/a&gt;&amp;nbsp;over the past year&amp;nbsp;that have helped me better understand&amp;nbsp;&lt;a href="http://www.aosd.net/"&gt;Aspect Oriented Programming&lt;/a&gt; (I'm watching the development of &lt;a href="http://www.springframework.net"&gt;Spring.Net&lt;/a&gt;&amp;nbsp;with some interest) and the value it can bring to software development.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Rickard just made a great &lt;/font&gt;&lt;/font&gt;&lt;font face="Verdana" size="2"&gt;post on "&lt;/font&gt;&lt;a href="http://jroller.com/page/rickard/20040814"&gt;&lt;font face="Verdana" size="2"&gt;Dependency injection and open vs. closed designs&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;" that has helped bring clarity to my thoughts on dependency injection and design. Go read&amp;nbsp;&lt;a href="http://jroller.com/page/rickard/20040814"&gt;his post&lt;/a&gt;&amp;nbsp;for the full story, but I had a number of 'oh yeah' moments while I read&amp;nbsp;this part:&lt;/font&gt;&lt;/p&gt; &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;So, is an "open design preferable to a "closed" design? Well, I like to compare this to house building. Using a "closed" design is like building a house where the rooms have no doors. Whenever you decide that there needs to be a door between two rooms you punch out the wall and insert a door. It's not something you would do easily. On the other hand, using an entirely "open" design is like building a house where the rooms have no walls, only doors. This makes for great flexibility, but don't be surprised if the roof comes crashing down. The conclusion of this analogy is that you'd probably want both: the rigidity of walls combined with the flexibility of doors. In Pico terms, the foundation of the house is provided by the Container, while the rigidity is provided by a ContainerComposer. The composer is the place where all decisions are made, and essentially it has to know about all the things that Foo knew in the "closed" design version: whether Bar is a class or interface, how to instantiate Bar, and what parameters to provide to it. If you let it do this for all components in the system, then all of our assumptions have been put into one place, and if any assumption would be wrong, that is the only place which would be affected by it.&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Got it?&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Dependency injection = 'open'. Specific injection decisions = 'closed'. Pico + ContainerComposer = isolate the 'closed' parts in one 'easy to maintain' place. Biggest value of a Dependency Injection container = maintainability.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Got it.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=216533" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Testability/default.aspx">Testability</category><category domain="http://blogs.msdn.com/chrisgarty/archive/tags/Architecture/default.aspx">Architecture</category></item></channel></rss>