<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: IRepository: one size does not fit all</title>
	<atom:link href="http://richarddingwall.name/2009/01/19/irepositoryt-one-size-does-not-fit-all/feed/" rel="self" type="application/rss+xml" />
	<link>http://richarddingwall.name/2009/01/19/irepositoryt-one-size-does-not-fit-all/</link>
	<description>The adventures of a young kiwi software developer in London</description>
	<lastBuildDate>Tue, 31 Jan 2012 19:56:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Nan Vantrease</title>
		<link>http://richarddingwall.name/2009/01/19/irepositoryt-one-size-does-not-fit-all/comment-page-1/#comment-10183</link>
		<dc:creator>Nan Vantrease</dc:creator>
		<pubDate>Sun, 20 Sep 2009 21:45:18 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=805#comment-10183</guid>
		<description>wei? nicht, wie Ihr Blog kam, muss ein Tippfehler gewesen sein,</description>
		<content:encoded><![CDATA[<p>wei? nicht, wie Ihr Blog kam, muss ein Tippfehler gewesen sein,</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian Horsdal</title>
		<link>http://richarddingwall.name/2009/01/19/irepositoryt-one-size-does-not-fit-all/comment-page-1/#comment-6630</link>
		<dc:creator>Christian Horsdal</dc:creator>
		<pubDate>Thu, 25 Jun 2009 09:58:41 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=805#comment-6630</guid>
		<description>Oops I got the link wrong. It&#039;s: http://horsdal.blogspot.com/2009/06/exploring-wpf-business-application_24.html</description>
		<content:encoded><![CDATA[<p>Oops I got the link wrong. It&#8217;s: <a href="http://horsdal.blogspot.com/2009/06/exploring-wpf-business-application_24.html" rel="nofollow">http://horsdal.blogspot.com/2009/06/exploring-wpf-business-application_24.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian Horsdal</title>
		<link>http://richarddingwall.name/2009/01/19/irepositoryt-one-size-does-not-fit-all/comment-page-1/#comment-6628</link>
		<dc:creator>Christian Horsdal</dc:creator>
		<pubDate>Thu, 25 Jun 2009 09:57:06 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=805#comment-6628</guid>
		<description>Very good post. I definitely like way you split the repository interface into little self-contained traits.
Combining your approach with a few extension methods creates traits that carry implementation with them. That implementation is easily reused between concrete repositories. I show this approach in a blog post at http://horsdal.blogspot.com/2009/06/exploring-wpf-business-application_24.html/ ...and hey, I think it turns out pretty nicely :-)</description>
		<content:encoded><![CDATA[<p>Very good post. I definitely like way you split the repository interface into little self-contained traits.<br />
Combining your approach with a few extension methods creates traits that carry implementation with them. That implementation is easily reused between concrete repositories. I show this approach in a blog post at <a href="http://horsdal.blogspot.com/2009/06/exploring-wpf-business-application_24.html/" rel="nofollow">http://horsdal.blogspot.com/2009/06/exploring-wpf-business-application_24.html/</a> &#8230;and hey, I think it turns out pretty nicely :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard</title>
		<link>http://richarddingwall.name/2009/01/19/irepositoryt-one-size-does-not-fit-all/comment-page-1/#comment-2986</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Sat, 11 Apr 2009 23:06:32 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=805#comment-2986</guid>
		<description>@Vasilio: my concrete repository is connected directly to NHibernate because the ORM easily allows this, and there is no additional logic in the repository (nor should there be, it&#039;s just a collection).

In more complex mapping scenarios you might use a DAO-backed repository - see this article for the difference http://warren.mayocchi.com/2006/07/27/repository-or-dao/.</description>
		<content:encoded><![CDATA[<p>@Vasilio: my concrete repository is connected directly to NHibernate because the ORM easily allows this, and there is no additional logic in the repository (nor should there be, it&#8217;s just a collection).</p>
<p>In more complex mapping scenarios you might use a DAO-backed repository &#8211; see this article for the difference <a href="http://warren.mayocchi.com/2006/07/27/repository-or-dao/" rel="nofollow">http://warren.mayocchi.com/2006/07/27/repository-or-dao/</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vasilio Ruzanni</title>
		<link>http://richarddingwall.name/2009/01/19/irepositoryt-one-size-does-not-fit-all/comment-page-1/#comment-2978</link>
		<dc:creator>Vasilio Ruzanni</dc:creator>
		<pubDate>Sat, 11 Apr 2009 16:41:50 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=805#comment-2978</guid>
		<description>2Richard

And also I&#039;d better tend to instead (of inheritance) delegate data-access functions to NHibernateRepository by using it inside ProjectRepository. 

That&#039;s just because I can&#039;t clearly see any reason to inherit from it. Is there one?</description>
		<content:encoded><![CDATA[<p>2Richard</p>
<p>And also I&#8217;d better tend to instead (of inheritance) delegate data-access functions to NHibernateRepository by using it inside ProjectRepository. </p>
<p>That&#8217;s just because I can&#8217;t clearly see any reason to inherit from it. Is there one?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vasilio Ruzanni</title>
		<link>http://richarddingwall.name/2009/01/19/irepositoryt-one-size-does-not-fit-all/comment-page-1/#comment-2977</link>
		<dc:creator>Vasilio Ruzanni</dc:creator>
		<pubDate>Sat, 11 Apr 2009 16:31:11 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=805#comment-2977</guid>
		<description>It seems like we can almost clearly separate the concepts of &quot;Domain Repositories&quot; (and Domain Repositories Traits) and &quot;Data Access Repositories&quot;.

Should we?</description>
		<content:encoded><![CDATA[<p>It seems like we can almost clearly separate the concepts of &#8220;Domain Repositories&#8221; (and Domain Repositories Traits) and &#8220;Data Access Repositories&#8221;.</p>
<p>Should we?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt Freeman</title>
		<link>http://richarddingwall.name/2009/01/19/irepositoryt-one-size-does-not-fit-all/comment-page-1/#comment-1913</link>
		<dc:creator>Matt Freeman</dc:creator>
		<pubDate>Tue, 20 Jan 2009 21:48:00 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=805#comment-1913</guid>
		<description>I&#039;m definitely leaning towards a generic DAO style inner repository, and concrete implementation of a domain repository containing this.

Part of the domain would be IPersonRepository exposing clear methods like GetPersonByFirstName(string firstName) etc... This would be implemented by a concrete repository that lives outside your domain that contains a nested concrete generic DAO style repository exposing Load FindAll etc...</description>
		<content:encoded><![CDATA[<p>I&#8217;m definitely leaning towards a generic DAO style inner repository, and concrete implementation of a domain repository containing this.</p>
<p>Part of the domain would be IPersonRepository exposing clear methods like GetPersonByFirstName(string firstName) etc&#8230; This would be implemented by a concrete repository that lives outside your domain that contains a nested concrete generic DAO style repository exposing Load FindAll etc&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Jackman</title>
		<link>http://richarddingwall.name/2009/01/19/irepositoryt-one-size-does-not-fit-all/comment-page-1/#comment-1906</link>
		<dc:creator>Andrew Jackman</dc:creator>
		<pubDate>Mon, 19 Jan 2009 09:49:31 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=805#comment-1906</guid>
		<description>This is called the &quot;favour composition over inheritance&quot; approach. See http://www.artima.com/lejava/articles/designprinciples4.html and http://www.objectmentor.com/resources/articles/inheritanceVsDelegation.pdf.</description>
		<content:encoded><![CDATA[<p>This is called the &#8220;favour composition over inheritance&#8221; approach. See <a href="http://www.artima.com/lejava/articles/designprinciples4.html" rel="nofollow">http://www.artima.com/lejava/articles/designprinciples4.html</a> and <a href="http://www.objectmentor.com/resources/articles/inheritanceVsDelegation.pdf" rel="nofollow">http://www.objectmentor.com/resources/articles/inheritanceVsDelegation.pdf</a>.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

