<?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>Wed, 10 Mar 2010 11:06:57 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<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>
