<?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"
	>
<channel>
	<title>Comments on: The Smart DTO</title>
	<atom:link href="http://laribee.com/blog/2007/06/21/the-smart-dto/feed/" rel="self" type="application/rss+xml" />
	<link>http://laribee.com/blog/2007/06/21/the-smart-dto/</link>
	<description>Coaching, Process, Design, Speculation</description>
	<pubDate>Sat, 22 Nov 2008 07:12:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: Javier Lozano</title>
		<link>http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-19674</link>
		<dc:creator>Javier Lozano</dc:creator>
		<pubDate>Sat, 07 Jul 2007 18:53:20 +0000</pubDate>
		<guid isPermaLink="false">http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-19674</guid>
		<description>@RealProxy: http://msdn2.microsoft.com/en-us/library/system.runtime.remoting.proxies.realproxy.aspx

It's a nice abstraction you attach to your MarshalByRef objects to perform actions on them as they're about to be sent through the wire.  However, I don't know how you can use this within WCF.</description>
		<content:encoded><![CDATA[<p>@RealProxy: <a href="http://msdn2.microsoft.com/en-us/library/system.runtime.remoting.proxies.realproxy.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/system.runtime.remoting.proxies.realproxy.aspx</a></p>
<p>It&#8217;s a nice abstraction you attach to your MarshalByRef objects to perform actions on them as they&#8217;re about to be sent through the wire.  However, I don&#8217;t know how you can use this within WCF.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-17470</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Mon, 25 Jun 2007 12:27:49 +0000</pubDate>
		<guid isPermaLink="false">http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-17470</guid>
		<description>@Udi - I'm coming from the perspective of using them for a single Application. I agree with your viewpoint if the service boundary is the application boundary (the service is the app, etc.) Our application has a very "Entity Oriented" kind of metaphor: pick a claim or a set of claims and work through some lifecycle actions/commands.

@Mattheu - RealProxy? I've looked at doing injecting this behavior (INotifyPropertyChanged and external declarative validation ala the Validation Block) with Castle's DynamicProxy library. Is that along the same lines?</description>
		<content:encoded><![CDATA[<p>@Udi - I&#8217;m coming from the perspective of using them for a single Application. I agree with your viewpoint if the service boundary is the application boundary (the service is the app, etc.) Our application has a very &#8220;Entity Oriented&#8221; kind of metaphor: pick a claim or a set of claims and work through some lifecycle actions/commands.</p>
<p>@Mattheu - RealProxy? I&#8217;ve looked at doing injecting this behavior (INotifyPropertyChanged and external declarative validation ala the Validation Block) with Castle&#8217;s DynamicProxy library. Is that along the same lines?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthieu MEZIL</title>
		<link>http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-17389</link>
		<dc:creator>Matthieu MEZIL</dc:creator>
		<pubDate>Sun, 24 Jun 2007 21:54:51 +0000</pubDate>
		<guid isPermaLink="false">http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-17389</guid>
		<description>You can factorize all the OnPropertyChanged with a RealProxy.</description>
		<content:encoded><![CDATA[<p>You can factorize all the OnPropertyChanged with a RealProxy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Udi Dahan</title>
		<link>http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-17277</link>
		<dc:creator>Udi Dahan</dc:creator>
		<pubDate>Sun, 24 Jun 2007 06:13:15 +0000</pubDate>
		<guid isPermaLink="false">http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-17277</guid>
		<description>When defining DTOs for messages as I describe here (http://udidahan.weblogs.us/2007/03/31/tasks-messages-transactions-%e2%80%93-the-holy-trinity/) I don't think that you'll find a very good reason to databind anything to them. For instance - CustomerMovedMessage.

There may be some DTOs that do represent things that are shown to the user, but their design is more dictated by the messages that contain them making them less relevant for users to interact with directly.

In these cases, which I submit are a significant portion of our DTOs, using the SmartDTO base class does not appear to add value.

Other than that, me likes :)</description>
		<content:encoded><![CDATA[<p>When defining DTOs for messages as I describe here (http://udidahan.weblogs.us/2007/03/31/tasks-messages-transactions-%e2%80%93-the-holy-trinity/) I don&#8217;t think that you&#8217;ll find a very good reason to databind anything to them. For instance - CustomerMovedMessage.</p>
<p>There may be some DTOs that do represent things that are shown to the user, but their design is more dictated by the messages that contain them making them less relevant for users to interact with directly.</p>
<p>In these cases, which I submit are a significant portion of our DTOs, using the SmartDTO base class does not appear to add value.</p>
<p>Other than that, me likes :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-16999</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Fri, 22 Jun 2007 15:49:28 +0000</pubDate>
		<guid isPermaLink="false">http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-16999</guid>
		<description>@Evan - Thanks! I wrote a very, very simple one that takes the format (top part) and produces the output (bottom part). I'm kind of debating how to integrate that into the IDE so it builds (right now it's a command line app). Ideas?

@Javier - No logic in the DTO. The validation is simply declarative and the logic lives in a commonly distributed assembly. The DTO is read in Good points. Clarifying: I use my SmartDTO only where I own end to end (e.g. applications that need to get across a firewall). You would need to have [DataContract] on each implementation too; it doesn't inherit does it?</description>
		<content:encoded><![CDATA[<p>@Evan - Thanks! I wrote a very, very simple one that takes the format (top part) and produces the output (bottom part). I&#8217;m kind of debating how to integrate that into the IDE so it builds (right now it&#8217;s a command line app). Ideas?</p>
<p>@Javier - No logic in the DTO. The validation is simply declarative and the logic lives in a commonly distributed assembly. The DTO is read in Good points. Clarifying: I use my SmartDTO only where I own end to end (e.g. applications that need to get across a firewall). You would need to have [DataContract] on each implementation too; it doesn&#8217;t inherit does it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Javier Lozano</title>
		<link>http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-16921</link>
		<dc:creator>Javier Lozano</dc:creator>
		<pubDate>Fri, 22 Jun 2007 03:47:29 +0000</pubDate>
		<guid isPermaLink="false">http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-16921</guid>
		<description>Pretty nice post, David.  Here's one thing if your DTO is adorned with WCF's DataContractAttribute class, and since all WCF proxies exchange contracts not types, how will you persist the "logic" out of your SmartDTO base-class?

This will work great if you actually pass the type (and all related info) across the wire (this actually works really well with COM+/Enterprise Services).  But when you have to create a proxy and corresponding message classes, that "intent" is removed.</description>
		<content:encoded><![CDATA[<p>Pretty nice post, David.  Here&#8217;s one thing if your DTO is adorned with WCF&#8217;s DataContractAttribute class, and since all WCF proxies exchange contracts not types, how will you persist the &#8220;logic&#8221; out of your SmartDTO base-class?</p>
<p>This will work great if you actually pass the type (and all related info) across the wire (this actually works really well with COM+/Enterprise Services).  But when you have to create a proxy and corresponding message classes, that &#8220;intent&#8221; is removed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evan</title>
		<link>http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-16902</link>
		<dc:creator>Evan</dc:creator>
		<pubDate>Fri, 22 Jun 2007 00:59:51 +0000</pubDate>
		<guid isPermaLink="false">http://laribee.com/blog/2007/06/21/the-smart-dto/#comment-16902</guid>
		<description>awesome post!  I especially like the idea of having a DSL and using the attributes for validation.</description>
		<content:encoded><![CDATA[<p>awesome post!  I especially like the idea of having a DSL and using the attributes for validation.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
