<?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: Manual Code Generation</title>
	<atom:link href="http://johnnycoder.com/blog/2006/10/16/manual-code-generation/feed/" rel="self" type="application/rss+xml" />
	<link>http://johnnycoder.com/blog/2006/10/16/manual-code-generation/</link>
	<description></description>
	<lastBuildDate>Thu, 17 May 2012 13:18:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: mobile cell site</title>
		<link>http://johnnycoder.com/blog/2006/10/16/manual-code-generation/comment-page-1/#comment-385272</link>
		<dc:creator>mobile cell site</dc:creator>
		<pubDate>Fri, 11 May 2012 07:39:29 +0000</pubDate>
		<guid isPermaLink="false">http://johnnycoder.com/blog/?p=56#comment-385272</guid>
		<description>Brilliant, cant belive to win but give it a try tweeted =&gt; https://twitter.com/#!/endgeek/status/198318073315463168</description>
		<content:encoded><![CDATA[<p>Brilliant, cant belive to win but give it a try tweeted =&gt; <a href="https://twitter.com/#" rel="nofollow">https://twitter.com/#</a>!/endgeek/status/198318073315463168</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gregory Woodliff</title>
		<link>http://johnnycoder.com/blog/2006/10/16/manual-code-generation/comment-page-1/#comment-369328</link>
		<dc:creator>Gregory Woodliff</dc:creator>
		<pubDate>Tue, 10 Apr 2012 06:40:07 +0000</pubDate>
		<guid isPermaLink="false">http://johnnycoder.com/blog/?p=56#comment-369328</guid>
		<description>I wanted to check up and allow you to know how , a great deal I treasured discovering your web blog today. I would consider it an honor to work at my workplace and be able to utilize the tips contributed on your site and also be a part of visitors&#039; remarks like this. Should a position connected with guest article author become available at your end, you should let me know.</description>
		<content:encoded><![CDATA[<p>I wanted to check up and allow you to know how , a great deal I treasured discovering your web blog today. I would consider it an honor to work at my workplace and be able to utilize the tips contributed on your site and also be a part of visitors&#8217; remarks like this. Should a position connected with guest article author become available at your end, you should let me know.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SubSonic - Another Look at Code Generation by JohnnyCoder</title>
		<link>http://johnnycoder.com/blog/2006/10/16/manual-code-generation/comment-page-1/#comment-140815</link>
		<dc:creator>SubSonic - Another Look at Code Generation by JohnnyCoder</dc:creator>
		<pubDate>Tue, 28 Oct 2008 18:45:15 +0000</pubDate>
		<guid isPermaLink="false">http://johnnycoder.com/blog/?p=56#comment-140815</guid>
		<description>[...]  Ben Griswold09:53 am14 Comments8,950 Views Last month, I wrote Manual Code Generation, an article which shared, in my view, the pros and the cons of code generators.  In this same [...]</description>
		<content:encoded><![CDATA[<p>[...]  Ben Griswold09:53 am14 Comments8,950 Views Last month, I wrote Manual Code Generation, an article which shared, in my view, the pros and the cons of code generators.  In this same [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bgriswold</title>
		<link>http://johnnycoder.com/blog/2006/10/16/manual-code-generation/comment-page-1/#comment-175</link>
		<dc:creator>bgriswold</dc:creator>
		<pubDate>Sun, 29 Oct 2006 16:23:42 +0000</pubDate>
		<guid isPermaLink="false">http://johnnycoder.com/blog/?p=56#comment-175</guid>
		<description>Mr. Galloway, a lengthy comment such as yours deserves a response (or its own post perhaps.) Here&#039;s what I will do. I&#039;ll check out SubSonic and provide feedback. Who knows?  Maybe I will never have to write a line of code again. I will also address your very valid comments and questions then. I wonder. Will our debate ever end?</description>
		<content:encoded><![CDATA[<p>Mr. Galloway, a lengthy comment such as yours deserves a response (or its own post perhaps.) Here&#8217;s what I will do. I&#8217;ll check out SubSonic and provide feedback. Who knows?  Maybe I will never have to write a line of code again. I will also address your very valid comments and questions then. I wonder. Will our debate ever end?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon Galloway</title>
		<link>http://johnnycoder.com/blog/2006/10/16/manual-code-generation/comment-page-1/#comment-158</link>
		<dc:creator>Jon Galloway</dc:creator>
		<pubDate>Sun, 29 Oct 2006 03:49:34 +0000</pubDate>
		<guid isPermaLink="false">http://johnnycoder.com/blog/?p=56#comment-158</guid>
		<description>Have you checked out SubSonic? It gets around several of the downsides you pointed out:
-Supports handcrafted code very well.
-Supports schema changes very well since a rebuild of the project triggers a rebuild of the DAL.
-Not difficult to maintain since there are no source code artifacts.

The rest are points I&#039;d be interested in hearing you elaborate, and not just because we&#039;ve spent hours arguing about code generation over the years:
-Someone needs to write the code generator... why is that a problem for you? Someone has written it, so...
-Only works for specific use cases - I agree for the &quot;one click builds your app&quot; kind, but CRUD code is pretty generic.
-Poor performance - I don&#039;t think that&#039;s a given. While wrapper code&#039;s weight is negligible compared to the network overhead and database lookup time, generated code should actually more performant than data access code which calls into data access libraries. Instead of passing a bunch of variables to a function which maps the parameters to a database call, the generated data access code just makes the ADO call. There are cases where you just have to write a stored proc for complex queries, but in a lot of cases a good code generator which builds dynamic SQL will beat stored procedure based data access, since it can use more specific criteria which allow for better query performance over a general stored procedure. Codegen DAL&#039;s like SubSonic are great because they have built in support for SP overrides when you need them, but you don&#039;t have to write them unless perf testing calls for it.</description>
		<content:encoded><![CDATA[<p>Have you checked out SubSonic? It gets around several of the downsides you pointed out:<br />
-Supports handcrafted code very well.<br />
-Supports schema changes very well since a rebuild of the project triggers a rebuild of the DAL.<br />
-Not difficult to maintain since there are no source code artifacts.</p>
<p>The rest are points I&#8217;d be interested in hearing you elaborate, and not just because we&#8217;ve spent hours arguing about code generation over the years:<br />
-Someone needs to write the code generator&#8230; why is that a problem for you? Someone has written it, so&#8230;<br />
-Only works for specific use cases &#8211; I agree for the &#8220;one click builds your app&#8221; kind, but CRUD code is pretty generic.<br />
-Poor performance &#8211; I don&#8217;t think that&#8217;s a given. While wrapper code&#8217;s weight is negligible compared to the network overhead and database lookup time, generated code should actually more performant than data access code which calls into data access libraries. Instead of passing a bunch of variables to a function which maps the parameters to a database call, the generated data access code just makes the ADO call. There are cases where you just have to write a stored proc for complex queries, but in a lot of cases a good code generator which builds dynamic SQL will beat stored procedure based data access, since it can use more specific criteria which allow for better query performance over a general stored procedure. Codegen DAL&#8217;s like SubSonic are great because they have built in support for SP overrides when you need them, but you don&#8217;t have to write them unless perf testing calls for it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

