<?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: Fetching Strategy NHibernate Implementation Available</title>
	<atom:link href="http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/</link>
	<description>Enterprise Development Expert &#38; SOA Specialist</description>
	<lastBuildDate>Sat, 11 Feb 2012 15:16:10 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-37301</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 19 Jun 2010 20:56:20 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-37301</guid>
		<description>Tom,

What I mean is also bypassing the object model that is mapped by your ORM in the case of queries, or setting up a custom object model that is used only for queries.</description>
		<content:encoded><![CDATA[<p>Tom,</p>
<p>What I mean is also bypassing the object model that is mapped by your ORM in the case of queries, or setting up a custom object model that is used only for queries.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-37300</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Fri, 18 Jun 2010 17:57:52 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-37300</guid>
		<description>Thanks for replying but sorry not quite sure what you mean on your last comment about the &quot;Even if you’re not using CQRS entirely, you can get a lot of benefits by circumventing your ORM for queries and working closer to SQL there.&quot;

Also in regards to “IShowLatestResults” (home page) and “IShowFixtures” are those roles you would make explicit? Do they sound sensible or would it become unmanageable as they get added for each page almost..</description>
		<content:encoded><![CDATA[<p>Thanks for replying but sorry not quite sure what you mean on your last comment about the &#8220;Even if you’re not using CQRS entirely, you can get a lot of benefits by circumventing your ORM for queries and working closer to SQL there.&#8221;</p>
<p>Also in regards to “IShowLatestResults” (home page) and “IShowFixtures” are those roles you would make explicit? Do they sound sensible or would it become unmanageable as they get added for each page almost..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-37299</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 18 Jun 2010 14:34:50 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-37299</guid>
		<description>Tom,

If you can use a container then you can resolve the IFetchingStrategy&lt;T&gt; with it. Your main issue would be trying implement other ORM features. Even if you&#039;re not using CQRS entirely, you can get a lot of benefits by circumventing your ORM for queries and working closer to SQL there.

Hope that helps.</description>
		<content:encoded><![CDATA[<p>Tom,</p>
<p>If you can use a container then you can resolve the IFetchingStrategy&lt;T&gt; with it. Your main issue would be trying implement other ORM features. Even if you&#8217;re not using CQRS entirely, you can get a lot of benefits by circumventing your ORM for queries and working closer to SQL there.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-37298</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Fri, 18 Jun 2010 14:10:52 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-37298</guid>
		<description>Sorry I just read that back just to clarify:

Home page... only shows fixtures
Dedicated page ..shows fixtures and gamesheets</description>
		<content:encoded><![CDATA[<p>Sorry I just read that back just to clarify:</p>
<p>Home page&#8230; only shows fixtures<br />
Dedicated page ..shows fixtures and gamesheets</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-37296</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Fri, 18 Jun 2010 14:08:43 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-37296</guid>
		<description>Also if not using CQRS, which is a bit overkill in my situation, what would you suggest for basic listing on a web page. My website is a hockey website and for example the home page shows Fixtures (matches) these have gamesheets about the fixture played, however I only want to show this on its dedicated page. I assume you would need to add something like &quot;IShowLatestResults&quot; (home page) and &quot;IShowFixtures&quot; on the aggregate Fixture.

I am keen to do this right, ive got to the stage of just wanting a simple solution that works is maintainable and most of all makes sense. Which I believe your solution does. Your InfoQ video about this subject when you said &quot;for god sake let me build a system&quot; is so true. Will be attending Skills Matter in London for the FAQ session. Do you have any content you will focus on? Or will it be all FAQ?</description>
		<content:encoded><![CDATA[<p>Also if not using CQRS, which is a bit overkill in my situation, what would you suggest for basic listing on a web page. My website is a hockey website and for example the home page shows Fixtures (matches) these have gamesheets about the fixture played, however I only want to show this on its dedicated page. I assume you would need to add something like &#8220;IShowLatestResults&#8221; (home page) and &#8220;IShowFixtures&#8221; on the aggregate Fixture.</p>
<p>I am keen to do this right, ive got to the stage of just wanting a simple solution that works is maintainable and most of all makes sense. Which I believe your solution does. Your InfoQ video about this subject when you said &#8220;for god sake let me build a system&#8221; is so true. Will be attending Skills Matter in London for the FAQ session. Do you have any content you will focus on? Or will it be all FAQ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-37294</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Fri, 18 Jun 2010 08:08:33 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-37294</guid>
		<description>Yes those are fine, something like Windsor or Unity would be fine. Its basically plain ADO.NET. So I assume I would need to build up the query dynamically (and have to convince the DBA that dynamic sql isnt always bad!)</description>
		<content:encoded><![CDATA[<p>Yes those are fine, something like Windsor or Unity would be fine. Its basically plain ADO.NET. So I assume I would need to build up the query dynamically (and have to convince the DBA that dynamic sql isnt always bad!)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-37293</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 18 Jun 2010 07:35:07 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-37293</guid>
		<description>Tom,

Are you allowed to use existing dependency injection technologies or do you have to implement those yourself as well?</description>
		<content:encoded><![CDATA[<p>Tom,</p>
<p>Are you allowed to use existing dependency injection technologies or do you have to implement those yourself as well?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-37292</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Thu, 17 Jun 2010 22:30:58 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-37292</guid>
		<description>Hi,

Very interested in your example. I have tried your sample code but unable to get it run (database and runtime issues). How would you pre pose to add this to a in-house ORM? As we are not allowed to use things like Hibernate. I would love to this example up and running I understand the concepts but waiting for it all to &quot;click&quot; so I can implement myself.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Very interested in your example. I have tried your sample code but unable to get it run (database and runtime issues). How would you pre pose to add this to a in-house ORM? As we are not allowed to use things like Hibernate. I would love to this example up and running I understand the concepts but waiting for it all to &#8220;click&#8221; so I can implement myself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stepping onto the Bus &#124; YOOT</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-36792</link>
		<dc:creator>Stepping onto the Bus &#124; YOOT</dc:creator>
		<pubDate>Mon, 12 Oct 2009 21:01:15 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-36792</guid>
		<description>[...] querying in a true DDD fashion is the notion of Fetching Strategy (read more about it here &amp; there). We need Fetching Strategies for a very simple [...]</description>
		<content:encoded><![CDATA[<p>[...] querying in a true DDD fashion is the notion of Fetching Strategy (read more about it here &amp; there). We need Fetching Strategies for a very simple [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Living in the Tech Avalanche Generation &#187; Entity Framework 4.0 and Fetching Strategies</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-36490</link>
		<dc:creator>Living in the Tech Avalanche Generation &#187; Entity Framework 4.0 and Fetching Strategies</dc:creator>
		<pubDate>Wed, 29 Jul 2009 10:13:17 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-36490</guid>
		<description>[...] of sorts. Udi has written extensively on this and developed a method for using fetching strategies with NHibernate and if you haven’t yet checked out what he’s had to say to date on the subject I suggest you [...]</description>
		<content:encoded><![CDATA[<p>[...] of sorts. Udi has written extensively on this and developed a method for using fetching strategies with NHibernate and if you haven’t yet checked out what he’s had to say to date on the subject I suggest you [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-36056</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 04 Mar 2009 13:30:43 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-36056</guid>
		<description>Chris - it&#039;s a part of his rhino tools. Get it here:

https://rhino-tools.svn.sourceforge.net/svnroot/rhino-tools/trunk</description>
		<content:encoded><![CDATA[<p>Chris &#8211; it&#8217;s a part of his rhino tools. Get it here:</p>
<p><a href="https://rhino-tools.svn.sourceforge.net/svnroot/rhino-tools/trunk" rel="nofollow">https://rhino-tools.svn.sourceforge.net/svnroot/rhino-tools/trunk</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Cyvas</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-36055</link>
		<dc:creator>Chris Cyvas</dc:creator>
		<pubDate>Wed, 04 Mar 2009 11:08:13 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-36055</guid>
		<description>Hi Udi,

You mention Ayende&#039;s &quot;repository bundles&quot; - can you be more specific?

Thanks,
Chris</description>
		<content:encoded><![CDATA[<p>Hi Udi,</p>
<p>You mention Ayende&#8217;s &#8220;repository bundles&#8221; &#8211; can you be more specific?</p>
<p>Thanks,<br />
Chris</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Living in the Tech Avalanche Generation &#187; Entity Framework, Repositories, Specifications and Fetching Strategies Part 9.0</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-36042</link>
		<dc:creator>Living in the Tech Avalanche Generation &#187; Entity Framework, Repositories, Specifications and Fetching Strategies Part 9.0</dc:creator>
		<pubDate>Mon, 23 Feb 2009 09:12:48 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-36042</guid>
		<description>[...] causing persistence and my favoured approach to this is a highly configurable an tunable one. Udi demonstrates this using NHibernate and Fetching [...]</description>
		<content:encoded><![CDATA[<p>[...] causing persistence and my favoured approach to this is a highly configurable an tunable one. Udi demonstrates this using NHibernate and Fetching [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-33306</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Thu, 02 Oct 2008 21:00:41 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-33306</guid>
		<description>Wadaa,

Ayende&#039;s new repository bundles this behavior into it directly. Use it :)</description>
		<content:encoded><![CDATA[<p>Wadaa,</p>
<p>Ayende&#8217;s new repository bundles this behavior into it directly. Use it <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: wadaa</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-33302</link>
		<dc:creator>wadaa</dc:creator>
		<pubDate>Thu, 02 Oct 2008 20:35:25 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-33302</guid>
		<description>how will this work in the new nhibernate 2.0 binaries, the Create method you created doesn&#039;t exist anymore. i&#039;m especially wondering how this works with the nhibernate.linq extension from ayende, how can you put the criteria in those queries (_query = unitOfWork.Session.Linq()).</description>
		<content:encoded><![CDATA[<p>how will this work in the new nhibernate 2.0 binaries, the Create method you created doesn&#8217;t exist anymore. i&#8217;m especially wondering how this works with the nhibernate.linq extension from ayende, how can you put the criteria in those queries (_query = unitOfWork.Session.Linq()).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Living in the Tech Avalanche Generation &#187; LINQ To SQL, Dynamic Querying &#38; Fetching Strategies (cont)</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-27306</link>
		<dc:creator>Living in the Tech Avalanche Generation &#187; LINQ To SQL, Dynamic Querying &#38; Fetching Strategies (cont)</dc:creator>
		<pubDate>Tue, 15 Jul 2008 05:49:02 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-27306</guid>
		<description>[...] to come back with an approach on enabling Eager Loading by implementing a Fetching strategy (ala Udi), that can be used with my Repository. Here&#8217;s the Fetching Strategy code (most of [...]</description>
		<content:encoded><![CDATA[<p>[...] to come back with an approach on enabling Eager Loading by implementing a Fetching strategy (ala Udi), that can be used with my Repository. Here&#8217;s the Fetching Strategy code (most of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: QCon London 2008 Recap</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-19511</link>
		<dc:creator>QCon London 2008 Recap</dc:creator>
		<pubDate>Thu, 20 Mar 2008 09:07:31 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-19511</guid>
		<description>[...] It leads to IFetchingStrategy&lt;T&gt; for improved database loading performance (also a year old - better DDD implementation and the NHibernate implementation). [...]</description>
		<content:encoded><![CDATA[<p>[...] It leads to IFetchingStrategy&lt;T&gt; for improved database loading performance (also a year old &#8211; better DDD implementation and the NHibernate implementation). [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Colin Jack</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-7811</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Thu, 04 Oct 2007 11:31:04 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-7811</guid>
		<description>Ok pasting in the example failed again :) Basically I think if you put in &quot;hibernate.hbm2ddl.auto&quot; as &quot;create&quot; it&#039;ll generate the schema for you (page 23 of NHibernate reference doc).</description>
		<content:encoded><![CDATA[<p>Ok pasting in the example failed again <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Basically I think if you put in &#8220;hibernate.hbm2ddl.auto&#8221; as &#8220;create&#8221; it&#8217;ll generate the schema for you (page 23 of NHibernate reference doc).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Colin Jack</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-7809</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Thu, 04 Oct 2007 11:29:45 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-7809</guid>
		<description>Na thats a valid point, its definitely configurable. Like I say the strategy approach and we may well try it out.

The bit I tried to put in about the create schema stuff got cut out but its basically this (replaced </description>
		<content:encoded><![CDATA[<p>Na thats a valid point, its definitely configurable. Like I say the strategy approach and we may well try it out.</p>
<p>The bit I tried to put in about the create schema stuff got cut out but its basically this (replaced</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: thesoftwaresimplist</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-7520</link>
		<dc:creator>thesoftwaresimplist</dc:creator>
		<pubDate>Fri, 28 Sep 2007 15:38:09 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-7520</guid>
		<description>The solution you describe sounds like it would end up in the same amount of code as mine. The main difference is that the fetching strategy is injected in my case, so you wouldn&#039;t have to change any code, just config files, to get it to work. This makes it quite easy to test the system with various combinations of fetching strategies and see which performs best.

I&#039;ll do a double-check on the technology aspects (DB Schema and unit tests).

Thanks Colin.</description>
		<content:encoded><![CDATA[<p>The solution you describe sounds like it would end up in the same amount of code as mine. The main difference is that the fetching strategy is injected in my case, so you wouldn&#8217;t have to change any code, just config files, to get it to work. This makes it quite easy to test the system with various combinations of fetching strategies and see which performs best.</p>
<p>I&#8217;ll do a double-check on the technology aspects (DB Schema and unit tests).</p>
<p>Thanks Colin.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Colin Jack</title>
		<link>http://www.udidahan.com/2007/09/16/fetching-strategy-nhibernate-implementation-available/comment-page-1/#comment-7092</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Fri, 21 Sep 2007 15:17:25 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/09/16/fetching-strategy-nhibernate-implementation-available/#comment-7092</guid>
		<description>The DB schema you&#039;ve provided doesn&#039;t seem to work but I added this line withing the  section to get it to auto create the database structure:

create

Anyway, having domain classes having to implement multiple interfaces, one for each use case, seems like it might become a bit of a drag. I don&#039;t mind interfaces but I hate anything that forces me to put interfaces onto the domain classes if I don&#039;t really feel they really improve the design.

I also don&#039;t really mind the service layer being dependent on the actual domain classes, I&#039;m unlikely to need to swap out one Order implementation for another and if I do the interface I derive from this approach might not suit. 

However like you say there are still the performance/responsibility issues. 

With these two issues in mind I&#039;m wondering if a solution isn&#039;t just to have a domain service layer and you could have a service class specifically setup to handle each case. Our project has just such a layer, for other reasons, so I would say that I&#039;d far rather that layer (which is on top of the domain but which clients can view as being part of the domain) took over the responsibility. For me that layer is the one that can talk to the repositories/fetching strategies to do the sort of coordination you describe.

I still like the fetching strategy approach though, but I&#039;d just let this domain service layer take the responsibility for choosing which strategy object to use.

I was also thinking, your example relies on people having the VSTS unit testing stuff which might hamper a lot of people who want to try it out.</description>
		<content:encoded><![CDATA[<p>The DB schema you&#8217;ve provided doesn&#8217;t seem to work but I added this line withing the  section to get it to auto create the database structure:</p>
<p>create</p>
<p>Anyway, having domain classes having to implement multiple interfaces, one for each use case, seems like it might become a bit of a drag. I don&#8217;t mind interfaces but I hate anything that forces me to put interfaces onto the domain classes if I don&#8217;t really feel they really improve the design.</p>
<p>I also don&#8217;t really mind the service layer being dependent on the actual domain classes, I&#8217;m unlikely to need to swap out one Order implementation for another and if I do the interface I derive from this approach might not suit. </p>
<p>However like you say there are still the performance/responsibility issues. </p>
<p>With these two issues in mind I&#8217;m wondering if a solution isn&#8217;t just to have a domain service layer and you could have a service class specifically setup to handle each case. Our project has just such a layer, for other reasons, so I would say that I&#8217;d far rather that layer (which is on top of the domain but which clients can view as being part of the domain) took over the responsibility. For me that layer is the one that can talk to the repositories/fetching strategies to do the sort of coordination you describe.</p>
<p>I still like the fetching strategy approach though, but I&#8217;d just let this domain service layer take the responsibility for choosing which strategy object to use.</p>
<p>I was also thinking, your example relies on people having the VSTS unit testing stuff which might hamper a lot of people who want to try it out.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

