<?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: Get Started Writing Testable Code</title>
	<atom:link href="http://elegantcode.com/2008/05/20/get-started-writing-testable-code/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2008/05/20/get-started-writing-testable-code/</link>
	<description></description>
	<lastBuildDate>Wed, 17 Mar 2010 08:54:42 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: trasa</title>
		<link>http://elegantcode.com/2008/05/20/get-started-writing-testable-code/comment-page-1/#comment-23112</link>
		<dc:creator>trasa</dc:creator>
		<pubDate>Sat, 07 Jun 2008 02:43:57 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/05/20/get-started-writing-testable-code/#comment-23112</guid>
		<description>@abby: Regarding ASP.NET MVC, I think right now its very much &quot;buyer beware&quot; - I&#039;ve used it on a couple of internal and test projects, but I&#039;d hesitate to recommend it for a client&#039;s project quite yet - once you start playing around with it you quickly realize that it&#039;s not 100% &quot;done&quot; yet.  There&#039;s lots of good stuff in the MVCcontrib package, but there are also some things that should really be in the core and the team hasn&#039;t gotten to it yet.

All that, and I&#039;ve still enjoyed working with MVC more than Monorail :)  so who knows, right?  Monorail is certainly a more complete and mature framework at this point.

If I was just starting out, using ASP.NET webforms, I&#039;d take all of that code that ends up in your code-behind files and figure out how to move it into other more &quot;service oriented&quot; classes.  The less code in the codebehind, the better.  And now that I have it out of the webform, I&#039;d start figuring out how to make it testable - decoupling from the data access for example, and using more descriptive objects instead of working with WebForm controls (don&#039;t pass a TextBox reference around, do something meaningful with the Text instead...)

Tools that I like: TestDriven.NET to make running tests easier, either Spring.NET or Windsor for doing dependency injection, NUnit as a straightforward test framework, and RhinoMocks for when you get into the need for auto-mocking objects.</description>
		<content:encoded><![CDATA[<p>@abby: Regarding ASP.NET MVC, I think right now its very much &#8220;buyer beware&#8221; &#8211; I&#8217;ve used it on a couple of internal and test projects, but I&#8217;d hesitate to recommend it for a client&#8217;s project quite yet &#8211; once you start playing around with it you quickly realize that it&#8217;s not 100% &#8220;done&#8221; yet.  There&#8217;s lots of good stuff in the MVCcontrib package, but there are also some things that should really be in the core and the team hasn&#8217;t gotten to it yet.</p>
<p>All that, and I&#8217;ve still enjoyed working with MVC more than Monorail <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   so who knows, right?  Monorail is certainly a more complete and mature framework at this point.</p>
<p>If I was just starting out, using ASP.NET webforms, I&#8217;d take all of that code that ends up in your code-behind files and figure out how to move it into other more &#8220;service oriented&#8221; classes.  The less code in the codebehind, the better.  And now that I have it out of the webform, I&#8217;d start figuring out how to make it testable &#8211; decoupling from the data access for example, and using more descriptive objects instead of working with WebForm controls (don&#8217;t pass a TextBox reference around, do something meaningful with the Text instead&#8230;)</p>
<p>Tools that I like: TestDriven.NET to make running tests easier, either Spring.NET or Windsor for doing dependency injection, NUnit as a straightforward test framework, and RhinoMocks for when you get into the need for auto-mocking objects.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: abby</title>
		<link>http://elegantcode.com/2008/05/20/get-started-writing-testable-code/comment-page-1/#comment-23111</link>
		<dc:creator>abby</dc:creator>
		<pubDate>Sat, 07 Jun 2008 02:19:03 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/05/20/get-started-writing-testable-code/#comment-23111</guid>
		<description>Great job breaking it down so it doesn&#039;t have to feel so overwhelming.  I&#039;d be curious to hear more about what you&#039;re using now.  If I&#039;m a .NET developer, should I look at ASP.NET MVC or is it not yet ready for prime time?  And what are the 1st testing tools I should look at for ASP.NET?

And I love this: &quot;If you look at last year’s code and think that you’d change absolutely nothing, doesn’t that at least imply you haven’t improved your skills?&quot;  If that&#039;s not an argument for continuous learning, then I don&#039;t know what is.</description>
		<content:encoded><![CDATA[<p>Great job breaking it down so it doesn&#8217;t have to feel so overwhelming.  I&#8217;d be curious to hear more about what you&#8217;re using now.  If I&#8217;m a .NET developer, should I look at ASP.NET MVC or is it not yet ready for prime time?  And what are the 1st testing tools I should look at for ASP.NET?</p>
<p>And I love this: &#8220;If you look at last year’s code and think that you’d change absolutely nothing, doesn’t that at least imply you haven’t improved your skills?&#8221;  If that&#8217;s not an argument for continuous learning, then I don&#8217;t know what is.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Schimanski</title>
		<link>http://elegantcode.com/2008/05/20/get-started-writing-testable-code/comment-page-1/#comment-21239</link>
		<dc:creator>Scott Schimanski</dc:creator>
		<pubDate>Thu, 22 May 2008 14:14:04 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/05/20/get-started-writing-testable-code/#comment-21239</guid>
		<description>Great post Tony!  No, flames from me, but then again, I&#039;m a test guy. :)

I&#039;ve been puzzled by why this is so challenging for some developers.  Is the problem that they run out of time in the schedule?  They don&#039;t estimate for it prior to starting? They don&#039;t know how to do it well?  They don&#039;t like to do it because it is not as enjoying as coding new functionality?  They don&#039;t understand the benefits? I suspect it&#039;s all of the above at some level depending on the individual.

Then the question becomes, &quot;How to we instill these best practices in more programmers?&quot;</description>
		<content:encoded><![CDATA[<p>Great post Tony!  No, flames from me, but then again, I&#8217;m a test guy. <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I&#8217;ve been puzzled by why this is so challenging for some developers.  Is the problem that they run out of time in the schedule?  They don&#8217;t estimate for it prior to starting? They don&#8217;t know how to do it well?  They don&#8217;t like to do it because it is not as enjoying as coding new functionality?  They don&#8217;t understand the benefits? I suspect it&#8217;s all of the above at some level depending on the individual.</p>
<p>Then the question becomes, &#8220;How to we instill these best practices in more programmers?&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arjan`s World &#187; Blog Archive</title>
		<link>http://elegantcode.com/2008/05/20/get-started-writing-testable-code/comment-page-1/#comment-21177</link>
		<dc:creator>Arjan`s World &#187; Blog Archive</dc:creator>
		<pubDate>Wed, 21 May 2008 20:05:42 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/05/20/get-started-writing-testable-code/#comment-21177</guid>
		<description>[...] Get Started Writing Testable Code - Tony Rasa [...]</description>
		<content:encoded><![CDATA[<p>[...] Get Started Writing Testable Code &#8211; Tony Rasa [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthew Botos</title>
		<link>http://elegantcode.com/2008/05/20/get-started-writing-testable-code/comment-page-1/#comment-21175</link>
		<dc:creator>Matthew Botos</dc:creator>
		<pubDate>Wed, 21 May 2008 13:49:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/05/20/get-started-writing-testable-code/#comment-21175</guid>
		<description>No flames; you hit the nail right on the head! It&#039;s much more efficient and sane in the long run to invest in unit testing, but many customers, project managers, and even some developers just see it as lost time not being used for deliverables.

To that end, non-technical stakeholders may not need to know about unit testing any more than they would know the details of design patterns. If you can fold unit testing into your usual way (and cost) of doing business, then you just have to get all the developers on board. Hopefully they quickly see the benefit after years of doing it &quot;the hard way&quot; :)</description>
		<content:encoded><![CDATA[<p>No flames; you hit the nail right on the head! It&#8217;s much more efficient and sane in the long run to invest in unit testing, but many customers, project managers, and even some developers just see it as lost time not being used for deliverables.</p>
<p>To that end, non-technical stakeholders may not need to know about unit testing any more than they would know the details of design patterns. If you can fold unit testing into your usual way (and cost) of doing business, then you just have to get all the developers on board. Hopefully they quickly see the benefit after years of doing it &#8220;the hard way&#8221; <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
