<?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: Silverlight Data Pager, fake ItemsCount and stored procedures</title>
	<atom:link href="http://blog.vuscode.com/malovicn/archive/2012/01/10/silverlight-data-pager-fake-itemscount-and-stored-procedures.aspx/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.vuscode.com/malovicn/archive/2012/01/10/silverlight-data-pager-fake-itemscount-and-stored-procedures.aspx</link>
	<description>Coding dreams since 1998!</description>
	<lastBuildDate>Thu, 17 Jan 2013 18:15:43 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>By: Cecil R. Woods</title>
		<link>http://blog.vuscode.com/malovicn/archive/2012/01/10/silverlight-data-pager-fake-itemscount-and-stored-procedures.aspx#comment-492</link>
		<dc:creator>Cecil R. Woods</dc:creator>
		<pubDate>Thu, 17 Jan 2013 18:15:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vuscode.com/?p=2511#comment-492</guid>
		<description><![CDATA[The purpose of a DAO layer is that your application not have any notion of what your persistence mechanism is, or even that things are persisted. It&#039;s a layer of abstraction that gives you flexibility down the road.I&#039;ve relied on this twice in my career. Once was moving a component using Oracle to use a completely different schema (but same object model) in PostgreSQL, and the second was moving from an LDAP directory to an Oracle database (once again, keeping the object model.)Without the DAO abstraction, these projects would have needed substantial work, with a lot of testing. With the DAO pattern, we just wrote new DAO interface implementations, changed the DAOFactory settings, and the app sitting on top of it just plain worked. We didn&#039;t need to test anything other than the queries, because that&#039;s all that changed.If you have a frozen platform and simple ORM using a tool is fulfilling your need, then DAOs might be overkill. But if you ever need to make some major changes, any time spent creating a &quot;redundant&quot; DAO layer will be bought back four or five times.Oh and as for performance, trust me when I say that having to call a DAO that calls an ORM method is not going to make an appreciable difference in your response time when compared to calling the ORM method directly. If you were that worried about performance, you might optimize the SQL yourself, instead of using a mapping tool.]]></description>
		<content:encoded><![CDATA[<p>The purpose of a DAO layer is that your application not have any notion of what your persistence mechanism is, or even that things are persisted. It&#8217;s a layer of abstraction that gives you flexibility down the road.I&#8217;ve relied on this twice in my career. Once was moving a component using Oracle to use a completely different schema (but same object model) in PostgreSQL, and the second was moving from an LDAP directory to an Oracle database (once again, keeping the object model.)Without the DAO abstraction, these projects would have needed substantial work, with a lot of testing. With the DAO pattern, we just wrote new DAO interface implementations, changed the DAOFactory settings, and the app sitting on top of it just plain worked. We didn&#8217;t need to test anything other than the queries, because that&#8217;s all that changed.If you have a frozen platform and simple ORM using a tool is fulfilling your need, then DAOs might be overkill. But if you ever need to make some major changes, any time spent creating a &#8220;redundant&#8221; DAO layer will be bought back four or five times.Oh and as for performance, trust me when I say that having to call a DAO that calls an ORM method is not going to make an appreciable difference in your response time when compared to calling the ORM method directly. If you were that worried about performance, you might optimize the SQL yourself, instead of using a mapping tool.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
