<?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: Experimenting With Fluent Interfaces in the Domain</title>
	<atom:link href="http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/</link>
	<description></description>
	<lastBuildDate>Fri, 12 Mar 2010 14:11:39 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: I&#8217;ve learnt so much from&#8230; &#171; Cav&#8217;s Weblog</title>
		<link>http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/comment-page-1/#comment-45648</link>
		<dc:creator>I&#8217;ve learnt so much from&#8230; &#171; Cav&#8217;s Weblog</dc:creator>
		<pubDate>Sun, 26 Apr 2009 10:36:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/#comment-45648</guid>
		<description>[...] it says quite a lot that he’s made it into my top list of blog-authors. His recent posts on fluent interfaces are typical of the inspirational pots he [...]</description>
		<content:encoded><![CDATA[<p>[...] it says quite a lot that he’s made it into my top list of blog-authors. His recent posts on fluent interfaces are typical of the inspirational pots he [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Giovanni Bassi</title>
		<link>http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/comment-page-1/#comment-45551</link>
		<dc:creator>Giovanni Bassi</dc:creator>
		<pubDate>Mon, 20 Apr 2009 21:33:41 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/#comment-45551</guid>
		<description>Just beautiful.</description>
		<content:encoded><![CDATA[<p>Just beautiful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan Van Ryswyck</title>
		<link>http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/comment-page-1/#comment-45202</link>
		<dc:creator>Jan Van Ryswyck</dc:creator>
		<pubDate>Tue, 07 Apr 2009 05:36:03 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/#comment-45202</guid>
		<description>@CraigCav: I completely agree. As for the ItemBuilder being passed to the aggregate root: I&#039;ve reused some of the code from a sample application I&#039;m building, but needed to remove some other code that wasn&#039;t of any use for the point I was trying to make. That&#039;s probably what&#039;s missing here :-)</description>
		<content:encoded><![CDATA[<p>@CraigCav: I completely agree. As for the ItemBuilder being passed to the aggregate root: I&#8217;ve reused some of the code from a sample application I&#8217;m building, but needed to remove some other code that wasn&#8217;t of any use for the point I was trying to make. That&#8217;s probably what&#8217;s missing here <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CraigCav</title>
		<link>http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/comment-page-1/#comment-45192</link>
		<dc:creator>CraigCav</dc:creator>
		<pubDate>Mon, 06 Apr 2009 15:51:35 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/#comment-45192</guid>
		<description>@Jan: Firstly, I want to say I really enjoy reading your blog - your posts are rather inspiring and are very well written.

In terms of the approach taken here, I don&#039;t see any issue with having an application service use a DSL that sits above your domain, and would argue that maintainability of the code would be improved rather than decreased, due to the reduced coupling of domain objects and more readable code in your application services. In addition, since the fluent interface for this lives in extension methods sitting above the domain model, I would suggest that the domain model itself is simpler if anything.

I am wondering however why an ItemBuilder is being passed into the Aggregate Root, rather than an Item itself?  Assuming that an uncategorized item is valid in the domain, or that an item can belong to multiple categories, I would  expect the domain to have CategorizeItem method taking an Item as a parameter, rather than a builder.

Am I missing something here?</description>
		<content:encoded><![CDATA[<p>@Jan: Firstly, I want to say I really enjoy reading your blog &#8211; your posts are rather inspiring and are very well written.</p>
<p>In terms of the approach taken here, I don&#8217;t see any issue with having an application service use a DSL that sits above your domain, and would argue that maintainability of the code would be improved rather than decreased, due to the reduced coupling of domain objects and more readable code in your application services. In addition, since the fluent interface for this lives in extension methods sitting above the domain model, I would suggest that the domain model itself is simpler if anything.</p>
<p>I am wondering however why an ItemBuilder is being passed into the Aggregate Root, rather than an Item itself?  Assuming that an uncategorized item is valid in the domain, or that an item can belong to multiple categories, I would  expect the domain to have CategorizeItem method taking an Item as a parameter, rather than a builder.</p>
<p>Am I missing something here?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ryzam</title>
		<link>http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/comment-page-1/#comment-45077</link>
		<dc:creator>ryzam</dc:creator>
		<pubDate>Wed, 01 Apr 2009 04:19:44 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/#comment-45077</guid>
		<description>for me, i much prefer to have DSL within my infrastructure layer and service and not in domain itself. For me because you expose infrastructure layer/service to client then it&#039;s  the good place for Fluent Interface. I agree with  Valeriu Caraulean we should keep our domain simple. Simplicity of domain model should can cover the complexity of business process</description>
		<content:encoded><![CDATA[<p>for me, i much prefer to have DSL within my infrastructure layer and service and not in domain itself. For me because you expose infrastructure layer/service to client then it&#8217;s  the good place for Fluent Interface. I agree with  Valeriu Caraulean we should keep our domain simple. Simplicity of domain model should can cover the complexity of business process</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan Van Ryswyck</title>
		<link>http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/comment-page-1/#comment-45059</link>
		<dc:creator>Jan Van Ryswyck</dc:creator>
		<pubDate>Tue, 31 Mar 2009 05:26:06 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/#comment-45059</guid>
		<description>@BjartN: I have to disagree on the learning part. When I&#039;m developing a WCF service then every other developer needs to have some notion about WCF in order to maintain it and make changes later on. Same goes for fluent interfaces or any other architecture/technology.

Business people are never going to read code. But suppose they would, is a fluent interface making the code more readable then, regardless whether you&#039;re a developer or a business person? Why not making that minor effort then, to make your code more readible?</description>
		<content:encoded><![CDATA[<p>@BjartN: I have to disagree on the learning part. When I&#8217;m developing a WCF service then every other developer needs to have some notion about WCF in order to maintain it and make changes later on. Same goes for fluent interfaces or any other architecture/technology.</p>
<p>Business people are never going to read code. But suppose they would, is a fluent interface making the code more readable then, regardless whether you&#8217;re a developer or a business person? Why not making that minor effort then, to make your code more readible?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BjartN</title>
		<link>http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/comment-page-1/#comment-45022</link>
		<dc:creator>BjartN</dc:creator>
		<pubDate>Mon, 30 Mar 2009 06:48:51 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/#comment-45022</guid>
		<description>I would agree with Valeriu Caraulean here.

This is about the maintainability of the code. Here you are expecting that everyone that is ever going to edit this code is comfortable with fluent interfaces. Not only that, they need to be comfortable with changing the DSL if the requirements change.

Why not keep it simple ? It&#039;s programmers that are going to read this code, not business people ;)

Well, that&#039;s my opinion anyway :)</description>
		<content:encoded><![CDATA[<p>I would agree with Valeriu Caraulean here.</p>
<p>This is about the maintainability of the code. Here you are expecting that everyone that is ever going to edit this code is comfortable with fluent interfaces. Not only that, they need to be comfortable with changing the DSL if the requirements change.</p>
<p>Why not keep it simple ? It&#8217;s programmers that are going to read this code, not business people <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Well, that&#8217;s my opinion anyway <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan Van Ryswyck</title>
		<link>http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/comment-page-1/#comment-45008</link>
		<dc:creator>Jan Van Ryswyck</dc:creator>
		<pubDate>Sun, 29 Mar 2009 19:20:38 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/#comment-45008</guid>
		<description>@Valeriu: Isn&#039;t that what a Domain Specific Language comes from. At the KaizenConf in Austin last year I overheard Dave Laribee talking about DSL&#039;s  layered on top a domain model. I agree on the complexity, but if it reduces coupling to the domain entities and therefore increases maintainability, why not?</description>
		<content:encoded><![CDATA[<p>@Valeriu: Isn&#8217;t that what a Domain Specific Language comes from. At the KaizenConf in Austin last year I overheard Dave Laribee talking about DSL&#8217;s  layered on top a domain model. I agree on the complexity, but if it reduces coupling to the domain entities and therefore increases maintainability, why not?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dew Drop &#8211; March 29, 2009 &#124; Alvin Ashcraft's Morning Dew</title>
		<link>http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/comment-page-1/#comment-45006</link>
		<dc:creator>Dew Drop &#8211; March 29, 2009 &#124; Alvin Ashcraft's Morning Dew</dc:creator>
		<pubDate>Sun, 29 Mar 2009 19:04:52 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/#comment-45006</guid>
		<description>[...] Experimenting With Fluent Interfaces in the Domain (Jan Van Ryswyck) [...]</description>
		<content:encoded><![CDATA[<p>[...] Experimenting With Fluent Interfaces in the Domain (Jan Van Ryswyck) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Valeriu Caraulean</title>
		<link>http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/comment-page-1/#comment-44992</link>
		<dc:creator>Valeriu Caraulean</dc:creator>
		<pubDate>Sun, 29 Mar 2009 12:06:56 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2009/03/28/experimenting-with-fluent-interfaces-in-the-domain/#comment-44992</guid>
		<description>Way too complex for the place that should be kept simple and refactorable. Fluency is welcome in published interfaces, framework-like things. Taking it into domain, or even domain services - i&#039;m not sure.</description>
		<content:encoded><![CDATA[<p>Way too complex for the place that should be kept simple and refactorable. Fluency is welcome in published interfaces, framework-like things. Taking it into domain, or even domain services &#8211; i&#8217;m not sure.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
