<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>DotNetKicks.com : Stories kicked by pheaven</title>
    <description>Stories kicked by pheaven</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>TNValidate - A Fluent Validation Library for .NET</title>
      <description>TNValidate is a fluent validation library for .Net. It allows you to write validation logic in a form that is readable both by programmers and non-programmers, but still entirely in your .Net language. 
TNValidate has plenty of built-in validation rules, but also provides an extension mechanism to allow you to easily add your own without having to modify the library itself. The library is released under the MIT License.
 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2ftnvalidate.codeplex.com"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2ftnvalidate.codeplex.com" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/TNValidate_A_Fluent_Validation_Library_for_NET</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/TNValidate_A_Fluent_Validation_Library_for_NET</guid>
      <pubDate>Tue, 12 May 2009 13:32:50 GMT</pubDate>
    </item>
    <item>
      <title>When Linq and ref Parameters Meet</title>
      <description>In this post we look into a curious quirk of C#: you can't use parameters passed as &amp;quot;ref&amp;quot; inside a Linq query (or a lambda expression or anonymous method either). By analysing the intermediate code produced by the C# compiler, we learn how anonymous methods are compiled when they need lexical scoping semantics. Finally, an attempt to change the IL to get the desired semantics reveals why C# forbids this. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f210-When-Linq-and-ref-Parameters-Meet%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f210-When-Linq-and-ref-Parameters-Meet%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/linq/When_Linq_and_ref_Parameters_Meet</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/linq/When_Linq_and_ref_Parameters_Meet</guid>
      <pubDate>Fri, 04 Apr 2008 19:07:53 GMT</pubDate>
    </item>
    <item>
      <title>Very Quick Guide To DLinq: Part 2</title>
      <description>In the second part of our series to quickly get you up and running with DLinq, we look at using it to do insert, update and delete queries. 
Includes simple code examples to show you how to do it. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f205-Very-Quick-Guide-To-DLinq-Part-2%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f205-Very-Quick-Guide-To-DLinq-Part-2%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Very_Quick_Guide_To_DLinq_Part_2</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Very_Quick_Guide_To_DLinq_Part_2</guid>
      <pubDate>Fri, 04 Apr 2008 19:05:34 GMT</pubDate>
    </item>
    <item>
      <title>Very Quick Guide To DLinq: Part 1</title>
      <description>The first part of our series on DLinq, this post illustrates the steps involved in creating the LINQ to SQL classes using Visual Studio 2008. 
It then looks at how to use them to write a simple query on the database and iterate over the results. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f197-Very-Quick-Guide-To-DLinq-Part-1%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f197-Very-Quick-Guide-To-DLinq-Part-1%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/linq/Very_Quick_Guide_To_DLinq_Part_1</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/linq/Very_Quick_Guide_To_DLinq_Part_1</guid>
      <pubDate>Mon, 17 Mar 2008 13:07:43 GMT</pubDate>
    </item>
    <item>
      <title>Float, Double and Decimal: do you know the differences?</title>
      <description>There are a number of data types available in the .Net framework for storing numbers with fractional parts. They are each appropriate for different situations, and using the wrong one can lead to errors in calculations as well as performance issues! Learn which one you should use when. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f191-Float-Double-and-Decimal-do-you-know-the-differences%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f191-Float-Double-and-Decimal-do-you-know-the-differences%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Float_Double_and_Decimal_do_you_know_the_differences</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Float_Double_and_Decimal_do_you_know_the_differences</guid>
      <pubDate>Tue, 11 Mar 2008 21:05:42 GMT</pubDate>
    </item>
    <item>
      <title>Can a language make programming more fun?</title>
      <description>When it comes to choosing a programming language, there is plenty of personal preference involved. This post considers a few reasons that might make people prefer one language over another. It then asks how much personal preference matters, and how much weight should be put on it when deciding which language to use. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f185-Can-a-language-make-programming-more-fun%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f185-Can-a-language-make-programming-more-fun%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Can_a_language_make_programming_more_fun</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Can_a_language_make_programming_more_fun</guid>
      <pubDate>Mon, 03 Mar 2008 22:31:59 GMT</pubDate>
    </item>
    <item>
      <title>Google Trends of Programming Languages</title>
      <description>Google Trends shows the popularity of search terms over a period of time and allows you to compare how many searches are being performed on various terms. This post looks at the result of querying Google Trends on various programming languages, and considers whether we can use this data to say anything at all about the relative popularity of different programming languages. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f179-Google-Trends-of-Programming-Languages%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f179-Google-Trends-of-Programming-Languages%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Google_Trends_of_Programming_Languages</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Google_Trends_of_Programming_Languages</guid>
      <pubDate>Mon, 03 Mar 2008 20:52:09 GMT</pubDate>
    </item>
    <item>
      <title>Do try...catch blocks hurt runtime performance?</title>
      <description>This posts looks at the real runtime cost of writing a try...catch block in a .Net language. Drawing on his knowledge of .Net internals, the author looks at how such structures are represented in a compiled .Net assembly and what happens at runtime, so the performance characteristics can be understood. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f175-Do-trycatch-blocks-hurt-runtime-performance%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f175-Do-trycatch-blocks-hurt-runtime-performance%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/clr/Do_try_catch_blocks_hurt_runtime_performance</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/clr/Do_try_catch_blocks_hurt_runtime_performance</guid>
      <pubDate>Wed, 20 Feb 2008 23:31:02 GMT</pubDate>
    </item>
    <item>
      <title>C#.NET or VB.NET?</title>
      <description>Recently we got a question from a user asking which of C# and VB.NET was best suited to developing commercial applications like Payroll systems. 
In this post we look at the similarities and differences between the languages and pick out some of the things that may be worth considering when making the decision.

 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f165-CNET-or-VBNET%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f165-CNET-or-VBNET%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/C_NET_or_VB_NET</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/C_NET_or_VB_NET</guid>
      <pubDate>Tue, 12 Feb 2008 05:28:21 GMT</pubDate>
    </item>
    <item>
      <title>What is REST, anyway?</title>
      <description>In this article, we explain REST (Representational State Transfer). It's an approach to building distributed systems, though less commonly used than Remote Procedure Calls. We look at what it is, how it differs from RPC, when it might be suitable to use it and what lessons we can learn from it. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f158-What-is-REST-anyway%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f158-What-is-REST-anyway%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/webservices/What_is_REST_anyway</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/webservices/What_is_REST_anyway</guid>
      <pubDate>Thu, 07 Feb 2008 05:51:30 GMT</pubDate>
    </item>
    <item>
      <title>Divvy up my list? Aye!</title>
      <description>What happens when you mix Yorkshire slang with the new features in C# 3.0? A useful extension method for categorizing Lists, it seems. This article provides an example of how you can use generics, lambda expressions, extension methods and collection initializers together and get something useful, compact and still readable as a result.

 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f144-Divvy-up-my-list-Aye"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f144-Divvy-up-my-list-Aye" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Divvy_up_my_list_Aye</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Divvy_up_my_list_Aye</guid>
      <pubDate>Fri, 01 Feb 2008 17:20:47 GMT</pubDate>
    </item>
    <item>
      <title>Higher Order Programming Is Easy!</title>
      <description>Higher Order Programming is one of those things that to many people sounds weird, magical, mysterious or just too hard for them to be able to do. It's not, and you have likely done it without realizing it. This article takes a quick look at the paradigm, using a couple of short examples. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f133-Higher-Order-Programming-Is-Easy%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f133-Higher-Order-Programming-Is-Easy%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Higher_Order_Programming_Is_Easy</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Higher_Order_Programming_Is_Easy</guid>
      <pubDate>Thu, 31 Jan 2008 15:30:12 GMT</pubDate>
    </item>
    <item>
      <title>Why automated testing matters</title>
      <description>This blog post discusses a couple of the author's experiences with automated testing, and takes an honest look at how well it worked out. It then goes on to cover how to jump into automated testing of your own projects, suggesting tools and some best practices. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f128-Why-automated-testing-matters%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f128-Why-automated-testing-matters%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/unittesting/Why_automated_testing_matters</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/unittesting/Why_automated_testing_matters</guid>
      <pubDate>Thu, 17 Jan 2008 17:22:36 GMT</pubDate>
    </item>
    <item>
      <title>What are the next generation of programmers learning?</title>
      <description>What does it take to be a good programmer, and are computer science courses providing that to today's students? This post takes a quick look at the key things that really should be on a computer science course, and discusses what the overall aim of the course should be: not just turning out code monkeys in today's hot languages, but scientists who can effectively use (or create) the tools and languages that are available in a couple of decades time. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f126-What-are-the-next-generation-of-programmers-learning%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2fuser%2fpheaven%2fblog%2f126-What-are-the-next-generation-of-programmers-learning%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/What_are_the_next_generation_of_programmers_learning</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/What_are_the_next_generation_of_programmers_learning</guid>
      <pubDate>Tue, 15 Jan 2008 18:12:35 GMT</pubDate>
    </item>
    <item>
      <title>Introducing C# 3 - Part 4</title>
      <description>This is the final part of a series on C# 3.0. It covers Linq - Language Integrated Query. It explains what declarative programming is, how Linq fits in with this paradigm and why it is a good thing, before explaining how to write Linq queries using a variety of basic and advanced features. Finally, the architecture of Linq is examined, with some notes on DLinq and XLinq. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fCSharp3-4"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fCSharp3-4" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Introducing_C_3_Part_4</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Introducing_C_3_Part_4</guid>
      <pubDate>Thu, 13 Dec 2007 17:13:13 GMT</pubDate>
    </item>
    <item>
      <title>Introducing C# 3 - Part 3</title>
      <description>This is the third of a four part series on C# 3.0. It covers new features that will help you to build data structures more easily, including object and collection initializers. It then moves on to anonymous types, which are useful in Linq, and how type equivalence works with anonymous types. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fCSharp3-3"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fCSharp3-3" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Introducing_C_3_Part_3</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Introducing_C_3_Part_3</guid>
      <pubDate>Thu, 13 Dec 2007 17:13:00 GMT</pubDate>
    </item>
    <item>
      <title>Introducing C# 3 - Part 2</title>
      <description>This is the second of a four part series on C# 3.0. It covers extension methods, explaining what they are, when to use them and how to write them. It then moves on to lambda expressions, explaining the syntax and showing how C# 2.0 anonymous methods can be re-written using the new syntax. It also looks at how type inference and lambda expressions work together. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fCSharp3-2"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fCSharp3-2" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Introducing_C_3_Part_2</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Introducing_C_3_Part_2</guid>
      <pubDate>Thu, 13 Dec 2007 17:12:45 GMT</pubDate>
    </item>
    <item>
      <title>Introducing C# 3 </title>
      <description>This is the first of a four part series on C# 3.0. It covers type inference, also known as implicitly typed variables. It explains what type inference is, why it is useful and the performance consequences of using it. It also looks at implicitly typed arrays. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fCSharp3-1"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fCSharp3-1" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Introducing_C_3</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Introducing_C_3</guid>
      <pubDate>Thu, 13 Dec 2007 17:08:02 GMT</pubDate>
    </item>
    <item>
      <title>Webmaster Checklist - How Does Your Site Do?</title>
      <description>About to deploy a site? Find out what you've forgotten to do! We have collected together numerous tried and tested tips to make the ultimate webmaster checklist. It includes detailed tips on search engine optimization, accessibility, security, page download time, privacy and legal issues, hosting and more. There is also a downloadable tick-list version of the checklist, so you can tick off each item as you check it for your site.
 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fWebmaster_Checklist"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fWebmaster_Checklist" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/aspnet/Webmaster_Checklist_How_Does_Your_Site_Do</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/aspnet/Webmaster_Checklist_How_Does_Your_Site_Do</guid>
      <pubDate>Thu, 27 Sep 2007 03:34:40 GMT</pubDate>
    </item>
    <item>
      <title>2006 At Programmer's Heaven: The Highlights</title>
      <description>As another year draws to a close and the Programmer's Heaven team take a break for Christmas, it's time to take a look back over the year that's just been.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fPH-2006"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fPH-2006" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/community/2006_At_Programmer_s_Heaven_The_Highlights</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/community/2006_At_Programmer_s_Heaven_The_Highlights</guid>
      <pubDate>Thu, 21 Dec 2006 19:13:02 GMT</pubDate>
    </item>
    <item>
      <title>Free C# School Ebook </title>
      <description>This free 330 page ebook covers the .NET framework and the C# language. Starting with the basics of the language, it goes on to cover object oriented programming techniques and a wide range of C# languages features including interfaces, exceptions and delegates. Later chapters cover practical topics including database access with ADO.NET, building Windows forms applications, multi-threading and asynchronous I/O. The final chapter covers new features in C# 2.0, including generics.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fCSharpBook"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.programmersheaven.com%2f2%2fCSharpBook" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Free_C_School_Ebook</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Free_C_School_Ebook</guid>
      <pubDate>Tue, 12 Dec 2006 11:31:01 GMT</pubDate>
    </item>
  </channel>
</rss>