<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>I, Developer</title>
	<atom:link href="http://kiefermat.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kiefermat.wordpress.com</link>
	<description>[self.brain dump]</description>
	<lastBuildDate>Sat, 14 May 2011 12:12:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='kiefermat.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>I, Developer</title>
		<link>http://kiefermat.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://kiefermat.wordpress.com/osd.xml" title="I, Developer" />
	<atom:link rel='hub' href='http://kiefermat.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Why and How to Document your Software Architecture</title>
		<link>http://kiefermat.wordpress.com/2010/01/05/why-and-how-to-document-your-software-architecture/</link>
		<comments>http://kiefermat.wordpress.com/2010/01/05/why-and-how-to-document-your-software-architecture/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 18:43:07 +0000</pubDate>
		<dc:creator>Matthias Kiefer</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Documentation]]></category>

		<guid isPermaLink="false">http://kiefermat.wordpress.com/?p=123</guid>
		<description><![CDATA[Coding the Architecture provides a very nice slide set giving a very good high level overview of why and how to document your software architecture in a practical way. As I wrote, it is a slide set and therefore only provides very short summaries on the different aspects. Nevertheless, it provides some good suggestions which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=123&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.codingthearchitecture.com">Coding the Architecture</a> provides a very nice<a href="http://www.codingthearchitecture.com/presentations/sa2009-documenting-your-software-architecture-why-and-how/"> slide set</a> giving a very good high level overview of why and how to document your software architecture in a practical way. As I wrote, it is a slide set and therefore only provides very short summaries on the different aspects. Nevertheless, it provides some good suggestions which topics should be covered and how to document them.</p>
<p>Key takeaways:</p>
<ul>
<li>Software architecture documentation should be <em>complementary to the code</em> and <em>describe what the code itself doesn&#8217;t</em>. For example, it&#8217;s really hard to identify things like architectural principles, operational aspects and how security works from just the code itself.</li>
<li>Keep it short and useful</li>
<li>What it should contain:
<ul>
<li>Explanation of the software structure</li>
<li>The architectural principles and constraints</li>
<li>Development and deployment technologies and platforms</li>
<li>A justification of how the architecture satisfies the requirements</li>
</ul>
</li>
</ul>
<p>You can find the slide set <a href="http://www.codingthearchitecture.com/presentations/sa2009-documenting-your-software-architecture-why-and-how/">here</a>.</p>
<p>BTW: <a href="http://www.codingthearchitecture.com/">Coding the Architecture</a> contains a lot of useful resources for software architects.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kiefermat.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kiefermat.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kiefermat.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kiefermat.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kiefermat.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kiefermat.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kiefermat.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kiefermat.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kiefermat.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kiefermat.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kiefermat.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kiefermat.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kiefermat.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kiefermat.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=123&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kiefermat.wordpress.com/2010/01/05/why-and-how-to-document-your-software-architecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0a5dfee5107e51db90b41eac83adefc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mkiefer</media:title>
		</media:content>
	</item>
		<item>
		<title>97 Things Every Software Architect Should Know</title>
		<link>http://kiefermat.wordpress.com/2009/12/30/97-things-every-software-architect-should-know/</link>
		<comments>http://kiefermat.wordpress.com/2009/12/30/97-things-every-software-architect-should-know/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 19:04:43 +0000</pubDate>
		<dc:creator>Matthias Kiefer</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Professionalism]]></category>

		<guid isPermaLink="false">http://kiefermat.wordpress.com/?p=130</guid>
		<description><![CDATA[In this truly unique technical book, today&#8217;s leading software architects present valuable principles on key development issues that go way beyond technology. More than four dozen architects &#8212; including Neal Ford, Michael Nygard, and Bill de h ra &#8212; offer advice for communicating with stakeholders, eliminating complexity, empowering developers, and many more practical lessons they&#8217;ve [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=130&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote>
<p style="text-align:left;">In this truly unique technical book, today&#8217;s leading software architects present valuable principles on key development issues that go way beyond technology. More than four dozen architects &#8212; including Neal Ford, Michael Nygard, and Bill de h ra &#8212; offer advice for communicating with stakeholders, eliminating complexity, empowering developers, and many more practical lessons they&#8217;ve learned from years of experience. Among the 97 principles in this book, you&#8217;ll find useful advice such as:</p>
<ul>
<li> Don&#8217;t Put Your Resume Ahead of the Requirements (Nitin Borwankar)</li>
<li>Chances Are, Your Biggest Problem Isn&#8217;t Technical (Mark Ramm)</li>
<li>Communication Is King; Clarity and Leadership, Its Humble Servants (Mark Richards)</li>
<li>Simplicity Before Generality, Use Before Reuse (Kevlin Henney)</li>
<li>For the End User, the Interface Is the System (Vinayak Hegde)</li>
<li>It&#8217;s Never Too Early to Think About Performance (Rebecca Parsons)</li>
</ul>
<p>To be successful as a software architect, you need to master both business and technology. This book tells you what top software architects think is important <em>and</em> how they approach a project.</p></blockquote>
<p>You can find the 97 things for free <a href="http://97-things.near-time.net/wiki/97-things-every-software-architect-should-know-the-book">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kiefermat.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kiefermat.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kiefermat.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kiefermat.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kiefermat.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kiefermat.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kiefermat.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kiefermat.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kiefermat.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kiefermat.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kiefermat.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kiefermat.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kiefermat.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kiefermat.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=130&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kiefermat.wordpress.com/2009/12/30/97-things-every-software-architect-should-know/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0a5dfee5107e51db90b41eac83adefc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mkiefer</media:title>
		</media:content>
	</item>
		<item>
		<title>Android Fragmentation</title>
		<link>http://kiefermat.wordpress.com/2009/12/19/android-fragmentation/</link>
		<comments>http://kiefermat.wordpress.com/2009/12/19/android-fragmentation/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 10:18:02 +0000</pubDate>
		<dc:creator>Matthias Kiefer</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Android Market]]></category>
		<category><![CDATA[Fragmentation]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://kiefermat.wordpress.com/?p=152</guid>
		<description><![CDATA[Google announced on its Android Developers Blog that they are now providing a device dashboard showing the distribution of the Android version accessing the Android Market (later on also including hardware characteristics of devices). As a developer, I often wonder which Android platforms my applications should support,especially as the number of Android-powered devices grows. Should [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=152&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Google announced on its <a href="http://android-developers.blogspot.com/2009/12/knowing-is-half-battle.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+blogspot%2FhsDu+%28Android+Developers+Blog%29">Android Developers Blog</a> that they are now providing a <a href="http://developer.android.com/resources/dashboard/platform-versions.html">device dashboard</a> showing the distribution of the Android version accessing the Android Market (later on also including hardware characteristics of devices).</p>
<blockquote><p>As a developer, I often wonder which Android platforms my applications should support,especially as the number of Android-powered devices grows. Should my application only focus on the latest version of the platform or should it support older ones as well?</p>
<p>To help with this kind of decision, I am excited to announce the new device dashboard. It provides information about deployed Android-powered devices that is helpful to developers as they build and update their apps. The dashboard provides the relative distribution of Android platform versions on devices running Android Market.</p>
<p>&#8230;</p>
<p>In summary, Android 1.5, 1.6, and 2.0.1 are the 3 versions of the platform that are deployed in volume. Our goal is to provide you with the tools and information to make it easy for you to target specific versions of the platform or all the versions that are deployed in volume.</p>
<p>We plan to update the dashboard regularly to reflect deployment of new Android platforms. We also plan to expand the dashboard to include other information like devices per screen size and so on.</p></blockquote>
<p>Don&#8217;t get me wrong: the data is very interesting. However, it strongly reminds me on the situation on Windows, where still about 30% of the users use Windows XP. Having such a big fragmentation of OS versions really forces you to either make big compromises and build your application only using the features of the lowest OS version or to make your application adapt to the OS version it is running on. The later one adds a lot of trouble in development efforts, testing and bug fixing.</p>
<p>Still, it will be interesting to see how the fragmentation of Android devices evolve and how this will influence the attraction of developers providing Apps for the Android OS. Of course, having developers focusing only on certain Android OS versions and/or hardware characteristics could also make the hardware vendors streamline their hardware specs and OS versions. Selling Android devices which show only very few apps on the Android Market might not sell so well after all.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kiefermat.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kiefermat.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kiefermat.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kiefermat.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kiefermat.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kiefermat.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kiefermat.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kiefermat.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kiefermat.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kiefermat.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kiefermat.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kiefermat.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kiefermat.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kiefermat.wordpress.com/152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=152&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kiefermat.wordpress.com/2009/12/19/android-fragmentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0a5dfee5107e51db90b41eac83adefc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mkiefer</media:title>
		</media:content>
	</item>
		<item>
		<title>Links for Software Architects</title>
		<link>http://kiefermat.wordpress.com/2009/12/17/links-for-software-architects-3/</link>
		<comments>http://kiefermat.wordpress.com/2009/12/17/links-for-software-architects-3/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 18:43:53 +0000</pubDate>
		<dc:creator>Matthias Kiefer</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Design Principle]]></category>
		<category><![CDATA[Patterns]]></category>
		<category><![CDATA[Professionalism]]></category>
		<category><![CDATA[Role]]></category>
		<category><![CDATA[Skills]]></category>
		<category><![CDATA[Software Architect]]></category>
		<category><![CDATA[Success]]></category>

		<guid isPermaLink="false">http://kiefermat.wordpress.com/?p=126</guid>
		<description><![CDATA[Over the time, I have collected some links to websites and articles with topics interesting for Software Architects. Since they might be of interest for others, too, I am providing them here for you. If you also have some links which you think are interesting for other Software Architects, please let me know. Web Sites [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=126&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Over the time, I have collected some links to websites and articles with topics interesting for Software Architects. Since they might be of interest for others, too, I am providing them here for you. If you also have some links which you think are interesting for other Software Architects, please let me know.</p>
<p><span id="more-126"></span></p>
<h2>Web Sites</h2>
<h3><a href="http://www.codingthearchitecture.com/">Coding the Architecture</a></h3>
<blockquote><p>&#8220;Coding the Architecture&#8221; is a website and community for hands-on, pragmatic software architects. Here you&#8217;ll find content and discussion about architecture and the role of an architect, along with our experiences of undertaking that role.</p></blockquote>
<p>The site is worth browsing through the different articles, providing practical approaches to topics related to software architecture.</p>
<p>Special Links:</p>
<ul>
<li>&#8220;<a href="http://www.codingthearchitecture.com/2008/12/08/re_evaluating_software_architecture.html">Why do we need Software Architecture</a>&#8220;</li>
<li>&#8220;<a href="http://www.codingthearchitecture.com/pages/book/role.html">The role of the Software Architect</a>&#8220;</li>
<li>&#8220;<a href="http://www.codingthearchitecture.com/pages/book/software-architecture-document-guidelines.html">How to document Software Architecture</a>&#8220;</li>
</ul>
<h3><a href="http://www.designpatternsfor.net">Design Patterns for .Net</a></h3>
<blockquote><p>The goal of this site is to not only provide a portal to useful and pragmatic software design and career related topics, but to also deliver articles, editorials, presentations, and news on the same.</p></blockquote>
<p>Although the title of this site reads like providing special guidance for .NET related Software Architecture, many articles cover topics more related to the role of an Software Architect. However, also best practices for designing solutions for special topics are provided.</p>
<p>Special links:</p>
<ul>
<li>What Does it Mean to be a Software Architect? (<a href="http://www.designpatternsfor.net/Default.aspx?pid=5">Part 1</a>, <a href="http://www.designpatternsfor.net/default.aspx?pid=19">Part 2</a>, <a href="http://www.designpatternsfor.net/Default.aspx?pid=75">Part 3</a>)</li>
<li><a href="http://www.designpatternsfor.net/Default.aspx?pid=25">The Hard Skills are the Soft Skills</a></li>
<li><a href="http://www.designpatternsfor.net/Default.aspx?pid=60">The Passage from Developer to Architect</a></li>
<li>Architectural Decisions and Their Consequences (<a href="http://www.designpatternsfor.net/Default.aspx?pid=58">Part 1</a>, <a href="http://www.designpatternsfor.net/Default.aspx?pid=59">Part 2</a>)</li>
<li><a href="http://www.designpatternsfor.net/Presentations/BecomingAnArchitect.pdf">Becoming an Architect (Summary Presentation)</a></li>
<li>Anti-Patterns: <a href="http://www.designpatternsfor.net/Presentations/AntiPatternsTheTopTenList.pdf">The Top 10 List</a>, <a href="http://www.designpatternsfor.net/Presentations/AntiPatternsTheTopTenList.pdf"></a><a href="http://www.designpatternsfor.net/Presentations/AntiPatternsInSoftwareProjects.TheHumanFactor.V2.pdf">The Human Factor</a></li>
</ul>
<h3><a href="http://msdn.microsoft.com/en-us/architecture/default.aspx">MSDN Architecture Center</a></h3>
<blockquote><p>This Architecture Developer Center is the place to access to all our information without being subscribed to our other channels. You also get blogged opinions from renowned architects (MS architects or external luminaries), 5-to-10-minute videos , and discussion forums where you might share thoughts with your colleagues.<br />
This center is a place where you can get architecture ideas to be implemented either in the Microsoft platform or any other. We will also show you what the current Microsoft platform is and what its roadmap looks like.</p></blockquote>
<p>Microsoft&#8217;s central starting point for architecture related topics.</p>
<p>Special links:</p>
<ul>
<li>The <a href="http://msdn.microsoft.com/en-us/architecture/cc511514.aspx">Architecture Journal</a> provides in-depth articles to certain topics, e.g. <a href="http://msdn.microsoft.com/en-us/architecture/cc505966.aspx">the role of an Software Architect</a> or other more technical topics</li>
<li>The <a href="http://msdn.microsoft.com/en-us/practices/bb190357.aspx">patterns &amp; practices group</a> provides guidance for Microsoft related technologies including Documentation and sample implementations of certain patterns, e.g. here can you find a <a href="http://msdn.microsoft.com/en-us/library/aa286581.aspx">List of Microsoft patterns and practices for Application Architecture and Design</a>, or also have a look at <a href="http://msdn.microsoft.com/en-us/library/cc707819.aspx">Composite Client Application Guidance</a> which can &#8220;help you design and build flexible client applications using loosely coupled, independently evolvable pieces that work together and are integrated into the overall application&#8221;.</li>
</ul>
<h3><a href="http://www.bredemeyer.com">Resources for Software Architects</a></h3>
<blockquote><p>Software architecture is getting a lot of attention. Is it just the silver bullet du jour? We think not. It surely is critical to today&#8217;s business success, yet it requires technical, business and organizational talents and skills that warrant their own path of career development, education, and research.</p>
<p>This site organizes a variety of resources to help enterprise architects and software architects deepen and expand their understanding of architecture and the role of the architect.</p></blockquote>
<p>Special Links:</p>
<ul>
<li><a href="http://www.bredemeyer.com/links.htm">General Link List for Software Architecture related topics</a></li>
<li><a href="http://www.bredemeyer.com/Architect/RoleOfTheArchitect.htm">Link list to articles related to the role of an Software Architect</a></li>
<li><a href="http://www.bredemeyer.com/whatis.htm">What is Software Architecture?</a></li>
<li><a href="http://www.bredemeyer.com/why.htm">Why do we need Software Architecture?</a></li>
</ul>
<h2>Articles</h2>
<h4><a href="http://www.devx.com/enterprise/Article/32036">Escape Metropolis: Bridging the Divide Between Developers and Architects</a></h4>
<blockquote><p>The conflict between Planners and Workers in the film Metropolis can serve as a metaphor for the divide between architects and developers in the software industry. A veteran who&#8217;s been on both sides has some suggestions for bridging the gap.</p></blockquote>
<h4><a href="http://download.microsoft.com/documents/uk/msdn/architecture/architectinsight/2007/Enterprise/ENT07-What-Do-Architects-Do-Anyway.ppt">What Do Architects Do Anyway</a>?</h4>
<p>Presentation from Ron Jacobs, Architect, Microsoft Corporation at the Microsoft Architect Inside Conference 2007</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kiefermat.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kiefermat.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kiefermat.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kiefermat.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kiefermat.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kiefermat.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kiefermat.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kiefermat.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kiefermat.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kiefermat.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kiefermat.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kiefermat.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kiefermat.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kiefermat.wordpress.com/126/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=126&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kiefermat.wordpress.com/2009/12/17/links-for-software-architects-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0a5dfee5107e51db90b41eac83adefc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mkiefer</media:title>
		</media:content>
	</item>
		<item>
		<title>How to detect and avoid memory and resources leaks in .NET applications</title>
		<link>http://kiefermat.wordpress.com/2009/12/12/how-to-detect-and-avoid-memory-and-resources-leaks-in-net-applications/</link>
		<comments>http://kiefermat.wordpress.com/2009/12/12/how-to-detect-and-avoid-memory-and-resources-leaks-in-net-applications/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 08:45:04 +0000</pubDate>
		<dc:creator>Matthias Kiefer</dc:creator>
				<category><![CDATA[Howtos]]></category>
		<category><![CDATA[Best Practice]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Garbage Collector]]></category>
		<category><![CDATA[Memory Leak]]></category>
		<category><![CDATA[Profiler]]></category>

		<guid isPermaLink="false">http://kiefermat.wordpress.com/?p=132</guid>
		<description><![CDATA[MSDN features an article covering reasons why and how managed applications can suffer from memory leaks, how you can find them and get rid of them: Despite what a lot of people believe, it&#8217;s easy to introduce memory and resources leaks in .NET applications. The Garbage Collector, or GC for close friends, is not a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=132&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>MSDN features an <a href="http://msdn.microsoft.com/en-us/library/ee658248.aspx">article</a> covering reasons why and how managed applications can suffer from memory leaks, how you can find them and get rid of them:</p>
<blockquote><p>Despite what a lot of people believe, it&#8217;s easy to introduce memory and resources leaks in .NET applications. The Garbage Collector, or GC for close friends, is not a magician who would completely relieve you from taking care of your memory and resources consumption.</p>
<p>I&#8217;ll explain in this article why memory leaks exist in .NET and how to avoid them. Don&#8217;t worry, I won&#8217;t focus here on the inner workings of the garbage collector and other advanced characteristics of memory and resources management in .NET.</p>
<p>It&#8217;s important to understand leaks and how to avoid them, especially since they are not the kind of things that is easy to detect automatically. Unit tests won&#8217;t help here. And when your application crashes in production, you&#8217;ll be in a rush looking for solutions. So, relax and take the time to learn more about this subject before it&#8217;s too late.</p></blockquote>
<p><span id="more-132"></span></p>
<blockquote>
<h3>Table of Content</h3>
<ul>
<li>Introduction</li>
<li>Leaks? Resources? What do you mean?</li>
<li>How to detect leaks and find the leaking resources</li>
<li>Common memory leak causes</li>
<li>Common memory leaks causes demonstrated</li>
<li>How to avoid leaks</li>
<li>Tools</li>
<li>Conclusion</li>
<li>Resources</li>
</ul>
<p>&#8230;</p>
<h3>How to avoid leaks</h3>
<p>Now that you know more about leaks and how then can happen, I&#8217;d like to stress a few points and give you some tips.</p>
<p>Let&#8217;s first discuss about a general rule. Usually, an object that creates another object is responsible for disposing it. Of course, this is not the case if the creator is a factory.</p>
<p>The reverse: an object that receives a reference to another object is not responsible for disposing it.</p>
<p>In fact, this really depends on the situation. In any case, what&#8217;s important to keep in mind is who owns an object.</p>
<p>Second rule: <strong>Each += is a potential enemy!</strong></p>
<p>Given my own experience, I&#8217;d say that events are the main source of leaks in .NET. They deserve double- and even triple-checks. Each time you add a subscription to an event in your code, you should worry about the consequences and ask yourself whether you need to add a -= to unsubscribe from the event. If you have to, do it immediately before you forget about it. Often, you&#8217;ll do that in a Dispose method.</p>
<p>Having listener objects unsubscribe from the events they subscribe to is usually the recommended way to ensure they can be collected. However, when you absolutely know that an observed object wont publish notifications anymore and you wish that its subscribers can be released, you can force the removal of all the subscriptions to the observed object. I have a code sample on my blog that shows how to do this.</p>
<p>A quick tip now. Often, issues start to appear when object references are shared among several objects. This happens because it may become difficult to keep track of what references what. Sometimes it&#8217;s better to clone objects in memory and have views work with the clones rather than having views and model objects intertwined.</p>
<p>Finally, even if it&#8217;s a well-known best practice in .NET, I&#8217;d like to stress one more time the importance of calling Dispose. Each time you allocate a resource, make sure you call Dispose or encapsulate the use of the resource in a using block. If you don&#8217;t do this all the time, you can quickly end up with leaking resources &#8211; most of the time unmanaged resources.</p></blockquote>
<p>Read the whole article at <a href="http://msdn.microsoft.com/en-us/library/ee658248.aspx">How to detect and avoid memory and resources leaks in .NET applications</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kiefermat.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kiefermat.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kiefermat.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kiefermat.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kiefermat.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kiefermat.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kiefermat.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kiefermat.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kiefermat.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kiefermat.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kiefermat.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kiefermat.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kiefermat.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kiefermat.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=132&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kiefermat.wordpress.com/2009/12/12/how-to-detect-and-avoid-memory-and-resources-leaks-in-net-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0a5dfee5107e51db90b41eac83adefc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mkiefer</media:title>
		</media:content>
	</item>
		<item>
		<title>Tooltips for indivual cells of a DataGrid</title>
		<link>http://kiefermat.wordpress.com/2009/06/15/tooltips-for-indivual-cells-of-a-datagrid/</link>
		<comments>http://kiefermat.wordpress.com/2009/06/15/tooltips-for-indivual-cells-of-a-datagrid/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 12:50:21 +0000</pubDate>
		<dc:creator>Matthias Kiefer</dc:creator>
				<category><![CDATA[Howtos]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[DataBinding]]></category>
		<category><![CDATA[DataGrid]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[ToolTip]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://kiefermat.wordpress.com/?p=98</guid>
		<description><![CDATA[This post has been moved to http://kiefermat.com/2009/06/15/tooltips-for-indivual-cells-of-a-datagrid/. Please update your links. Thanks!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=98&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This post has been moved to <a href="http://kiefermat.com/2009/06/15/tooltips-for-indivual-cells-of-a-datagrid/">http://kiefermat.com/2009/06/15/tooltips-for-indivual-cells-of-a-datagrid/</a>. Please update your links. Thanks!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kiefermat.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kiefermat.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kiefermat.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kiefermat.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kiefermat.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kiefermat.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kiefermat.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kiefermat.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kiefermat.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kiefermat.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kiefermat.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kiefermat.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kiefermat.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kiefermat.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=98&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kiefermat.wordpress.com/2009/06/15/tooltips-for-indivual-cells-of-a-datagrid/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0a5dfee5107e51db90b41eac83adefc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mkiefer</media:title>
		</media:content>
	</item>
		<item>
		<title>WCF Services with Large Responds</title>
		<link>http://kiefermat.wordpress.com/2009/05/20/wcf-services-with-large-responds/</link>
		<comments>http://kiefermat.wordpress.com/2009/05/20/wcf-services-with-large-responds/#comments</comments>
		<pubDate>Wed, 20 May 2009 08:11:01 +0000</pubDate>
		<dc:creator>Matthias Kiefer</dc:creator>
				<category><![CDATA[Howtos]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Web Service]]></category>

		<guid isPermaLink="false">http://kiefermat.wordpress.com/?p=84</guid>
		<description><![CDATA[This post has been moved to http://kiefermat.com/2009/05/20/wcf-services-with-large-responds/. Please update your links. Thanks!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=84&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This post has been moved to <a href="http://kiefermat.com/2009/05/20/wcf-services-with-large-responds/">http://kiefermat.com/2009/05/20/wcf-services-with-large-responds/</a>. Please update your links. Thanks!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kiefermat.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kiefermat.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kiefermat.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kiefermat.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kiefermat.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kiefermat.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kiefermat.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kiefermat.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kiefermat.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kiefermat.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kiefermat.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kiefermat.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kiefermat.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kiefermat.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=84&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kiefermat.wordpress.com/2009/05/20/wcf-services-with-large-responds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0a5dfee5107e51db90b41eac83adefc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mkiefer</media:title>
		</media:content>
	</item>
		<item>
		<title>Understanding WCF Services in Silverlight 2</title>
		<link>http://kiefermat.wordpress.com/2009/05/19/understanding-wcf-services-in-silverlight-2/</link>
		<comments>http://kiefermat.wordpress.com/2009/05/19/understanding-wcf-services-in-silverlight-2/#comments</comments>
		<pubDate>Tue, 19 May 2009 08:18:46 +0000</pubDate>
		<dc:creator>Matthias Kiefer</dc:creator>
				<category><![CDATA[Howtos]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Web Service]]></category>

		<guid isPermaLink="false">http://kiefermat.wordpress.com/?p=82</guid>
		<description><![CDATA[NetFX Harmonics provides a in-depth and well written introduction on how to write and use WCF services in Silverlight applications: In this document, I&#8217;m going to talk about how to access WCF services using Silverlight 2 without magic. There will be no proxies, no generated code, no 3rd party utilities, and no disgusting &#8220;Add Service [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=82&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.netfxharmonics.com">NetFX Harmonics</a> provides a in-depth and well written introduction on how to write and use WCF services in Silverlight applications:</p>
<blockquote><p><em>In this document, I&#8217;m going to talk about how to access WCF services using Silverlight 2 without magic.  There will be no proxies, no generated code, no 3rd party utilities, and no disgusting &#8220;Add Service Reference&#8221; usage.  Just raw WCF.  This document will cover WCF connectivity in quite some depth.  We will talk about service setup, various WCF, SOA, and Silverlight paradigms, client setup,  some security issues, and a few supplemental features and techniques to help you aide and optimize service access.  You will learn about various WCF attributes, some interfaces, and a bunch of internals.  Though this document will be in depth, nothing will ever surpass the depth of MSDN.  So, for a more full discussion on any topic, see the WCF documentation on MSDN.</em></p>
<p><em>Even though we&#8217;re focusing on Silverlight, most of what will be explained will be discussed in a .NET context and then applied to Silverlight 2.  That is, instead of learning .NET WCF and Silverlight WCF, you will .NET WCF and how to vary this for Silverlight.  This comparative learning method should help you both remember and understand the concepts better.</em></p></blockquote>
<p>Read the full document <a href="http://www.netfxharmonics.com/2008/11/Understanding-WCF-Services-in-Silverlight-2">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kiefermat.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kiefermat.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kiefermat.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kiefermat.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kiefermat.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kiefermat.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kiefermat.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kiefermat.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kiefermat.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kiefermat.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kiefermat.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kiefermat.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kiefermat.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kiefermat.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=82&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kiefermat.wordpress.com/2009/05/19/understanding-wcf-services-in-silverlight-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0a5dfee5107e51db90b41eac83adefc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mkiefer</media:title>
		</media:content>
	</item>
		<item>
		<title>Dependency Injection using Unity</title>
		<link>http://kiefermat.wordpress.com/2009/05/11/dependency-injection-using-unity/</link>
		<comments>http://kiefermat.wordpress.com/2009/05/11/dependency-injection-using-unity/#comments</comments>
		<pubDate>Mon, 11 May 2009 07:00:40 +0000</pubDate>
		<dc:creator>Matthias Kiefer</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Dependency Injection]]></category>
		<category><![CDATA[Dependency Inversion]]></category>
		<category><![CDATA[Design Principle]]></category>
		<category><![CDATA[Loose Coupling]]></category>
		<category><![CDATA[Separation of Concerns]]></category>

		<guid isPermaLink="false">http://kiefermat.wordpress.com/?p=70</guid>
		<description><![CDATA[A nice high-level overview of  the technique of Dependency Injection using Microsofts Unity framework can be found in the May release of the MSDN magazine. These principles include maintaining separation of concerns, using abstraction to implement loose coupling between layers and components, implementing service location capabilities, and managing crosscutting concerns such as logging and security. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=70&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://msdn.microsoft.com/en-us/magazine/dd727513.aspx">A nice high-level overview</a> of  the technique of <a href="http://en.wikipedia.org/wiki/Dependency_Injection">Dependency Injection</a> using Microsofts <a href="http://msdn.microsoft.com/en-us/library/dd203101.aspx">Unity framework</a> can be found in the <a href="http://msdn.microsoft.com/en-us/magazine/dd727694.aspx">May release</a> of the MSDN magazine.</p>
<blockquote><p><em>These principles include maintaining separation of concerns, using abstraction to implement loose coupling between layers and components, implementing service location capabilities, and managing crosscutting concerns such as logging and security. While these may seem to be desirable but unrelated aims, one technique can help you to apply several design principles easily. The Dependency Inversion principle implies separation of concerns through abstractions rather than concrete implementations. In terms of design patterns, you can achieve this by applying the Inversion of Control (IoC) pattern and its related pattern, Dependency Injection (DI).</em></p>
<p><em>The theory is simple enough. Instead of specifying at design time the actual concrete type that each class or component will use to perform some activity or process, you arrange for these classes or components to retrieve the appropriate object from a container that you previously configured with type maps and registered types.</em></p></blockquote>
<p>Dependency Injection is great for achieving loose coupling of components. There are a lot of tools available that can be used for injecting dependencies. A list of such tools can be found on the <a href="http://en.wikipedia.org/wiki/Dependency_Injection">Wikipedia page</a> as well as on the <a href="http://www.clean-code-developer.de/wiki/CcdWerkzeugliste#InversionofControlDependencyInjection">Clean Code Developer Tools page</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kiefermat.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kiefermat.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kiefermat.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kiefermat.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kiefermat.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kiefermat.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kiefermat.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kiefermat.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kiefermat.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kiefermat.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kiefermat.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kiefermat.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kiefermat.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kiefermat.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=70&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kiefermat.wordpress.com/2009/05/11/dependency-injection-using-unity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0a5dfee5107e51db90b41eac83adefc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mkiefer</media:title>
		</media:content>
	</item>
		<item>
		<title>Threading in C#</title>
		<link>http://kiefermat.wordpress.com/2009/04/30/threading-in-csharp/</link>
		<comments>http://kiefermat.wordpress.com/2009/04/30/threading-in-csharp/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 16:30:04 +0000</pubDate>
		<dc:creator>Matthias Kiefer</dc:creator>
				<category><![CDATA[Howtos]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Multithreading]]></category>

		<guid isPermaLink="false">http://kiefermat.wordpress.com/?p=75</guid>
		<description><![CDATA[A comprehensive description of the threading mechanisms available in .NET as well as how to use them best can be found in the free E-Book &#8220;Threading in C#&#8221; by Joseph Albahari.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=75&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A comprehensive description of the threading mechanisms available in .NET as well as how to use them best can be found in the free E-Book <a href="http://www.albahari.com/threading/">&#8220;Threading in C#&#8221;</a> by Joseph Albahari.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kiefermat.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kiefermat.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kiefermat.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kiefermat.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kiefermat.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kiefermat.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kiefermat.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kiefermat.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kiefermat.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kiefermat.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kiefermat.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kiefermat.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kiefermat.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kiefermat.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kiefermat.wordpress.com&amp;blog=7106695&amp;post=75&amp;subd=kiefermat&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kiefermat.wordpress.com/2009/04/30/threading-in-csharp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0a5dfee5107e51db90b41eac83adefc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mkiefer</media:title>
		</media:content>
	</item>
	</channel>
</rss>
