<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>DotNetKicks.com : Stories kicked by david</title>
    <description>Stories kicked by david</description>
    <link>http://www.dotnetkicks.com/</link>
    <language>en-us</language>
    <copyright>Atweb Publishing Ltd.</copyright>
    <docs>http://backend.userland.com/rss</docs>
    <generator>DotNetKicks.com - .NET links, community driven</generator>
    <ttl>30</ttl>
    <item>
      <title>Specification Testing in .NET using Ruby</title>
      <description>The purpose of this post is to run through a process which will ultimately allow you to write Ruby based specifications for your .NET code. Why would you want to do this? The intended purpose for this practice is to gain the most benefit when doing BDD. Trying to do BDD in C# results in a lot of syntactical noise in the code which distracts from the goal of having clear, readable specifcations of how the intended function should behave. The advantage of using Ruby is that the scripted nature of the language allows physical (as well as logical) separation of speficiations from code, opening up the realm of possibility that specifications are written by non-technical folk. Furthermore, the Ruby syntax lends itself to building DSLs perfect for the purpose of allowing clean, almost human-readable code. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.xerxesb.com%2f2009%2fspecification-testing-in-net-using-ruby%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.xerxesb.com%2f2009%2fspecification-testing-in-net-using-ruby%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/unittesting/Specification_Testing_in_NET_using_Ruby</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/unittesting/Specification_Testing_in_NET_using_Ruby</guid>
      <pubDate>Wed, 15 Apr 2009 07:29:31 GMT</pubDate>
    </item>
    <item>
      <title>Why are thread safe collections so hard? </title>
      <description>&amp;quot;Writing a collection which is mutable, thread safe and usable is an extremely difficult process.  At least that's what you've likely been told all through your schooling.  But then you get out on the web and see a multitude of thread safe lists, maps and queues.  If it's so hard, why are there so many examples?&amp;quot; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2fjaredpar%2farchive%2f2009%2f02%2f11%2fwhy-are-thread-safe-collections-so-hard.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2fjaredpar%2farchive%2f2009%2f02%2f11%2fwhy-are-thread-safe-collections-so-hard.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/architecture/Why_are_thread_safe_collections_so_hard</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/architecture/Why_are_thread_safe_collections_so_hard</guid>
      <pubDate>Tue, 17 Feb 2009 17:31:03 GMT</pubDate>
    </item>
    <item>
      <title>Today I've Realized How Far We Have To Go</title>
      <description>A call to climb on the shoulders of giants within the software develeopment industry. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.codethinked.com%2fpost%2f2009%2f02%2f11%2fToday-Ive-Realized-How-Far-We-Have-To-Go.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.codethinked.com%2fpost%2f2009%2f02%2f11%2fToday-Ive-Realized-How-Far-We-Have-To-Go.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Today_I_ve_Realized_How_Far_We_Have_To_Go</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Today_I_ve_Realized_How_Far_We_Have_To_Go</guid>
      <pubDate>Thu, 12 Feb 2009 07:01:02 GMT</pubDate>
    </item>
    <item>
      <title>An introduction to the SOLID principles of OO design</title>
      <description>I would be very hard pressed to go passed Robert &amp;quot;Uncle Bob&amp;quot; Martin's SOLID principles as the single most useful tool for helping me with OO design. I thought I'd post my interpretation of the principles as a refresher for myself, and as an introduction for anyone trying the learn the terminology. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fdavesquared.blogspot.com%2f2009%2f01%2fintroduction-to-solid-principles-of-oo.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fdavesquared.blogspot.com%2f2009%2f01%2fintroduction-to-solid-principles-of-oo.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/An_introduction_to_the_SOLID_principles_of_OO_design</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/An_introduction_to_the_SOLID_principles_of_OO_design</guid>
      <pubDate>Fri, 06 Feb 2009 07:29:00 GMT</pubDate>
    </item>
    <item>
      <title>Object Oriented Design Principles</title>
      <description>Quick summary of SOLID, DRY, YAGNI and other useful OO principles. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.noctovis.net%2fblog%2findex.php%2f2009%2f01%2f15%2fdesign-principles%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.noctovis.net%2fblog%2findex.php%2f2009%2f01%2f15%2fdesign-principles%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Object_Oriented_Design_Principles</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Object_Oriented_Design_Principles</guid>
      <pubDate>Tue, 27 Jan 2009 07:01:02 GMT</pubDate>
    </item>
    <item>
      <title>IoC libraries compared</title>
      <description>A comparison of how to initialize various IoC libraries.  Including AutoFac, Ninject, Spring.Net, StructureMap, Unity, and Windsor. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2felegantcode.com%2f2009%2f01%2f07%2fioc-libraries-compared%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2felegantcode.com%2f2009%2f01%2f07%2fioc-libraries-compared%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/IoC_libraries_compared</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/IoC_libraries_compared</guid>
      <pubDate>Fri, 09 Jan 2009 01:01:06 GMT</pubDate>
    </item>
    <item>
      <title>The WPF Mindset</title>
      <description>An excellent short example of how developing using WPF requires a different mindset to traditional winforms / ASP.NET development. A listbox is completely customised to layout markers on a map. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fcromwellhaus.com%2fblogs%2fryanc%2farchive%2f2008%2f11%2f03%2fthe-wpf-mindset.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fcromwellhaus.com%2fblogs%2fryanc%2farchive%2f2008%2f11%2f03%2fthe-wpf-mindset.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/wpf/The_WPF_Mindset</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/wpf/The_WPF_Mindset</guid>
      <pubDate>Sat, 10 Jan 2009 00:16:06 GMT</pubDate>
    </item>
    <item>
      <title>TortoiseGit 0.1.0.0 Preview</title>
      <description>TortoiseSVN is being ported to TortoiseGit &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fcode.google.com%2fp%2ftortoisegit%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fcode.google.com%2fp%2ftortoisegit%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/opensource/TortoiseGit_0_1_0_0_Preview</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/opensource/TortoiseGit_0_1_0_0_Preview</guid>
      <pubDate>Mon, 15 Dec 2008 06:16:02 GMT</pubDate>
    </item>
    <item>
      <title>NHibernate mappings using xml, attributes, and Fluent NHibernate</title>
      <description>A quick comparison of 3 ways of configuring NHibernate mappings: using XML files, NHibernate Mapping Attributes, and Fluent NHibernate. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fdavesquared.blogspot.com%2f2008%2f09%2fnhibernate-mappings-using-xml.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fdavesquared.blogspot.com%2f2008%2f09%2fnhibernate-mappings-using-xml.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/tipsandtricks/NHibernate_mappings_using_xml_attributes_and_Fluent_NHibernate</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/tipsandtricks/NHibernate_mappings_using_xml_attributes_and_Fluent_NHibernate</guid>
      <pubDate>Sat, 06 Sep 2008 17:41:55 GMT</pubDate>
    </item>
    <item>
      <title>Fluent NHibernate - Working with NHibernate without configuration file</title>
      <description>
&amp;quot;I believe that the most important reason why NHibernate is not more widely adopted by general DEV population is exactly the "Java XML configuration" PIA feeling you have while working with it. 

Great news for all of us from that group: NHibernate is possible to be used WITHOUT configuration files! &amp;quot;
 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblog.vuscode.com%2fmalovicn%2farchive%2f2008%2f08%2f31%2ffluent-nhibernate-nhibernate-without-configuration-files.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblog.vuscode.com%2fmalovicn%2farchive%2f2008%2f08%2f31%2ffluent-nhibernate-nhibernate-without-configuration-files.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/architecture/Fluent_NHibernate_Working_with_NHibernate_without_configuration_file</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/architecture/Fluent_NHibernate_Working_with_NHibernate_without_configuration_file</guid>
      <pubDate>Sat, 06 Sep 2008 13:46:10 GMT</pubDate>
    </item>
    <item>
      <title>Configuration changes in NHibernate 2.0</title>
      <description>A quick summary of the web/app.config changes required when moving from NHibernate 1.2 to the newly released 2.0. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fdavesquared.blogspot.com%2f2008%2f08%2fconfiguration-changes-in-nhibernate-20.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fdavesquared.blogspot.com%2f2008%2f08%2fconfiguration-changes-in-nhibernate-20.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/tipsandtricks/Configuration_changes_in_NHibernate_2_0</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/tipsandtricks/Configuration_changes_in_NHibernate_2_0</guid>
      <pubDate>Tue, 26 Aug 2008 07:39:51 GMT</pubDate>
    </item>
    <item>
      <title>Test Doubles: When To (Not) Use Them</title>
      <description>Provides some guidelines on how to answer the question &amp;quot;Do I need to mock this object for this test?&amp;quot;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fdavybrion.com%2fblog%2f2008%2f08%2ftest-doubles-when-to-not-use-them%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fdavybrion.com%2fblog%2f2008%2f08%2ftest-doubles-when-to-not-use-them%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/unittesting/Test_Doubles_When_To_Not_Use_Them</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/unittesting/Test_Doubles_When_To_Not_Use_Them</guid>
      <pubDate>Thu, 14 Aug 2008 07:19:00 GMT</pubDate>
    </item>
    <item>
      <title>Skinning the Cat with Fluent NHibernate</title>
      <description>As you may have noticed, I have become interested in the concept of Object Relational Mapping and the NHibernate framework. One of the more painful/tedious aspects of using NHibernate is hand writing the xml mapping files. That is why I got excited when I heard that Jeremy Miller was open sourcing his mapping generation libraries.

 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.iamnotmyself.com%2f2008%2f08%2f07%2fSkinningTheCatWithFluentNHibernate.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.iamnotmyself.com%2f2008%2f08%2f07%2fSkinningTheCatWithFluentNHibernate.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Skinning_the_Cat_with_Fluent_NHibernate</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Skinning_the_Cat_with_Fluent_NHibernate</guid>
      <pubDate>Fri, 08 Aug 2008 07:01:02 GMT</pubDate>
    </item>
    <item>
      <title>Log4PostSharp - logging with AOP</title>
      <description>How to inject log4net logging code using PostSharp and Log4PostSharp. Shows you how to add logging to an application with a minimum of effort! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fherrmic-coding.blogspot.com%2f2008%2f08%2flog4postsharp-logging-with-aop.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fherrmic-coding.blogspot.com%2f2008%2f08%2flog4postsharp-logging-with-aop.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Log4PostSharp_logging_with_AOP</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Log4PostSharp_logging_with_AOP</guid>
      <pubDate>Thu, 07 Aug 2008 20:31:03 GMT</pubDate>
    </item>
    <item>
      <title>Brackets, braces, parentheses, and other such creatures</title>
      <description>An interesting story about a common task in text-manipulation done with TDD.  

The problem is stated as such:
This aim of this challenge was to determine whether any given string has a legal bracket structure. Basically, make sure all the '(', '[', '{', and '&amp;lt;' have matching ')', ']', '}' and '&amp;gt;'. We also need to take nesting into account, so that &amp;quot;({)}&amp;quot; is incorrect, and &amp;quot;({}&amp;lt;{}&amp;gt;)&amp;quot; will pass.

 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fdavesquared.blogspot.com%2f2008%2f07%2fbrackets-braces-parenthesis-and-other.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fdavesquared.blogspot.com%2f2008%2f07%2fbrackets-braces-parenthesis-and-other.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/unittesting/Brackets_braces_parentheses_and_other_such_creatures</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/unittesting/Brackets_braces_parentheses_and_other_such_creatures</guid>
      <pubDate>Tue, 29 Jul 2008 10:29:49 GMT</pubDate>
    </item>
    <item>
      <title>Arrange Act Assert and BDD specifications</title>
      <description>With Rhino Mocks 3.5 just around the corner, I've started using it to create much more readable tests.  One of the things that always bothered me with Expect.Call, constraints and the like was that it mixed in the Arrange with Assert.  For those that haven't heard of AAA, it's a pattern for authoring unit tests:

    * Arrange - set up the unit under test
    * Act - exercise the unit under test, capturing any resulting state
    * Assert - verify the behavior through assertions

As I moved towards BDD context/specification style tests, working with Rhino Mocks didn't fit the picture very well.  But with the new AAA syntax of Rhino Mocks 3.5, I can very cleanly separate out the behavior I want to observe from the mechanics of setting up the test. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.lostechies.com%2fblogs%2fjimmy_bogard%2farchive%2f2008%2f07%2f24%2farrange-act-assert-and-bdd-specifications.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.lostechies.com%2fblogs%2fjimmy_bogard%2farchive%2f2008%2f07%2f24%2farrange-act-assert-and-bdd-specifications.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/unittesting/Arrange_Act_Assert_and_BDD_specifications</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/unittesting/Arrange_Act_Assert_and_BDD_specifications</guid>
      <pubDate>Fri, 25 Jul 2008 13:46:11 GMT</pubDate>
    </item>
    <item>
      <title>Building a WPF Application: Part 1</title>
      <description>The first in a series on building a FriendFeed client in WPF using TDD, MVP, DI, etc. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fdevlicious.com%2fblogs%2fchristopher_bennage%2farchive%2f2008%2f07%2f22%2fbuilding-a-wpf-application-part-1.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fdevlicious.com%2fblogs%2fchristopher_bennage%2farchive%2f2008%2f07%2f22%2fbuilding-a-wpf-application-part-1.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/wpf/Building_a_WPF_Application_Part_1</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/wpf/Building_a_WPF_Application_Part_1</guid>
      <pubDate>Wed, 23 Jul 2008 07:56:39 GMT</pubDate>
    </item>
    <item>
      <title>Skip lists are fascinating! </title>
      <description>Skip lists are a fascinating data structure: very simple, and yet have the same asymptotic efficiency as much more complicated AVL trees and red-black trees. In this article, I discuss the asymptotic efficiency of operations on skip lists, the ideas that make them work, and their interesting use cases. And, of course, I give you the source code for a skip list in C#. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2figoro.com%2farchive%2fskip-lists-are-fascinating%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2figoro.com%2farchive%2fskip-lists-are-fascinating%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Skip_lists_are_fascinating</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Skip_lists_are_fascinating</guid>
      <pubDate>Tue, 22 Jul 2008 00:16:03 GMT</pubDate>
    </item>
    <item>
      <title>Call Virtual Functions From Constructors? </title>
      <description>Be aware of this matter because it is not a trivial issue and apparently, there are no errors or warnings generated by the compiler. So, the rule to remember is to never call virtual methods from constructors. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.dev102.com%2f2008%2f07%2f08%2fcall-virtual-functions-from-constructors%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.dev102.com%2f2008%2f07%2f08%2fcall-virtual-functions-from-constructors%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/architecture/Call_Virtual_Functions_From_Constructors</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/architecture/Call_Virtual_Functions_From_Constructors</guid>
      <pubDate>Wed, 09 Jul 2008 13:01:02 GMT</pubDate>
    </item>
    <item>
      <title>How To Write Testable ASP.NET WebForms</title>
      <description>Microsoft's upcoming ASP.NET MCV framework makes it easy to write tests for your application layer logic. But what about those of us who are stuck with ASP.NET WebForms? You can still write highly testable ASP.NET WebForms with only a little bit of extra effort. But that extra effort really pays off in the long run. In this post, i'll give a detailed description of one approach that has worked for me really well. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fdavybrion.com%2fblog%2f2008%2f07%2fhow-to-write-testable-aspnet-webforms%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fdavybrion.com%2fblog%2f2008%2f07%2fhow-to-write-testable-aspnet-webforms%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/aspnet/How_To_Write_Testable_ASP_NET_WebForms</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/aspnet/How_To_Write_Testable_ASP_NET_WebForms</guid>
      <pubDate>Mon, 07 Jul 2008 18:16:15 GMT</pubDate>
    </item>
    <item>
      <title>Intro to NHibernate</title>
      <description>This article takes someone through setting up NHibernate for the first time using the AdventureWorks database. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.jaltiere.com%2f%3fp%3d49"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.jaltiere.com%2f%3fp%3d49" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Intro_to_NHibernate</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Intro_to_NHibernate</guid>
      <pubDate>Fri, 27 Jun 2008 09:49:09 GMT</pubDate>
    </item>
    <item>
      <title>Foundations of Programming Ebook</title>
      <description>Covering the basics of good programming. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fcodebetter.com%2fblogs%2fkarlseguin%2farchive%2f2008%2f06%2f24%2ffoundations-of-programming-ebook.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fcodebetter.com%2fblogs%2fkarlseguin%2farchive%2f2008%2f06%2f24%2ffoundations-of-programming-ebook.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Foundations_of_Programming_Ebook</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Foundations_of_Programming_Ebook</guid>
      <pubDate>Wed, 25 Jun 2008 22:46:04 GMT</pubDate>
    </item>
    <item>
      <title>Separation of Concerns by example: Part 2</title>
      <description>Jimmy Bogard walks through eliminating dependencies in part 2 of his excellent series. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.lostechies.com%2fblogs%2fjimmy_bogard%2farchive%2f2008%2f06%2f24%2fseparation-of-concerns-by-example-part-2.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.lostechies.com%2fblogs%2fjimmy_bogard%2farchive%2f2008%2f06%2f24%2fseparation-of-concerns-by-example-part-2.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/patterns/Separation_of_Concerns_by_example_Part_2</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/patterns/Separation_of_Concerns_by_example_Part_2</guid>
      <pubDate>Wed, 25 Jun 2008 03:30:22 GMT</pubDate>
    </item>
    <item>
      <title>What makes me NOT want to leave a company/client/shop </title>
      <description>What makes me NOT want to leave a company &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fdevlicio.us%2fblogs%2fderik_whittaker%2farchive%2f2008%2f06%2f23%2fwhat-makes-me-not-want-to-leave-a-company-client-shop.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fdevlicio.us%2fblogs%2fderik_whittaker%2farchive%2f2008%2f06%2f23%2fwhat-makes-me-not-want-to-leave-a-company-client-shop.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/What_makes_me_NOT_want_to_leave_a_company_client_shop</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/What_makes_me_NOT_want_to_leave_a_company_client_shop</guid>
      <pubDate>Wed, 25 Jun 2008 00:16:09 GMT</pubDate>
    </item>
    <item>
      <title>Seperation of Concerns</title>
      <description>Jimmy bogard shows how to attack a static method to break out its concerns &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.lostechies.com%2fblogs%2fjimmy_bogard%2farchive%2f2008%2f06%2f19%2fseparation-of-concerns-by-example-part-1.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.lostechies.com%2fblogs%2fjimmy_bogard%2farchive%2f2008%2f06%2f19%2fseparation-of-concerns-by-example-part-1.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Seperation_of_Concerns</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Seperation_of_Concerns</guid>
      <pubDate>Mon, 23 Jun 2008 07:15:18 GMT</pubDate>
    </item>
  </channel>
</rss>