


      <rss version="2.0">
         <channel>
            <title><![CDATA[.NET Curry: Patterns & Practices]]></title>
            <link>https://www.dotnetcurry.com/</link>
            <description>.NET Curry: the site for Microsoft Enthusiasts</description>
            <copyright>Copyright 2009 by Suprotim Agarwal on behalf of dotnetcurry.com</copyright>
   
      <item>
         <title><![CDATA[Tackling Legacy Code]]></title>
         <author><![CDATA[Peter Morlion]]></author>
         <description><![CDATA[Almost every developer will be confronted with legacy code early in their career. This can be a demoralizing experience that takes away the pleasure of writing software - especially if this situation continues for too long and developers don't see a way out.
And yet, in my experience the way out looks very similar in most cases. Let me show you.
]]></description>
         <link><![CDATA[https://www.dotnetcurry.com/ShowArticle.aspx?ID=1575]]></link>
         <pubDate>Tue, 29 Jun 2021 00:00:00 GMT</pubDate>
      </item>
   
      <item>
         <title><![CDATA[Coding Practices: The most important ones – Part 3]]></title>
         <author><![CDATA[Yacoub Massad]]></author>
         <description><![CDATA[In this tutorial, I will continue talking about the most important coding practices based on my experience. In this part, I will talk about data modeling, and making state or impurities in general visible.]]></description>
         <link><![CDATA[https://www.dotnetcurry.com/ShowArticle.aspx?ID=1557]]></link>
         <pubDate>Tue, 10 Nov 2020 00:00:00 GMT</pubDate>
      </item>
   
      <item>
         <title><![CDATA[Architecting .NET Desktop and Mobile applications]]></title>
         <author><![CDATA[Damir Arh]]></author>
         <description><![CDATA[This tutorial introduces several architectural and design patterns that can be used to implement common scenarios in .NET desktop and mobile applications.]]></description>
         <link><![CDATA[https://www.dotnetcurry.com/ShowArticle.aspx?ID=1555]]></link>
         <pubDate>Thu, 15 Oct 2020 00:00:00 GMT</pubDate>
      </item>
   
      <item>
         <title><![CDATA[Application Architecture – Getting started]]></title>
         <author><![CDATA[Damir Arh]]></author>
         <description><![CDATA[This article is an introduction to understand application architecture for the Microsoft technology stack.]]></description>
         <link><![CDATA[https://www.dotnetcurry.com/ShowArticle.aspx?ID=1553]]></link>
         <pubDate>Wed, 07 Oct 2020 00:00:00 GMT</pubDate>
      </item>
   
      <item>
         <title><![CDATA[Coding practices: The most important ones – Part 2]]></title>
         <author><![CDATA[Yacoub Massad]]></author>
         <description><![CDATA[In Part 2 of Best Coding Practices, I talk about keeping a  clear separation between units of code that model data, and units of code that model behavior. I also talk about making data objects immutable.]]></description>
         <link><![CDATA[https://www.dotnetcurry.com/ShowArticle.aspx?ID=1543]]></link>
         <pubDate>Mon, 27 Jul 2020 00:00:00 GMT</pubDate>
      </item>
   
      <item>
         <title><![CDATA[Coding Practices: The most important ones – Part 1]]></title>
         <author><![CDATA[Yacoub Massad]]></author>
         <description><![CDATA[In this Patterns and Practices tutorial, I will talk about the most important coding practices based on my experience. The first part focuses on Automated Testing.]]></description>
         <link><![CDATA[https://www.dotnetcurry.com/ShowArticle.aspx?ID=1534]]></link>
         <pubDate>Wed, 22 Apr 2020 00:00:00 GMT</pubDate>
      </item>
   
      <item>
         <title><![CDATA[The Maybe Monad in C#: More methods]]></title>
         <author><![CDATA[Yacoub Massad]]></author>
         <description><![CDATA[The Maybe Monad is a container that represents a value that may or may not exist. In this tutorial, I will go through some methods that make working with the Maybe monad easier.]]></description>
         <link><![CDATA[https://www.dotnetcurry.com/ShowArticle.aspx?ID=1526]]></link>
         <pubDate>Wed, 12 Feb 2020 00:00:00 GMT</pubDate>
      </item>
   
      <item>
         <title><![CDATA[Function parameters in C# and the flattened sum type anti-pattern]]></title>
         <author><![CDATA[Yacoub Massad]]></author>
         <description><![CDATA[In this tutorial, I will discuss function parameters in C#. I will talk about how function parameters tend to become unclear as we maintain our programs and how to fix them.]]></description>
         <link><![CDATA[https://www.dotnetcurry.com/ShowArticle.aspx?ID=1520]]></link>
         <pubDate>Tue, 24 Dec 2019 00:00:00 GMT</pubDate>
      </item>
   
      <item>
         <title><![CDATA[The Maybe Monad (C#)]]></title>
         <author><![CDATA[Yacoub Massad]]></author>
         <description><![CDATA[In this tutorial, I will talk about the Maybe Monad; a container that represents a value that might or might not exist.]]></description>
         <link><![CDATA[https://www.dotnetcurry.com/ShowArticle.aspx?ID=1510]]></link>
         <pubDate>Wed, 25 Sep 2019 00:00:00 GMT</pubDate>
      </item>
   
      <item>
         <title><![CDATA[State in Multi-threaded C# Applications]]></title>
         <author><![CDATA[Yacoub Massad]]></author>
         <description><![CDATA[In this tutorial, I will talk about ways to handle state in multi-threaded C# applications, including race conditions.]]></description>
         <link><![CDATA[https://www.dotnetcurry.com/ShowArticle.aspx?ID=1502]]></link>
         <pubDate>Wed, 17 Jul 2019 00:00:00 GMT</pubDate>
      </item>
   
         </channel>
      </rss>  
   