CINXE.COM
Patterns & Practices Tutorial for Beginners and Professionals with Source Code
<!DOCTYPE html> <html lang="en"> <head id="ctl00_Head1"><meta charset="utf-8" /><title> Patterns & Practices Tutorial for Beginners and Professionals with Source Code </title><meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" /><meta name="description" content="Patterns & Practices Tutorial - Free Beginner and Advanced Tutorials, Articles, Projects and Source Code for Software Developers, Professionals and Architects" /><meta name="keywords" content="Patterns & Practices, Free Beginner Advanced Tutorial, Articles, Source Code" /><meta name="author" content="DotNetCurry.com" /><meta name="CCBot" content="nofollow" /><link rel="shortcut icon" href="../img/favicon.ico" /><link rel="icon" type="image/ico" href="../img/favicon.ico" /><link rel="stylesheet" href="../js/font-awesome/css/font-awesome.min.css" /><link rel="canonical" href="https://www.dotnetcurry.com/tutorials/patterns-practices" /><link href="/content/site?v=dSwaMsW0iplPE-tk0JGVwhcZRf6VKKqSg-lTdPGvZso1" rel="stylesheet"/> <style>.async-hide { opacity: 0 !important} </style> <!-- GA disabled 17062020 --> <!--<script>(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date; h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')}; (a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c; })(window,document.documentElement,'async-hide','dataLayer',4000, {'GTM-NJXQ5BG':true});</script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-2417460-4', 'auto'); ga('require', 'GTM-NJXQ5BG'); ga('send', 'pageview'); </script>--> <!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1902706389940870', { //em: 'insert_email_variable' }); fbq('track', 'PageView'); </script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1902706389940870&ev=PageView&noscript=1" /></noscript> <!-- DO NOT MODIFY --> <!-- End Facebook Pixel Code --> <!-- Twitter universal website tag code May 30 17 --> <script> !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js', a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); // Insert Twitter Pixel ID and Standard Event data below twq('init','nw0gz'); twq('track','PageView'); </script> <!-- End Twitter universal website tag code --> <meta name="verify-v1" content="Tm82h3UxQzm3pwChS26K2o7H9InN0VfUt+RTDZH583M=" /></head> <body> <form name="aspnetForm" method="post" action="./patterns-practices?CatID=72" id="aspnetForm"> <div> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> <input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTMxMzk5ODYxMw8WAh4TVmFsaWRhdGVSZXF1ZXN0TW9kZQIBFgJmD2QWBAIBD2QWBgIDDxYCHgdjb250ZW50BZ4BUGF0dGVybnMgJiBQcmFjdGljZXMgVHV0b3JpYWwgLSBGcmVlIEJlZ2lubmVyIGFuZCBBZHZhbmNlZCBUdXRvcmlhbHMsIEFydGljbGVzLCBQcm9qZWN0cyBhbmQgU291cmNlIENvZGUgZm9yIFNvZnR3YXJlIERldmVsb3BlcnMsIFByb2Zlc3Npb25hbHMgYW5kIEFyY2hpdGVjdHNkAgQPFgIfAQVMUGF0dGVybnMgJiBQcmFjdGljZXMsIEZyZWUgQmVnaW5uZXIgQWR2YW5jZWQgVHV0b3JpYWwsIEFydGljbGVzLCBTb3VyY2UgQ29kZWQCCg8WAh4EVGV4dAVYPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRvdG5ldGN1cnJ5LmNvbS90dXRvcmlhbHMvcGF0dGVybnMtcHJhY3RpY2VzIiAvPmQCAw9kFgQCAQ9kFgICAQ9kFgpmDw8WAh4HVmlzaWJsZWdkFgYCAQ8PFgIeCEltYWdlVXJsBTJodHRwczovL3d3dy5kb3RuZXRjdXJyeS5jb20vaW1hZ2VzL2NhdGVnb3J5LzcyLnBuZ2RkAgMPFgIfAgWkATxoMSBjbGFzcz0nYWxoZWFkZXInPlNvZnR3YXJlIFBhdHRlcm5zIGFuZCBQcmFjdGljZXMgVHV0b3JpYWxzPC9oMT5SZWNvbW1lbmRhdGlvbnMgb24gaG93IHRvIGRlc2lnbiBhbmQgZGV2ZWxvcCBoaWdobHkgcGVyZm9ybWluZyBhcHBsaWNhdGlvbnMgdXNpbmcgYmVzdCBwcmFjdGljZXMuZAIFDxYCHgtfIUl0ZW1Db3VudAIBFgJmD2QWAmYPFQQCNDMUUGF0dGVybnMgJiBQcmFjdGljZXMHNDE1ODc1NUZGb3VyIE1pbGxpb24gT25lIEh1bmRyZWQgRmlmdHkgRWlnaHQgVGhvdXNhbmQgU2V2ZW4gSHVuZHJlZCBGaWZ0eSBGaXZlZAICDw9kDxAWAWYWARYCHg5QYXJhbWV0ZXJWYWx1ZWQWAQIEZGQCBg8PZA8QFgJmAgEWAhYCHwZkFgIfBgUCNzIWAgIDZmRkAgwPEA8WAh4LXyFEYXRhQm91bmRnZA8WMAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMBYwEAUSalF1ZXJ5IGFuZCBBU1AuTkVUBQI2M2cQBQtBU1AuTkVUIE1WQwUCNjdnEAUPTWljcm9zb2Z0IEF6dXJlBQI3M2cQBQdBU1AuTkVUBQI1NGcQBQ1WaXN1YWwgU3R1ZGlvBQI2MGcQBRlTaWx2ZXJsaWdodCAyLCAzLCA0IGFuZCA1BQI1NmcQBQxBU1AuTkVUIEFKQVgFAjU5ZxAFDVdpbmRvd3MgUGhvbmUFAjcwZxAFDkV4cHJlc3Npb24gV2ViBQI0OGcQBRBFbnRpdHkgRnJhbWV3b3JrBQI3MWcQBQRMSU5RBQI2MmcQBQ4uTkVUIEZyYW1ld29yawUCNjZnEAUILk5FVCAzLjUFAjY5ZxAFA1dQRgUCNjhnEAUQV2luRm9ybXMgJiBXaW5SVAUCNDdnEAUCQyMFAjU1ZxAFClNoYXJlUG9pbnQFAjY1ZxAFEFByb2R1Y3QgQXJ0aWNsZXMFAjY0ZxAFDkdlbmVyYWwgVG9waWNzBQI2MWcQBQtPZmZpY2UgQXBwcwUCNzdnEAUNV2luZG93cyBWaXN0YQUCNTJnEAUSV2luZG93cyBTdG9yZSBBcHBzBQI3NWcQBQxETkMgTWFnYXppbmUFAjc0ZxAFEEV4cHJlc3Npb24gQmxlbmQFAjUwZxAFCVdvcmQgMjAwNwUCNTFnEAUMT3V0bG9vayAyMDA3BQI1N2cQBRNJbnRlcnZpZXcgUXVlc3Rpb25zBQI1OGcQBRRQYXR0ZXJucyAmIFByYWN0aWNlcwUCNzJnEAUHWGFtYXJpbgUCODZnEAUZLk5FVCBTdGFuZGFyZCAmIC5ORVQgQ29yZQUCODlnEAUJQW5ndWxhckpTBQI4MGcQBQxBU1AuTkVUIENvcmUFAjg4ZxAFC0JhY2tib25lLmpzBQI3OWcQBQ9Cb290c3RyYXAgJiBDU1MFAjkxZxAFBkRldk9wcwUCOTRnEAUSSFRNTDUgJiBKYXZhU2NyaXB0BQI3OGcQBQpKYXZhU2NyaXB0BQI5M2cQBRVNYWNoaW5lIExlYXJuaW5nICYgQUkFAjkwZxAFB05vZGUuanMFAjgxZxAFClBvd2Vyc2hlbGwFAjgzZxAFElByb2plY3QgTWFuYWdlbWVudAUCOTZnEAUHUmVhY3RqcwUCODdnEAUSU29mdHdhcmUgR2FyZGVuaW5nBQI4MmcQBQpUeXBlU2NyaXB0BQI4NGcQBRlWU1RTICYgVEZTIChBenVyZSBEZXZPcHMpBQI5MmcQBQZWdWUuanMFAjk1ZxAFJldpbmRvd3MgQ29tbXVuaWNhdGlvbiBGb3VuZGF0aW9uIChXQ0YpBQI3NmcQBRJXaW5kb3dzIFN0b3JlIEFwcHMFAjg1ZxYBAhxkAhAPEGRkFgECA2QCAw8PZBYEHgtwbGFjZWhvbGRlcgUdU2VhcmNoIERvdE5ldEN1cnJ5LmNvbSBmb3IuLi4eB29uRm9jdXMFH3RoaXMuY2xhc3NOYW1lID0gJ2Zvcm0tY29udHJvbCdkGAIFIWN0bDAwJE1haW5Db250ZW50JEFydGljbGVMaXN0aW5nMQ8UKwAGZGdnZ2dnZAUtY3RsMDAkTWFpbkNvbnRlbnQkQXJ0aWNsZUxpc3RpbmcxJGd2d0FydGljbGVzDzwrAAwDBhUBAklEBxQrACsUKwABAqcMFCsAAQKVDBQrAAECkwwUKwABApEMFCsAAQKHDBQrAAEC/gsUKwABAvYLFCsAAQLwCxQrAAEC5gsUKwABAt4LFCsAAQLZCxQrAAEC0wsUKwABAssLFCsAAQLDCxQrAAECvQsUKwABArgLFCsAAQK1CxQrAAECqQsUKwABAqMLFCsAAQKXCxQrAAEClQsUKwABAoQLFCsAAQL/ChQrAAEC/goUKwABAvAKFCsAAQLlChQrAAEC4goUKwABAt8KFCsAAQLXChQrAAEC1AoUKwABArkKFCsAAQLOChQrAAECxgoUKwABAqYKFCsAAQLECBQrAAECmQoUKwABApEKFCsAAQKPChQrAAEChQoUKwABAusJFCsAAQK2CBQrAAEChggUKwABAqsFCAIBZDU1xOdzrQWcQEt/39XhpmkuZnMV" /> </div> <script type="text/javascript"> //<![CDATA[ var theForm = document.forms['aspnetForm']; if (!theForm) { theForm = document.aspnetForm; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script> <div> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="767EA0A4" /> </div> <div class="wrapper"> <!-- header --> <header class="header header-megamenu"> <nav class="navbar navbar-default" role="navigation"> <div class="container"> <!--<div class="search-bar"> <input type="search" onkeyup="executeQuery();" placeholder="Type search text here..." name="search" id="search-keyword"> <div class="search-close" id="x"><i class="fa fa-times"></i></div> </div>--> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <!--<a class="navbar-brand" href="./index.html"> <img src="img/dnc-logo-tee-trans.png" srcset="img/dnc-logo-small.jpg 1980w, img/dnc-logo-x-small.jpg 320w" sizes ="100vw" class="img-responsive" alt="DNC Magazine" /> </a>--> <a class="navbar-brand" href="https://www.dotnetcurry.com"> <img src="/img/dnc-logo-small.jpg" class="img-responsive" alt="DNC Magazine" /> </a> </div> <!--<div class="search-trigger pull-right"></div>--> <div class="navbar-social pull-right visible-xs-block, hidden-xs"> <a href="https://www.facebook.com/dotnetcurry"><img src="/img/icon/fb.png" class="img-responsive" alt="DotNetCurry's Official Facebook Account" /></a> <a href="https://www.twitter.com/dotnetcurry"><img src="/img/icon/twit.png" class="img-responsive" alt="DotNetCurry's Official Twitter Account" /></a> <a href="https://github.com/dotnetcurry"><img src="/img/icon/git.png" class="img-responsive" alt="DotNetCurry's Official Github Account" /></a> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse navbar-ex1-collapse"> <ul class="nav navbar-nav"> <li class="dropdown megamenu"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Tutorials <span class="fa fa-angle-down"></span></a> <ul class="dropdown-menu"> <li> <div class="row"> <div class="col-md-3"> <h5>ASP.NET</h5> <a href="https://www.dotnetcurry.com/tutorials/aspnet">ASP.NET</a> <a href="https://www.dotnetcurry.com/tutorials/aspnet-mvc">ASP.NET MVC</a> <a href="https://www.dotnetcurry.com/tutorials/aspnet-core">ASP.NET Core</a> <a href="https://www.dotnetcurry.com/tutorials/sharepoint">SharePoint</a> <a href="https://www.dotnetcurry.com/tutorials/aspnet-ajax" class="last">ASP.NET AJAX</a> <h5>Patterns and Practices</h5> <a href="https://www.dotnetcurry.com/tutorials/software-gardening">Software Gardening</a> <a href="https://www.dotnetcurry.com/tutorials/patterns-practices">Design Patterns</a> </div> <div class="col-md-3"> <h5>.NET</h5> <a href="https://www.dotnetcurry.com/tutorials/csharp">C#</a> <a href="https://www.dotnetcurry.com/tutorials/visualstudio">Visual Studio</a> <a href="https://www.dotnetcurry.com/tutorials/vsts-tfs">VSTS (Azure DevOps) & TFS</a> <a href="https://www.dotnetcurry.com/tutorials/linq">LINQ</a> <a href="https://www.dotnetcurry.com/tutorials/entityframework">Entity Framework</a> <a href="https://www.dotnetcurry.com/tutorials/dotnetframework">.NET Framework</a> <a href="https://www.dotnetcurry.com/tutorials/dotnet-standard-core">.NET Standard & .NET Core</a> <a href="https://www.dotnetcurry.com/tutorials/wpf">WPF</a> <a href="https://www.dotnetcurry.com/tutorials/wcf">WCF</a> <a href="https://www.dotnetcurry.com/tutorials/winforms">WinForms</a> </div> <div class="col-md-3"> <h5>Cloud and Mobile</h5> <a href="https://www.dotnetcurry.com/tutorials/windows-azure">Microsoft Azure</a> <a href="https://www.dotnetcurry.com/tutorials/devops">DevOps</a> <a href="https://www.dotnetcurry.com/tutorials/xamarin">Xamarin</a> <a href="https://www.dotnetcurry.com/tutorials/powershell">Powershell</a> <a href="https://www.dotnetcurry.com/tutorials/machine-learning-ai">Machine Learning & AI</a> <a href="https://www.dotnetcurry.com/tutorials/windows-store">UWP & Windows Store</a> <a href="https://www.dotnetcurry.com/tutorials/windowsphone" class="last">Windows Phone</a> <h5>Useful</h5> <a href="https://www.dotnetcurry.com/tutorials/dotnetinterview">.NET Interview Q&A</a> <a href="https://www.dotnetcurry.com/tutorials/product-articles-review">Product Reviews</a> <a href="https://www.dotnetcurry.com/tutorials/general-programming-topics">General Topics</a> </div> <div class="col-md-3"> <h5>JavaScript</h5> <a href="https://www.dotnetcurry.com/tutorials/jquery-aspnet">jQuery</a> <a href="https://www.dotnetcurry.com/tutorials/angularjs">Angular</a> <a href="https://www.dotnetcurry.com/tutorials/typescript">TypeScript</a> <a href="https://www.dotnetcurry.com/tutorials/nodejs">Node.js</a> <a href="https://www.dotnetcurry.com/tutorials/reactjs">React.js</a> <a href="https://www.dotnetcurry.com/tutorials/backbonejs">Backbone.js</a> <a href="https://www.dotnetcurry.com/tutorials/html5-javascript">HTML5 & JavaScript</a> <a href="https://www.dotnetcurry.com/tutorials/bootstrap-css">Bootstrap & CSS</a> </div> <div class="col-md-3"> <h5>Publications</h5> <a href="http://www.jquerycookbook.com/">Books</a> <a href="https://www.dotnetcurry.com/magazine/" class="last">Magazines</a> <h5>Older Technologies</h5> <a href="https://www.dotnetcurry.com/tutorials/silverlight">Silverlight</a> <a href="https://www.dotnetcurry.com/tutorials/expression-web">Expression Web</a> <a href="https://www.dotnetcurry.com/tutorials/expression-blend">Expression Blend</a> <a href="https://www.dotnetcurry.com/tutorials/windows-vista">Windows Vista</a> <a href="https://www.dotnetcurry.com/tutorials/microsoft-word">Word 2007</a> <a href="https://www.dotnetcurry.com/tutorials/microsoft-outlook">Outlook 2007</a> <a href="#"></a> </div> </div> </li> </ul> </li> <li class="dropdown megamenu"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Featured <span class="fa fa-angle-down"></span></a> <ul class="dropdown-menu"> <li> <div class="row"> <div class="col-md-3 col-xs-12"> <div class="header-post"> <a href="https://www.dotnetcurry.com/angular/1385/angular-4-cheat-sheet"> <div class="hp-thumb"> <img data-src="/img/header/1385.jpg" class="img-responsive lazyload" alt="" /> </div> </a> <date>Aug 30, 2017</date> <h4><a href="https://www.dotnetcurry.com/angular/1385/angular-4-cheat-sheet">Angular 4 Development Cheat Sheet</a></h4> <p class="hidden-xs">A quick reference guide to get you going with Angular development. It uses Angular v4 with TypeScript.</p> </div> </div> <div class="col-md-3 col-xs-12"> <div class="header-post"> <a href="https://www.dotnetcurry.com/patterns-practices/1364/error-handling-dotnet-projects"> <div class="hp-thumb"> <!-- <div class="hp-overlay"> <img src="img/header/gallery.png" alt=""/> <span>12 Photos</span> </div> --> <img data-src="/img/header/1364.jpg" class="img-responsive lazyload" alt="" /> </div> </a> <date>May 12, 2017</date> <h4><a href="https://www.dotnetcurry.com/patterns-practices/1364/error-handling-dotnet-projects">Error Handling in Large .NET Projects - Best Practices</a></h4> <p class="hidden-xs">Learn some effective error handling strategies that you can use in your .NET projects.</p> </div> </div> <div class="col-md-3 col-xs-12"> <div class="header-post"> <a href="https://www.dotnetcurry.com/patterns-practices/1375/behavior-driven-development-bdd"> <div class="hp-thumb"> <img data-src="/img/header/1375.jpg" class="img-responsive lazyload" alt="" /> </div> </a> <date>July 3, 2017</date> <h4><a href="https://www.dotnetcurry.com/patterns-practices/1375/behavior-driven-development-bdd">Behavior Driven Development (BDD) – an in-depth look</a></h4> <p class="hidden-xs">Learn how Behavior Driven Development (BDD) works with a real-world example of how to use it.</p> </div> </div> <div class="col-md-3 col-xs-12"> <div class="header-post"> <a href="https://www.dotnetcurry.com/patterns-practices/1305/aspect-oriented-programming-aop-csharp-using-solid"> <div class="hp-thumb"> <img data-src="/img/header/1305.jpg" class="img-responsive lazyload" alt="" /> </div> </a> <date>Sep 25, 2016</date> <h4><a href="https://www.dotnetcurry.com/patterns-practices/1305/aspect-oriented-programming-aop-csharp-using-solid">Aspect Oriented Programming (AOP) in C# with SOLID</a></h4> <p class="hidden-xs">Aspect Oriented Programming (AOP) in C# using SOLID principles, with challenges and solutions.</p> </div> </div> <div class="col-md-3 col-xs-12"> <div class="header-post"> <a href="https://www.dotnetcurry.com/javascript/1359/javascript-frameworks-aspnet-mvc-developer"> <div class="hp-thumb"> <img data-src="/img/header/1359.jpg" class="img-responsive lazyload" alt="" /> </div> </a> <date>Sep 25, 2016</date> <h4><a href="https://www.dotnetcurry.com/javascript/1359/javascript-frameworks-aspnet-mvc-developer">JavaScript Frameworks for ASP.NET MVC Developers</a></h4> <p class="hidden-xs">Learn about a few JavaScript frameworks, and which one will be a good fit in your ASP.NET MVC apps</p> </div> </div> </div> </li> </ul> </li> <li class="dropdown megamenu"> <a href="https://www.dotnetcurry.com/magazine/">.NET Magazines</a> </li> <li class="dropdown dropdown-v1"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">About<span class="fa fa-angle-down"></span></a> <ul class="dropdown-menu"> <li><a href="https://www.dotnetcurry.com/About.aspx">About Us</a></li> <li><a href="https://www.dotnetcurry.com/WriteForUs.aspx">Write For Us</a></li> <li><a href="https://www.dotnetcurry.com/Contact.aspx">Contact Us</a></li> </ul> </li> <!--<li class="dropdown megamenu"> <a href="https://www.dotnetcurry.net/s/dnc-products">Developer Tools</a> </li>--> </ul> </div> <!-- /.navbar-collapse --> </div> </nav> </header> <!--header--> <!-- container --> <div class="container"> <div class="clearfix divborder"> <div class="col-md-8 column"> <div id="ctl00_MainContent_ArticleListing1_catBio" class="author-wrap-new row"> <div class="margin-vertical-20"> <div class="author-image"> <img id="ctl00_MainContent_ArticleListing1_imgCategory" onerror="this.onload = null; this.src='/images/category/NoImage.jpg';" src="https://www.dotnetcurry.com/images/category/72.png" style="border-width:0px;" /> </div> <div class="author-desc"> <h1 class='alheader'>Software Patterns and Practices Tutorials</h1>Recommendations on how to design and develop highly performing applications using best practices. </div> </div> <br /> <div> So far, we have published <b>43 Patterns & Practices tutorials and articles</b>, which have been read by over <b>4158755 (Four Million One Hundred Fifty Eight Thousand Seven Hundred Fifty Five) </b> developers and architects. </div> <hr> </div> <div> <table cellspacing="0" border="0" id="ctl00_MainContent_ArticleListing1_gvwArticles" style="border-collapse:collapse;"> <tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl02_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1575">Tackling Legacy Code</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl02_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Peter Morlion">Peter Morlion</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl02_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 6/29/2021 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1575" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 228682 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> 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. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl02_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1575">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl03_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1557">Coding Practices: The most important ones – Part 3</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl03_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl03_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 11/10/2020 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1557" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 518973 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> 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. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl03_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1557">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl04_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1555">Architecting .NET Desktop and Mobile applications</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl04_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Damir Arh">Damir Arh</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl04_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 10/15/2020 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1555" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 556902 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This tutorial introduces several architectural and design patterns that can be used to implement common scenarios in .NET desktop and mobile applications. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl04_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1555">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl05_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1553">Application Architecture – Getting started</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl05_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Damir Arh">Damir Arh</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl05_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 10/7/2020 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1553" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 466534 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article is an introduction to understand application architecture for the Microsoft technology stack. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl05_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1553">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl06_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1543">Coding practices: The most important ones – Part 2</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl06_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl06_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 7/27/2020 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1543" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 144882 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> 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. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl06_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1543">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl07_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1534">Coding Practices: The most important ones – Part 1</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl07_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl07_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 4/22/2020 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1534" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 119685 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> 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. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl07_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1534">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl08_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1526">The Maybe Monad in C#: More methods</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl08_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl08_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 2/12/2020 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1526" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 71460 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> 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. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl08_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1526">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl09_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1520">Function parameters in C# and the flattened sum type anti-pattern</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl09_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl09_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 12/24/2019 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1520" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 57245 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> 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. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl09_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1520">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl10_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1510">The Maybe Monad (C#)</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl10_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl10_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 9/25/2019 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1510" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 80759 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> In this tutorial, I will talk about the Maybe Monad; a container that represents a value that might or might not exist. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl10_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1510">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl11_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1502">State in Multi-threaded C# Applications</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl11_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl11_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 7/17/2019 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1502" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 34354 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> In this tutorial, I will talk about ways to handle state in multi-threaded C# applications, including race conditions. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl11_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1502">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl12_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1497">Shipping Pseudocode to Production</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl12_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Dobromir Nikolov">Dobromir Nikolov</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl12_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 6/1/2019 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1497" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 26157 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> The article talks about type expressiveness and how we can use the functional Either monad in C# to implement complex business logic that reads as simply as a description of sequential operations. We’ll also look at a technique that allows us to express a complex scenario involving multiple systems as pseudocode and then convert that pseudocode into something we can actually ship to production. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl12_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1497">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl13_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1491">Global State in C# Applications - Part 1</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl13_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl13_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 4/16/2019 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1491" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 44641 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> In this tutorial, I will discuss about global state in C# applications. I will talk about the problems of global state and discuss a solution. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl13_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1491">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl14_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1483">Parallel workflow with the .NET Task Parallel Library (TPL) DataFlow (C#)</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl14_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Riccardo Terrell">Riccardo Terrell</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl14_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 3/10/2019 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1483" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 85152 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This tutorial aims to be a guide for designing and implementing asynchronous and parallel data processing using the TPL Dataflow library from Microsoft. The TPL Dataflow consists of different building "blocks" that you compose in a pipeline fashion to structure your application in a clear way, allowing you to write readable and reusable C# code. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl14_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1483">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl15_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1475">Designing Data Objects in C#: More examples</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl15_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl15_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 1/29/2019 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1475" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 17120 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> In this tutorial, I am going to go through some examples of data object design in C# and discuss some issues with them. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl15_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1475">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl16_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1469">Composing Honest Methods in C#</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl16_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl16_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 12/16/2018 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1469" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 16484 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> In this tutorial, I will provide a proof of concept in C# for composing honest methods. We will see how to create honest programs out of many honest methods. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl16_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1469">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl17_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1464">Writing Pure Code in C#</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl17_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl17_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 10/14/2018 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1464" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 31447 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> In this article, I will work on a C# game that contains impure code and work towards making the code pure. I am going to show you how to use PurityAnalyzer—an experimental Visual Studio extension I wrote—to help you write pure code in C#. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl17_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1464">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl18_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1461">Command Query Separation (CQS) - A simple but powerful pattern</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl18_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Tim Sommer">Tim Sommer</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl18_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 9/30/2018 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1461" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 102352 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This tutorial demonstrates how to design software using the Command Query Separation (CQS) pattern. We will create a console application and will use C#, Entity Framework, Autofac and Log4Net for our example. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl18_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1461">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl19_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1449">Writing Honest Methods in C#</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl19_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl19_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 7/22/2018 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1449" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 56314 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This C# tutorial describes approaches for making methods/functions more honest. A more honest method makes it easier for readers to understand what the method does by reading its signature, i.e., without reading its implementation. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl19_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1449">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl20_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1443">Aspect Oriented Programming in C# via Functions</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl20_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl20_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 6/11/2018 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1443" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 29451 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This tutorial looks at a new approach to AOP called AOP via functions (in C#) as an attempt to mitigate the issues of the CQS approach. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl20_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1443">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl21_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1431">Having a Craftsman Mindset in Software Development</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl21_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Andrei Dragotoniu">Andrei Dragotoniu</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl21_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 4/1/2018 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1431" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 23071 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article highlights that software development is a highly complex process with lots of smaller steps that a Software Craftsman should follow in order to build something of quality. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl21_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1431">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl22_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1429">Designing Data Objects in C# and F#</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl22_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl22_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 3/25/2018 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1429" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 55922 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> Learn how to design multi-threading safe data objects in C# and how to “modify” immutable objects using the DataObjectHelper Visual Studio extension. Also use F# to concisely create our data objects, and use them in C# projects. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl22_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1429">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl23_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1412">The Dataflow Pattern in .NET</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl23_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl23_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 1/18/2018 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1412" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 57770 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article discusses the dataflow pattern, a variant of the producer-consumer pattern, along with examples of applying this pattern in .NET. Finally, you will also be introduced to ProceduralDataflow, a new library I created to help write clean dataflows. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl23_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1412">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl24_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1407">The Producer Consumer Pattern in .NET (C#)</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl24_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl24_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 12/23/2017 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1407" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 98705 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article discusses the producer-consumer pattern in .NET, some reasons why we should use it and demonstrates some examples of how to implement it in .NET. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl24_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1407">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl25_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1406">Flux vs. MVC: Comparing two Application Design Patterns</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl25_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Rahul Sahasrabuddhe">Rahul Sahasrabuddhe</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl25_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 12/18/2017 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1406" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 36757 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> Flux is a new application architecture introduced by Facebook in May 2014. This article compares the MVC architecture with Flux from various perspectives. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl25_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1406">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl26_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1392">Resource management in complex C# applications</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl26_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl26_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 9/26/2017 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1392" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 35297 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article discusses problems and solutions related to resource management in complex C# applications. It also discusses automatic resource management that exists in the .NET framework. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl26_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1392">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl27_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1381">Using Generics in C# to Improve Application Maintainability</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl27_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl27_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 8/5/2017 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1381" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 66014 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article describes how we can use Generics in C# to make our software more resilient to data-related changes, thereby improving its maintainability. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl27_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1381">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl28_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1378">User Experience (UX) - Hype or Reality?</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl28_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Rahul Sahasrabuddhe">Rahul Sahasrabuddhe</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl28_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 7/21/2017 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1378" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 21052 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> Is User Experience (UX) important or is it just a buzzword? This article analyzes the usefulness of UX in an application development process. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl28_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1378">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl29_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1375">Behavior Driven Development (BDD) – an in-depth look</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl29_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Andrei Dragotoniu">Andrei Dragotoniu</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl29_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 7/3/2017 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1375" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 71700 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> The article explains how Behavior Driven Development (BDD) works and provides a real-world example of how to use it to provide meaningful tests which can act as living documentation. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl29_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1375">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl30_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1367">Data and Encapsulation in complex C# applications</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl30_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl30_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 5/22/2017 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1367" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 38616 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article discusses the treatment of data in large C# software applications. More specifically, it discusses runtime data encapsulation, behavior-only encapsulation, and treatment of state. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl30_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1367">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl31_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1364">Error Handling in Large .NET Projects - Best Practices</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl31_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Damir Arh">Damir Arh</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl31_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 5/12/2017 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1364" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 124642 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> Effective error and exception handling in any kind of an application plays an important role in providing a pleasant experience to the user, when unexpected failures occur. This article talks about some effective error handling strategies that you can use in your projects. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl31_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1364">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl32_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1337">Automated Testing using the Composition Root</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl32_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl32_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 4/19/2017 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1337" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 26234 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article describes how to do unit and integration testing using the Composition Root as the source of Systems Under Test (SUTs). </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl32_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1337">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl33_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1358">Code Quality in the .NET Ecosystem</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl33_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Daniel Jimenez Garcia">Daniel Jimenez Garcia</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl33_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 4/7/2017 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1358" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 51045 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> We will discuss Code Quality in the .Net ecosystem, with a brief look at tools included in Visual Studio and other third-party commercial tools. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl33_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1358">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl34_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1350">Singleton in C# – Pattern or Anti-pattern</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl34_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Damir Arh">Damir Arh</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl34_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 3/13/2017 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1350" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 71216 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> Singleton is one of the basic software design patterns, but if not implemented correctly can introduce complications in your application. This article discusses common use cases where you should avoid the Singleton pattern. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl34_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1350">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl35_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1318">Aspect Oriented Programming (AOP) in C# via T4</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl35_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl35_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 11/12/2016 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1318" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 30846 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> C# examples on how we can use the Text Template Transformation Toolkit (T4) to create aspects. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl35_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1318">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl36_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1092">.NET Design Patterns in C# – A Fresh Look</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl36_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Raj Aththanayake">Raj Aththanayake</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl36_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 10/10/2016 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1092" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 149541 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article focuses on .NET Design Patterns using C# and takes a fresh view of some of the existing ones and see how we can go about using them in real world dilemmas and concerns. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl36_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1092">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl37_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1305">Aspect Oriented Programming (AOP) in C# with SOLID</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl37_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl37_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 9/10/2016 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1305" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 178059 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> Aspect Oriented Programming (AOP) in C# using SOLID principles. We will discuss challenges posed by context-independence in SOLID code bases, and provide a solution for them. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl37_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1305">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl38_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1297">Being Agile in the World of Fixed Bid Projects</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl38_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Subodh Sohoni">Subodh Sohoni</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl38_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 7/25/2016 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1297" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 26467 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> Agility and contractual development against a fixed price are conceptually two ends of a spectrum. In this article, we will see an option for companies to be agile even when they are executing a contractual fixed bid project </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl38_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1297">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl39_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1295">Object Composition with SOLID</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl39_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl39_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 7/18/2016 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1295" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 58000 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article demonstrates how Object Composition with SOLID helps an application evolve. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl39_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1295">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl40_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1285">Clean Composition Roots with Pure Dependency Injection (DI)</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl40_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl40_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 5/26/2016 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1285" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 61044 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> Using Pure DI and the single level of abstraction per function rule to create Composition Roots that we can understand and navigate easily </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl40_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1285">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl41_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1259">Liskov Substitution Principle and the Composition Root - A Perspective</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl41_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Yacoub Massad">Yacoub Massad</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl41_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 3/11/2016 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1259" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 32820 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article presents a perspective of Liskov Substitution Principle (LSP) and presents an argument against some interpretation and practices of LSP that some people have/follow. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl41_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1259">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl42_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1078">12 Unit Testing Myths and Practices</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl42_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Eli Lopian">Eli Lopian</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl42_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 1/27/2015 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1078" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 42108 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> This article presents the most widely misunderstood concepts about unit testing today and provides relevant information about how the practice actually occurs. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl42_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1078">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl43_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1030">Essential IT Admin Skills for .NET Developers</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl43_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Omar Al Zabir">Omar Al Zabir</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl43_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 7/28/2014 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="1030" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 49302 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> Essential IT Admin skills that every .NET developer should have before going Live. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl43_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=1030">Read More ...</a> </div> </div> </td> </tr><tr> <td> <div class="articlebox"> <div class="row"> <div class="articletitle"> <h2 class="articlehead"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl44_lnkTitle" class="artid" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=683">BizTalk Best Practices & Coding Guidelines for the IT Services Industry</a> </h2> <b>Authored by: </b> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl44_lblAddedBy" href="https://www.dotnetcurry.com/Author.aspx?AuthorName=Ambar Ray">Ambar Ray</a> in <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl44_lnkCategory" href="https://www.dotnetcurry.com/BrowseArticles.aspx?CatID=72">Patterns & Practices</a> on 4/6/2011 <br /> </div> </div> <div class="row"> <div class="articlestats"> <div class="stats1"> <div data-id="683" class="socialshare"> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> </g> </svg> <span class="fbsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g> <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> </g> </svg> <span class="twtsharelinktop"></span> </div> </div> </a> <a class="resp-sharing-button__link" target="_blank" aria-label=""> <div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg> <span class="linkdinsharelinktop"></span> </div> </div> </a> <span class="font-custom"><i class="fa fa-eye"></i> 63933 views </span> </div> </div> </div> </div> <div class="row"> <div class="articleabstract"> <b>Abstract: </b> There are many best practices articles and coding guidelines for BizTalk, that are floating around the net, but they are not very conducive and pragmatic enough to the ‘IT services’ industry (especially in an offshore development model), to leverage them in their turnkey or T&M projects. This article attempts to fill those gaps. </div> </div> <div class="row"> <a id="ctl00_MainContent_ArticleListing1_gvwArticles_ctl44_HyperLink1" class="readmore" href="https://www.dotnetcurry.com/ShowArticle.aspx?ID=683">Read More ...</a> </div> </div> </td> </tr> </table> </div> <br /> <div class="col-md-12 visible-md visible-lg"> <small><b>Article Filter :</b></small> <select name="ctl00$MainContent$ArticleListing1$ddlCategories" onchange="javascript:setTimeout('__doPostBack(\'ctl00$MainContent$ArticleListing1$ddlCategories\',\'\')', 0)" id="ctl00_MainContent_ArticleListing1_ddlCategories"> <option value="0">All categories</option> <option value="63">jQuery and ASP.NET</option> <option value="67">ASP.NET MVC</option> <option value="73">Microsoft Azure</option> <option value="54">ASP.NET</option> <option value="60">Visual Studio</option> <option value="56">Silverlight 2, 3, 4 and 5</option> <option value="59">ASP.NET AJAX</option> <option value="70">Windows Phone</option> <option value="48">Expression Web</option> <option value="71">Entity Framework</option> <option value="62">LINQ</option> <option value="66">.NET Framework</option> <option value="69">.NET 3.5</option> <option value="68">WPF</option> <option value="47">WinForms & WinRT</option> <option value="55">C#</option> <option value="65">SharePoint</option> <option value="64">Product Articles</option> <option value="61">General Topics</option> <option value="77">Office Apps</option> <option value="52">Windows Vista</option> <option value="75">Windows Store Apps</option> <option value="74">DNC Magazine</option> <option value="50">Expression Blend</option> <option value="51">Word 2007</option> <option value="57">Outlook 2007</option> <option value="58">Interview Questions</option> <option selected="selected" value="72">Patterns & Practices</option> <option value="86">Xamarin</option> <option value="89">.NET Standard & .NET Core</option> <option value="80">AngularJS</option> <option value="88">ASP.NET Core</option> <option value="79">Backbone.js</option> <option value="91">Bootstrap & CSS</option> <option value="94">DevOps</option> <option value="78">HTML5 & JavaScript</option> <option value="93">JavaScript</option> <option value="90">Machine Learning & AI</option> <option value="81">Node.js</option> <option value="83">Powershell</option> <option value="96">Project Management</option> <option value="87">Reactjs</option> <option value="82">Software Gardening</option> <option value="84">TypeScript</option> <option value="92">VSTS & TFS (Azure DevOps)</option> <option value="95">Vue.js</option> <option value="76">Windows Communication Foundation (WCF)</option> <option value="85">Windows Store Apps</option> </select><br /> <small><b>Per page:</b></small> <select name="ctl00$MainContent$ArticleListing1$ddlArticlesPerPage" onchange="javascript:setTimeout('__doPostBack(\'ctl00$MainContent$ArticleListing1$ddlArticlesPerPage\',\'\')', 0)" id="ctl00_MainContent_ArticleListing1_ddlArticlesPerPage"> <option value="5">5</option> <option value="10">10</option> <option value="25">25</option> <option selected="selected" value="50">50</option> <option value="100">100</option> </select><br /><br /> </div> </div> <div id="rightcol" class="col-md-4"> <!-- <div class="row"> <div class="spacerforsearch"> <div class="input-group"> <input name="ctl00$searchbox" id="ctl00_searchbox" type="text" class="form-control" placeholder="Search DotNetCurry.com for..." onFocus="this.className = 'form-control'" style="border-color:#94C7EF;border-width:1px;border-style:solid;width:100%" /> <span class="input-group-btn"> <input type="submit" name="ctl00$SearchButton" value="Go!" id="ctl00_SearchButton" class="btn btn-default" type="button" /> </span> </div> </div> </div> --> <div class="margin-vertical-20" /> <div class="side-widget"> <div class="featured-tools"> <span>Featured Tools</span> <div id="creatives"> <div id='ban-pos-1' style='display: none'> </div> <div id='ban-pos-2'> <div class="padding-vertical-10"></div> </div> <div id='ban-pos-3'> </div> <div class="padding-vertical-10"></div> <div id='ban-pos-4-250'> </div> <div id='ban-pos-5-250'> </div> <div id='ban-pos-6-250'> </div> </div> </div> </div> <div class="sec-title"> <h4>Categories</h4> </div> <div class="side-widget"> <ul id="toggle-view"> <li> <h3>.NET Web</h3> <span class="fa fa-angle-down"></span> <div class="toggle-panel"> <div> <a href="https://www.dotnetcurry.com/tutorials/aspnet">ASP.NET</a> <a href="https://www.dotnetcurry.com/tutorials/aspnet-mvc">ASP.NET MVC</a> </div> <div> <a href="https://www.dotnetcurry.com/tutorials/aspnet-core">ASP.NET Core</a> <a href="https://www.dotnetcurry.com/tutorials/aspnet-ajax">ASP.NET AJAX</a> </div> <div> <a href="https://www.dotnetcurry.com/tutorials/sharepoint">SharePoint</a> <a href="https://www.dotnetcurry.com/tutorials/wcf">WCF</a> </div> </div> </li> <li> <h3>.NET Framework, Visual Studio and C#</h3> <span class="fa fa-angle-down"></span> <div class="toggle-panel"> <div> <a href="https://www.dotnetcurry.com/tutorials/csharp">C#</a> <a href="https://www.dotnetcurry.com/tutorials/linq">LINQ</a> </div> <div> <a href="https://www.dotnetcurry.com/tutorials/visualstudio">Visual Studio</a> <a href="https://www.dotnetcurry.com/tutorials/vsts-tfs">VSTS & TFS</a> </div> <div> <a href="https://www.dotnetcurry.com/tutorials/entityframework">Entity Framework</a> <a href="https://www.dotnetcurry.com/tutorials/dotnetframework">.NET Framework</a> </div> <div> <a href="https://www.dotnetcurry.com/tutorials/dotnet-standard-core">.NET Standard & .NET Core</a> </div> </div> </li> <li> <h3>Patterns & Practices</h3> <span class="fa fa-angle-down"></span> <div class="toggle-panel"> <div> <a href="https://www.dotnetcurry.com/tutorials/patterns-practices">Design Patterns</a> <a href="https://www.dotnetcurry.com/tutorials/software-gardening">Software Gardening</a> </div> </div> </li> <li> <h3>Cloud and Mobile</h3> <span class="fa fa-angle-down"></span> <div class="toggle-panel"> <div> <a href="https://www.dotnetcurry.com/tutorials/windows-azure">Microsoft Azure</a> <a href="https://www.dotnetcurry.com/tutorials/xamarin">Xamarin</a> </div> <div> <a href="https://www.dotnetcurry.com/tutorials/powershell">Powershell</a> <a href="https://www.dotnetcurry.com/tutorials/machine-learning-ai">Machine Learning & AI</a> </div> <div> <a href="https://www.dotnetcurry.com/tutorials/windows-store">UWP & Windows Store</a> <a href="https://www.dotnetcurry.com/tutorials/windowsphone">Windows Phone</a> </div> </div> </li> <li> <h3>JavaScript</h3> <span class="fa fa-angle-down"></span> <div class="toggle-panel"> <div> <a href="https://www.dotnetcurry.com/tutorials/typescript">TypeScript</a> <a href="https://www.dotnetcurry.com/tutorials/angularjs">Angular</a> </div> <div> <a href="https://www.dotnetcurry.com/tutorials/jquery-aspnet">jQuery</a> <a href="https://www.dotnetcurry.com/tutorials/nodejs">Node.js</a> </div> <div> <a href="https://www.dotnetcurry.com/tutorials/reactjs">React.js</a> <a href="https://www.dotnetcurry.com/tutorials/backbonejs">Backbone.js</a> </div> <div> <a href="https://www.dotnetcurry.com/tutorials/html5-javascript">HTML5 & JavaScript</a> <a href="https://www.dotnetcurry.com/tutorials/bootstrap-css">Bootstrap & CSS</a> </div> </div> </li> <li> <h3>.NET Desktop</h3> <span class="fa fa-angle-down"></span> <div class="toggle-panel"> <div> <a href="https://www.dotnetcurry.com/tutorials/wpf">WPF</a> <a href="https://www.dotnetcurry.com/tutorials/winforms">WinForms</a> </div> </div> </li> <li> <h3>Interview Questions & Product Reviews</h3> <span class="fa fa-angle-down"></span> <div class="toggle-panel"> <div> <a href="https://www.dotnetcurry.com/tutorials/dotnetinterview">.NET Interview Q&A</a> <a href="https://www.dotnetcurry.com/tutorials/product-articles-review">Product Reviews</a> </div> <div> <a href="https://www.dotnetcurry.com/tutorials/general-programming-topics">General Topics</a> </div> </div> </li> </ul> </div> <div class="sec-title"> <h3><b>JOIN OUR COMMUNITY</b></h3> </div> <div class="side-widget"> <div class="side-social"> <a href="https://www.facebook.com/dotnetcurry"><i class="fa fa-facebook"></i> 50K+ <span>fans</span></a> <a href="https://www.twitter.com/dotnetcurry"><i class="fa fa-twitter"></i> 8K+ <span>followers</span></a> <a href="https://www.dotnetcurry.com/magazine/"><i class="fa fa-envelope"></i> 128K+ <span>subscribers</span></a> </div> </div> <div class="sec-title"> <h3><b>POPULAR ARTICLES</b></h3> </div> <div id="latestart" class="side-widget"> <div> <br /> <br /> <br /> </div> </div> <div id='ban-pos-7-600'> </div> <div id='ban-pos-8-600'> </div> <div class="sec-title-plain"> <h4>Tags</h4> </div> <div class="side-widget"> <div class="tags"> <a href="https://www.dotnetcurry.com/tutorials/aspnet-mvc">ASP.NET MVC</a> <a href="https://www.dotnetcurry.com/tutorials/aspnet-core">ASP.NET Core</a> <a href="https://www.dotnetcurry.com/tutorials/aspnet">ASP.NET</a> <a href="https://www.dotnetcurry.com/tutorials/sharepoint">SharePoint</a> <a href="https://www.dotnetcurry.com/tutorials/patterns-practices">Design Patterns</a> <a href="https://www.dotnetcurry.com/tutorials/csharp">C#</a> <a href="https://www.dotnetcurry.com/tutorials/linq">LINQ</a> <a href="https://www.dotnetcurry.com/tutorials/wpf">WPF</a> <a href="https://www.dotnetcurry.com/tutorials/wcf">WCF</a> <a href="https://www.dotnetcurry.com/tutorials/visualstudio">Visual Studio</a> <a href="https://www.dotnetcurry.com/tutorials/vsts-tfs">VSTS & TFS</a> <a href="https://www.dotnetcurry.com/tutorials/windows-azure">Azure</a> <a href="https://www.dotnetcurry.com/tutorials/entityframework">Entity Framework</a> <a href="https://www.dotnetcurry.com/tutorials/angularjs">Angular.js</a> <a href="https://www.dotnetcurry.com/tutorials/reactjs">React.js</a> <a href="https://www.dotnetcurry.com/tutorials/jquery-aspnet">jQuery</a> <a href="https://www.dotnetcurry.com/tutorials/html5-javascript">JavaScript</a> <a href="https://www.dotnetcurry.com/tutorials/html5-javascript">HTML5</a> <a href="https://www.dotnetcurry.com/tutorials/dotnet-standard-core">.NET Core</a> <a href="https://www.dotnetcurry.com/tutorials/dotnetframework">.NET Framework</a> </div> </div> <div class="sec-title"> <h3><b>JQUERY COOKBOOK</b></h3> </div> <div class="side-widget"> <a href="http://www.jquerycookbook.com"><img src="https://www.dotnetcurry.com/images/books/300x300-jqckbk.png" alt="jQuery CookBook" /></a> </div> </div> </div> </div> <!-- container --> </div> <!-- footer --> <footer class="margin-top-30"> <div class="container"> <div class="footer-head"> <div class="row center-content"> <div class="col-md-2 col-sm-3"> <a href="https://www.dotnetcurry.com"> <img data-src="/img/dnc-logo-tee-trans.png" class="img-responsive lazyload" alt="" /> </a> </div> <div class="col-md-6 col-sm-4"> <p></p> </div> <!--<div class="col-md-4 col-sm-5"> <form class="footer-search"> <input type="search" placeholder="Search"> <button type="submit"><i class="fa fa-search"></i></button> </form> </div>--> </div> </div> <div class="footer-content"> <div class="row"> <div class="col-sm-2"> <h5 class="text-white">Server-Side</h5> <ul class="footer-links"> <li><a href="https://www.dotnetcurry.com/tutorials/aspnet">ASP.NET</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/aspnet-core">ASP.NET Core</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/aspnet-mvc">ASP.NET MVC</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/wcf">WCF</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/sharepoint">SharePoint</a></li> </ul> </div> <div class="col-sm-2"> <h5 class="text-white">Client-side</h5> <ul class="footer-links"> <li><a href="https://www.dotnetcurry.com/tutorials/angularjs">Angular.js</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/reactjs">React.js</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/jquery-aspnet">jQuery</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/backbonejs">Backbone.js</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/html5-javascript">HTML5</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/bootstrap-css">CSS</a></li> </ul> </div> <div class="col-sm-2"> <h5 class="text-white">.NET</h5> <ul class="footer-links"> <li><a href="https://www.dotnetcurry.com/tutorials/csharp">C#</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/visualstudio">Visual Studio</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/vsts-tfs">VSTS & TFS</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/linq">LINQ</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/entityframework">Entity Framework</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/dotnetframework">.NET Framework</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/dotnet-standard-core">.NET Standard & .NET Core</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/wpf">WPF</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/winforms">WinForms</a></li> </ul> </div> <div class="col-sm-2"> <h5 class="text-white">Cloud and Mobile</h5> <ul class="footer-links"> <li><a href="https://www.dotnetcurry.com/tutorials/windows-azure">Microsoft Azure</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/devops">DevOps</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/xamarin">Xamarin</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/powershell">Powershell</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/machine-learning-ai">Machine Learning & AI</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/windows-store">UWP & Windows Store</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/windowsphone">Windows Phone</a></li> </ul> </div> <div class="col-sm-2"> <h5 class="text-white">Skill Up</h5> <ul class="footer-links"> <li><a href="https://www.dotnetcurry.com/tutorials/patterns-practices">Design Patterns</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/software-gardening">Software Gardening</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/dotnetinterview">.NET Interview Q&A</a></li> <li><a href="https://www.dotnetcurry.com/magazine/" class="last">Magazines</a></li> <li><a href="http://www.jquerycookbook.com/">Books</a></li> <li><a href="https://www.dotnetcurry.com/tutorials/product-articles-review">Product Reviews</a></li> </ul> </div> <div class="col-sm-2"> <h5 class="text-white">Follow Us</h5> <ul class="footer-social"> <li><a href="https://www.facebook.com/dotnetcurry">Facebook</a></li> <li><a href="https://www.twitter.com/dotnetcurry">Twitter</a></li> <li><a href="https://github.com/dotnetcurry">Github</a></li> </ul> </div> </div> </div> <div class="footer-bottom"> <div class="row"> <div class="col-sm-6"> <p>© 2007-2023 DotNetCurry.com (A subsidiary of A2Z Knowledge Visuals Pvt. Ltd). All rights reserved.</p> </div> <div class="col-sm-6 text-right"> <ul class="list-inline"> <li><a href="https://www.dotnetcurry.com/Contact.aspx">Contact Us</a></li> <li><a href="https://www.dotnetcurry.com/WriteForUs.aspx">Write For Us</a></li> <li><a href="https://www.dotnetcurry.com/PrivacyPolicy.aspx">Privacy</a></li> <li><a href="https://www.dotnetcurry.com/terms-conditions">Terms</a></li> </ul> </div> </div> </div> </div> </footer> <!-- footer --> </form> <script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js"></script> <script src="/bundles/scriptsmin?v=ztXW8lGCJchjv7iQbaTOZjTpSGfOrLg1lKllrWansXI1"></script> <script src="/bundles/framework?v=yOkBizHgoWwNt4OFd4FauUxu9fucEJ_a4EJrci8uIGA1"></script> <script type="text/javascript"> SyntaxHighlighter.defaults['auto-links'] = false; SyntaxHighlighter.defaults['gutter'] = false; SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all() </script> <script> $(function () { $('.tabHeader').children().first().addClass('current'); $('.tabContent').children().first().addClass('current'); $('.tabHeader li').click(function (e) { e.preventDefault(); $(this).siblings('.current').removeClass('current'); $(this).addClass('current'); $('.tabContent').children('.current').removeClass('current'); $('.tabContent').children().eq($(this).index()).addClass('current'); }); }); </script> <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.5.18/webfont.js"></script> <script> WebFont.load({ google: { families: ['Hind Vadodara:300,400,500,600,700'] } }); </script> </body> </html>