<?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: Just Say No to Manual CRUD</title>
	<atom:link href="http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/</link>
	<description>A Grande, Triple Shot, Non-Fat Core Dump by Russell Ball</description>
	<lastBuildDate>Thu, 11 Mar 2010 09:47:24 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: A Year in the Life of CaffeinatedCoder: Part 1 &#124; Caffeinated Coder</title>
		<link>http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/comment-page-1/#comment-1945</link>
		<dc:creator>A Year in the Life of CaffeinatedCoder: Part 1 &#124; Caffeinated Coder</dc:creator>
		<pubDate>Wed, 07 Jan 2009 07:29:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=310#comment-1945</guid>
		<description>[...] June: SQL Is for the Birds: We finally take the ORM plunge at work and decide to use Castle&#8217;s Active Record as a replacement for our custom data access layer. I manage to get a good month of development time in before the project gets temporarily shelved to work on some legacy projects that took a higher priority. It was sad to have to return to writing raw SQL again, but the experience was positive enough to convince me to that ORM&#8217;s have progressed too far to still be spending time on doing manual CRUD. [...]</description>
		<content:encoded><![CDATA[<p>[...] June: SQL Is for the Birds: We finally take the ORM plunge at work and decide to use Castle&#8217;s Active Record as a replacement for our custom data access layer. I manage to get a good month of development time in before the project gets temporarily shelved to work on some legacy projects that took a higher priority. It was sad to have to return to writing raw SQL again, but the experience was positive enough to convince me to that ORM&#8217;s have progressed too far to still be spending time on doing manual CRUD. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ezone IntraBlog</title>
		<link>http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/comment-page-1/#comment-1072</link>
		<dc:creator>Ezone IntraBlog</dc:creator>
		<pubDate>Wed, 18 Jun 2008 10:54:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=310#comment-1072</guid>
		<description>&lt;strong&gt; Just Say No to Manual CRUD...&lt;/strong&gt;

...</description>
		<content:encoded><![CDATA[<p><strong> Just Say No to Manual CRUD&#8230;</strong></p>
<p>&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fervent Coder</title>
		<link>http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/comment-page-1/#comment-1037</link>
		<dc:creator>Fervent Coder</dc:creator>
		<pubDate>Wed, 11 Jun 2008 01:49:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=310#comment-1037</guid>
		<description>@Joe - Fair enough. :D</description>
		<content:encoded><![CDATA[<p>@Joe &#8211; Fair enough. <img src='http://www.caffeinatedcoder.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe</title>
		<link>http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/comment-page-1/#comment-1035</link>
		<dc:creator>Joe</dc:creator>
		<pubDate>Mon, 09 Jun 2008 16:22:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=310#comment-1035</guid>
		<description>@FerventCoder - &quot;So the question comes down to what is more secure?&quot;
No it doesn&#039;t, at least not for me.
Forget I mentioned security. There are thousands of smart developers who can argue both sides of that fence. 
Since I am interested in this movement by business application developers away from sprocs, I am going to make an effort to learn more about the security implications. This obviously is not the forum for me to do so.

There seems to always be things like this that come down the pipe and often get treated as a &quot;must&quot; only to fade or be the hallmark of hacky developers - see databinding.  I compare this to nUnit. When I first heard about it I downloaded it, wired it up, played with it for a day and when done....told all my developers to get it and switch our testing methodology to be inline with this tool.  nHibernate had no such impression. In a year or so I bet I try again to see if anything has changed about the technoogy or me that makes it become a must for me.
-Joe</description>
		<content:encoded><![CDATA[<p>@FerventCoder &#8211; &#8220;So the question comes down to what is more secure?&#8221;<br />
No it doesn&#8217;t, at least not for me.<br />
Forget I mentioned security. There are thousands of smart developers who can argue both sides of that fence.<br />
Since I am interested in this movement by business application developers away from sprocs, I am going to make an effort to learn more about the security implications. This obviously is not the forum for me to do so.</p>
<p>There seems to always be things like this that come down the pipe and often get treated as a &#8220;must&#8221; only to fade or be the hallmark of hacky developers &#8211; see databinding.  I compare this to nUnit. When I first heard about it I downloaded it, wired it up, played with it for a day and when done&#8230;.told all my developers to get it and switch our testing methodology to be inline with this tool.  nHibernate had no such impression. In a year or so I bet I try again to see if anything has changed about the technoogy or me that makes it become a must for me.<br />
-Joe</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fervent Coder</title>
		<link>http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/comment-page-1/#comment-1034</link>
		<dc:creator>Fervent Coder</dc:creator>
		<pubDate>Sat, 07 Jun 2008 05:06:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=310#comment-1034</guid>
		<description>Darn double negatives... and an extra &quot;a&quot; to boot. Amending comment...

With that example, I think you can figure out why I don’t believe sprocs are a good security model at all for databases.</description>
		<content:encoded><![CDATA[<p>Darn double negatives&#8230; and an extra &#8220;a&#8221; to boot. Amending comment&#8230;</p>
<p>With that example, I think you can figure out why I don’t believe sprocs are a good security model at all for databases.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fervent Coder</title>
		<link>http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/comment-page-1/#comment-1033</link>
		<dc:creator>Fervent Coder</dc:creator>
		<pubDate>Sat, 07 Jun 2008 04:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=310#comment-1033</guid>
		<description>@Joe - So the question comes down to what is more secure, a Sproc or a parameterized query? Some say they are equivalent. I say a parameterized query is because you manage your permissions at the object level (tables, columns, etc).  I will get into that in a moment.

I would almost want to question what standards the 3rd party security auditors were using when they mandated Sprocs for you.  As far as permissions go, with MSSQL Server 2005, you can manage security down to column access in tables.  That means you could manage security down to the column level should you want to go down that far. My preference is a the table level unless there is a good reason to be more secure.  You give up that security the minute you grant exec on sproc (unless you specifically use deny permission to ensure certain things don&#039;t happen).

I do have an extremely good question for your 3rd party auditors.  What permissions do you get when you grant exec on a stored proc? Anything you want that Sproc to do.  We use naming conventions like usp_name_Select, usp_name_Update, etc, to help understand what the sproc is doing.  What guarantee do you have that a particular sproc is doing nothing more than a select and not updating or deleting rows?  Nothing once you grant that exec. Just trust.

Recently we had something happen that I am not at liberty to discuss, but if you let your imagination run wild, you can think of some possible scenarios. 

With that example, I think you can figure out why I don&#039;t believe sprocs are not a a good security model at all for databases.

Also, the cached query plan is not an argument since MS SQL Server 2000 made the difference in performance negligible (sp?).</description>
		<content:encoded><![CDATA[<p>@Joe &#8211; So the question comes down to what is more secure, a Sproc or a parameterized query? Some say they are equivalent. I say a parameterized query is because you manage your permissions at the object level (tables, columns, etc).  I will get into that in a moment.</p>
<p>I would almost want to question what standards the 3rd party security auditors were using when they mandated Sprocs for you.  As far as permissions go, with MSSQL Server 2005, you can manage security down to column access in tables.  That means you could manage security down to the column level should you want to go down that far. My preference is a the table level unless there is a good reason to be more secure.  You give up that security the minute you grant exec on sproc (unless you specifically use deny permission to ensure certain things don&#8217;t happen).</p>
<p>I do have an extremely good question for your 3rd party auditors.  What permissions do you get when you grant exec on a stored proc? Anything you want that Sproc to do.  We use naming conventions like usp_name_Select, usp_name_Update, etc, to help understand what the sproc is doing.  What guarantee do you have that a particular sproc is doing nothing more than a select and not updating or deleting rows?  Nothing once you grant that exec. Just trust.</p>
<p>Recently we had something happen that I am not at liberty to discuss, but if you let your imagination run wild, you can think of some possible scenarios. </p>
<p>With that example, I think you can figure out why I don&#8217;t believe sprocs are not a a good security model at all for databases.</p>
<p>Also, the cached query plan is not an argument since MS SQL Server 2000 made the difference in performance negligible (sp?).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Code Heaven</title>
		<link>http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/comment-page-1/#comment-1032</link>
		<dc:creator>Code Heaven</dc:creator>
		<pubDate>Sat, 07 Jun 2008 02:35:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=310#comment-1032</guid>
		<description>&lt;strong&gt;CodeHeaven&#039;s Required Reading - June 6, 2008...&lt;/strong&gt;

These are all blog posts I flagged as being particularly interesting, but ones where I may not have anything...</description>
		<content:encoded><![CDATA[<p><strong>CodeHeaven&#8217;s Required Reading &#8211; June 6, 2008&#8230;</strong></p>
<p>These are all blog posts I flagged as being particularly interesting, but ones where I may not have anything&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe</title>
		<link>http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/comment-page-1/#comment-1031</link>
		<dc:creator>Joe</dc:creator>
		<pubDate>Fri, 06 Jun 2008 21:04:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=310#comment-1031</guid>
		<description>I have yet to jump on the no-stored-proc-gotta-have-ORM bandwagon.
I downloaded nHibernate and played with it for a day. I hooked up a simple table to a simple object and then shrugged my shoulders and never looked back.
I have no great data translation pains and two 3rd-party security audits specified that we use stored procedures. Not sure how we would manage security for inserts, deletes and updates via views anyway.

The pain I do have though is in regards to user interfaces which I hate to write and business objects that I hate to corrupt with CRUD methods when that is completely separate from business methods.

Would appreciate your feedback.
-Joe</description>
		<content:encoded><![CDATA[<p>I have yet to jump on the no-stored-proc-gotta-have-ORM bandwagon.<br />
I downloaded nHibernate and played with it for a day. I hooked up a simple table to a simple object and then shrugged my shoulders and never looked back.<br />
I have no great data translation pains and two 3rd-party security audits specified that we use stored procedures. Not sure how we would manage security for inserts, deletes and updates via views anyway.</p>
<p>The pain I do have though is in regards to user interfaces which I hate to write and business objects that I hate to corrupt with CRUD methods when that is completely separate from business methods.</p>
<p>Would appreciate your feedback.<br />
-Joe</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robz</title>
		<link>http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/comment-page-1/#comment-1030</link>
		<dc:creator>Robz</dc:creator>
		<pubDate>Fri, 06 Jun 2008 14:58:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=310#comment-1030</guid>
		<description>Let me know if you run into any snags.  Bitter Coder has some great tutorials on it!</description>
		<content:encoded><![CDATA[<p>Let me know if you run into any snags.  Bitter Coder has some great tutorials on it!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Russell Ball</title>
		<link>http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/comment-page-1/#comment-1029</link>
		<dc:creator>Russell Ball</dc:creator>
		<pubDate>Fri, 06 Jun 2008 13:38:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=310#comment-1029</guid>
		<description>@Robz - I&#039;ve actually got some time set aside today to play with Windsor...:-)</description>
		<content:encoded><![CDATA[<p>@Robz &#8211; I&#8217;ve actually got some time set aside today to play with Windsor&#8230;:-)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
