<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Code4IT</title>
    <link>https://www.code4it.dev/</link>
    <description>Recent content on Code4IT</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Tue, 03 Mar 2026 00:00:00 +0000</lastBuildDate>
    
        <atom:link href="https://www.code4it.dev/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Python for .NET devs: Introduction, virtual environments, package management, and execution lifecycle</title>
      <link>https://www.code4it.dev/python-for-dotnet-developers/intro-to-python/</link>
      <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/python-for-dotnet-developers/intro-to-python/</guid>
      <description>Are you a .NET developer looking to learn Python? Me too! In this article we draw parallels between Python and .NET basic concepts, exploring virtual environments, package management with pip, and the execution lifecycle.</description>
    </item>
    
    <item>
      <title>Readonly vs Immutable vs Frozen in C#: differences and (a lot of) benchmarks</title>
      <link>https://www.code4it.dev/blog/readonly-vs-immutable-vs-frozen/</link>
      <pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/readonly-vs-immutable-vs-frozen/</guid>
      <description>The words ReadOnly, Immutable, Frozen seem similar but have distinct meanings in .NET. Here&amp;rsquo;s a detailed comparison of Readonly, Immutable, and Frozen collections in C#, with benchmarks and typical use cases.</description>
    </item>
    
    <item>
      <title>Code opinion: why I prefer avoiding the Async suffix in C# asynchronous methods</title>
      <link>https://www.code4it.dev/blog/code-opinion-async-suffix/</link>
      <pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/code-opinion-async-suffix/</guid>
      <description>Should every asynchronous method name end with Async? Does it bring more benefits or more downsides? Let&amp;rsquo;s reason about this habit, which is common among C# developers.</description>
    </item>
    
    <item>
      <title>[C# Tip] How to create and access custom C# Attributes by using Reflection</title>
      <link>https://www.code4it.dev/csharptips/custom-csharp-attributes-reflection/</link>
      <pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/custom-csharp-attributes-reflection/</guid>
      <description>In C#, Attributes are a handy mechanism to attach metadata to your classes, methods, properties, etc. In this article, we will see how to create custom Attributes and access them at runtime using Reflection.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Metrics, Logs, and Traces: the three pillars of Observability</title>
      <link>https://www.code4it.dev/architecture-notes/metrics-logs-traces/</link>
      <pubDate>Tue, 18 Nov 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/metrics-logs-traces/</guid>
      <description>Learn the differences between metrics, logs, and traces - the three pillars of Observability in distributed systems - and how to use them effectively.</description>
    </item>
    
    <item>
      <title>Things I learned after speaking at my first Big International Conference</title>
      <link>https://www.code4it.dev/blog/after-first-big-tech-conference/</link>
      <pubDate>Tue, 04 Nov 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/after-first-big-tech-conference/</guid>
      <description>It&amp;rsquo;s easy to say &amp;lsquo;Public Speaking&amp;rsquo;. But there are lots of factors that you can (and should) consider when talking to an international audience, especially if English is not your first language.</description>
    </item>
    
    <item>
      <title>Introducing the Testing Vial: a (better?) alternative to Testing Diamond and Testing Pyramid</title>
      <link>https://www.code4it.dev/blog/testing-vial/</link>
      <pubDate>Sun, 12 Oct 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/testing-vial/</guid>
      <description>The Testing Pyramid focuses on Unit Tests; the Testing Diamond focuses on Integration Tests; and what about the Testing Vial?</description>
    </item>
    
    <item>
      <title>C# Tip: injecting and testing the current time with TimeProvider and FakeTimeProvider</title>
      <link>https://www.code4it.dev/csharptips/timeprovider-faketimeprovider/</link>
      <pubDate>Tue, 02 Sep 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/timeprovider-faketimeprovider/</guid>
      <description>Dates used to be difficult to test. But with TimeProvider and FakeTimeProvider, everything becomes possible!</description>
    </item>
    
    <item>
      <title>Build your own Static Code Analysis tool in .NET by knowing how Assembly, Type, MethodInfo, ParameterInfo work.</title>
      <link>https://www.code4it.dev/blog/assembly-type-methodinfo-parameterinfo/</link>
      <pubDate>Tue, 29 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/assembly-type-methodinfo-parameterinfo/</guid>
      <description>Why buy a whole tool when you can build your own? Learn how the Type system works in .NET, and create your own minimal type analyser.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Software Architecture vs Software Design</title>
      <link>https://www.code4it.dev/architecture-notes/software-architecture-vs-software-design/</link>
      <pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/software-architecture-vs-software-design/</guid>
      <description>Software Architecture and Software Design are terms that look similar but refer to two totally different aspects of software. Let&amp;rsquo;s find the differences and their purposes.</description>
    </item>
    
    <item>
      <title>C# Tip: Handling exceptions with Task.WaitAll and Task.WhenAll</title>
      <link>https://www.code4it.dev/csharptips/task-whenall-vs-task-waitall-error-handling/</link>
      <pubDate>Tue, 10 Jun 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/task-whenall-vs-task-waitall-error-handling/</guid>
      <description>Task.WhenAll and Task.WaitAll are common methods in C# that allow you to execute multiple Tasks. But&amp;hellip; what happens when an exception is thrown?</description>
    </item>
    
    <item>
      <title>How to run SonarQube analysis locally with Docker</title>
      <link>https://www.code4it.dev/blog/sonarqube-local-with-docker/</link>
      <pubDate>Tue, 27 May 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/sonarqube-local-with-docker/</guid>
      <description>The quality of a project can be measured by having a look at how the code is written. SonarQube can help you by running static code analysis and letting you spot the pain points. Let&amp;rsquo;s learn how to install and run it locally with Docker.</description>
    </item>
    
    <item>
      <title>Harnessing the Power of Jitter: Enhancing Retry Patterns with a bit of randomness</title>
      <link>https://www.code4it.dev/architecture-notes/retry-patterns-jitter/</link>
      <pubDate>Tue, 06 May 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/retry-patterns-jitter/</guid>
      <description>Operations may fail for transient reasons. How can you implement retry patterns? And how can a simple Jitter help you stabilize the system?</description>
    </item>
    
    <item>
      <title>C# Tip: An In-Depth Look at CallerMemberName (and some Compile-Time trivia)</title>
      <link>https://www.code4it.dev/csharptips/callermembername-attribute/</link>
      <pubDate>Tue, 25 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/callermembername-attribute/</guid>
      <description>Let&amp;rsquo;s dive deep into the CallerMemberName attribute and explore its usage from multiple angles. We&amp;rsquo;ll see various methods of invoking it, shedding light on how it is defined at compile time.</description>
    </item>
    
    <item>
      <title>How to log to Azure Application Insights using ILogger in ASP.NET Core</title>
      <link>https://www.code4it.dev/blog/azure-application-insights-ilogger-aspnetcore/</link>
      <pubDate>Tue, 18 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/azure-application-insights-ilogger-aspnetcore/</guid>
      <description>Application Insights is a great tool for handling high volumes of logs. How can you configure an ASP.NET application to send logs to Azure Application Insights? What can I do to have Application Insights log my exceptions?</description>
    </item>
    
    <item>
      <title>D2: like Mermaid, but better. Syntax, installation, and practical usage tips</title>
      <link>https://www.code4it.dev/architecture-notes/d2-diagrams/</link>
      <pubDate>Tue, 04 Feb 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/d2-diagrams/</guid>
      <description>D2 is an open-source tool to design architectural layouts using a declarative syntax. It&amp;rsquo;s a textual format, which can also be stored under source control. Let&amp;rsquo;s see how it works, how you can install it, and some practical usage tips.</description>
    </item>
    
    <item>
      <title>C# Tip: How to create Custom Attributes, and why they are useful</title>
      <link>https://www.code4it.dev/csharptips/create-custom-csharp-attributes/</link>
      <pubDate>Tue, 21 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/create-custom-csharp-attributes/</guid>
      <description>Applying custom attributes to C# classes and interfaces can be useful for several reasons. Let&amp;rsquo;s learn how to create Custom Attributes in C#, and let&amp;rsquo;s explore some practical usage!</description>
    </item>
    
    <item>
      <title>HTTP Logging in ASP.NET: how to automatically log all incoming HTTP requests (and its downsides!)</title>
      <link>https://www.code4it.dev/blog/httplogging-asp-net/</link>
      <pubDate>Tue, 14 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/httplogging-asp-net/</guid>
      <description>Aren&amp;rsquo;t you tired of adding manual logs to your HTTP APIs to log HTTP requests and responses? By using a built-in middleware in ASP.NET, you will be able to centralize logs management and have a clear view of all the incoming HTTP requests.</description>
    </item>
    
    <item>
      <title>Fitness Functions in Software Architecture: measuring things to ensure prosperity</title>
      <link>https://www.code4it.dev/architecture-notes/fitness-functions/</link>
      <pubDate>Tue, 07 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/fitness-functions/</guid>
      <description>Non-functional requirements matter, but we often forget to validate them. You can measure them by setting up Fitness Functions.</description>
    </item>
    
    <item>
      <title>C# Tip: 2 ways to generate realistic data using Bogus</title>
      <link>https://www.code4it.dev/csharptips/bogus-data-generation/</link>
      <pubDate>Tue, 03 Dec 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/bogus-data-generation/</guid>
      <description>Bogus is a library that generates realistic values for your data. When populating fake user names, instead of Foo and Bar, you can have John and Sarah. Let&amp;rsquo;s see two ways to define and reuse a Faker definition.</description>
    </item>
    
    <item>
      <title>Easy logging management with Seq and ILogger in ASP.NET</title>
      <link>https://www.code4it.dev/blog/logging-with-ilogger-and-seq/</link>
      <pubDate>Tue, 19 Nov 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/logging-with-ilogger-and-seq/</guid>
      <description>Seq is one of the best Log Sinks out there : it&amp;rsquo;s easy to install and configure, and can be added to an ASP.NET application with just a line of code.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - the Error Management Trio, and how it affects your software architecture</title>
      <link>https://www.code4it.dev/architecture-notes/error-management-trio/</link>
      <pubDate>Tue, 05 Nov 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/error-management-trio/</guid>
      <description>When designing a software system, we naturally focus more on the happy flow. But we should carefully plan to handle errors that fall into three categories: Validation, Transient, and Fatal.</description>
    </item>
    
    <item>
      <title>C# Tip: IEnumerable vs ICollection, and why it matters</title>
      <link>https://www.code4it.dev/csharptips/ienumerable-vs-icollection/</link>
      <pubDate>Tue, 15 Oct 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/ienumerable-vs-icollection/</guid>
      <description>When working with Lists in C#, you are working on a data structure that implements both ICollection and IEnumerable. What&amp;rsquo;s the difference between ICollection and IEnumerable? Why should you care about them, especially when exposing functionalities to external clients?</description>
    </item>
    
    <item>
      <title>How to use IHttpClientFactory and WireMock.NET together using Moq</title>
      <link>https://www.code4it.dev/blog/wiremock-ihttpclientfactory-moq/</link>
      <pubDate>Tue, 01 Oct 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/wiremock-ihttpclientfactory-moq/</guid>
      <description>WireMock.NET is a popular library used to simulate network communication through HTTP. But there is no simple way to integrate the generated in-memory server with an instance of IHttpClientFactory injected via constructor. Right? Wrong!</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Practical creation of C4 Model diagrams with Structurizr</title>
      <link>https://www.code4it.dev/architecture-notes/c4-model-diagrams/</link>
      <pubDate>Tue, 17 Sep 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/c4-model-diagrams/</guid>
      <description>The C4 Model is one of the most famous ways to describe software architectures. Let&amp;rsquo;s see some practical usage with Strucutrizr.</description>
    </item>
    
    <item>
      <title>C# Tip: 2 ways to use custom equality rules in a HashSet</title>
      <link>https://www.code4it.dev/csharptips/hashset-custom-equality/</link>
      <pubDate>Tue, 27 Aug 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/hashset-custom-equality/</guid>
      <description>With HashSet, you can get a list of different items in a performant way. What if you need a custom way to define when two objects are equal?</description>
    </item>
    
    <item>
      <title>Postman&#39;s pre-request scripts: how to perform HTTP POST requests (with JSON body) and how to set Cookie authentication.</title>
      <link>https://www.code4it.dev/blog/postman-prerequest-script-cookie-auth/</link>
      <pubDate>Tue, 20 Aug 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/postman-prerequest-script-cookie-auth/</guid>
      <description>In Postman, you can define scripts to be executed before the beginning of a request. Can we use them to work with endpoints using Cookie Authentication?</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Web APIs vs REST APIs vs pseudo-REST APIs</title>
      <link>https://www.code4it.dev/architecture-notes/webapi-vs-rest-vs-pseudo-rest/</link>
      <pubDate>Tue, 30 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/webapi-vs-rest-vs-pseudo-rest/</guid>
      <description>When describing a web service, people often use the wrong terms. Are you really creating a REST API, or is it some sort of pseudo-REST?</description>
    </item>
    
    <item>
      <title>C# Tip: Mark a class as Sealed to prevent subclasses creation</title>
      <link>https://www.code4it.dev/csharptips/sealed-classes/</link>
      <pubDate>Tue, 16 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/sealed-classes/</guid>
      <description>The sealed keyword is often ignored, yet it can be important to define a proper class design.</description>
    </item>
    
    <item>
      <title>Seeding in-memory Entity Framework with realistic data with Bogus</title>
      <link>https://www.code4it.dev/blog/seed-inmemory-entityframework-bogus/</link>
      <pubDate>Tue, 09 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/seed-inmemory-entityframework-bogus/</guid>
      <description>You don&amp;rsquo;t need a physical database to experiment with ORMs. You can use an in-memory DB and seed the database with realistic data generated with Bogus.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Arc42 Documentation, for a comprehensive description of your project</title>
      <link>https://www.code4it.dev/architecture-notes/arc42-documentation/</link>
      <pubDate>Tue, 02 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/arc42-documentation/</guid>
      <description>How is your project structured? What are the driving forces? If you don&amp;rsquo;t know how to express this info, you should try the Arc42 template to create a strong foundation for your documentation.</description>
    </item>
    
    <item>
      <title>C# Tip: Path.Combine and Path.Join are similar but way different.</title>
      <link>https://www.code4it.dev/csharptips/path-combine-vs-path-join/</link>
      <pubDate>Tue, 25 Jun 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/path-combine-vs-path-join/</guid>
      <description>When composing the path to a folder or file location, the &lt;code&gt;Path&lt;/code&gt; class can come in handy. &lt;code&gt;Path.Join&lt;/code&gt; and &lt;code&gt;Path.Combine&lt;/code&gt; may look similar, but their behavior differ in an unexpected way.</description>
    </item>
    
    <item>
      <title>Getting started with Load testing with K6 on Windows 11</title>
      <link>https://www.code4it.dev/blog/k6-load-testing/</link>
      <pubDate>Tue, 18 Jun 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/k6-load-testing/</guid>
      <description>Can your system withstand heavy loads? You can answer this question by running Load Tests. Maybe, using K6 as a free tool.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Introducing SLI, SLO, and SLA</title>
      <link>https://www.code4it.dev/architecture-notes/sli-vs-slo-vs-sla/</link>
      <pubDate>Tue, 19 Mar 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/sli-vs-slo-vs-sla/</guid>
      <description>Non-functional requirements. How can you ensure you meet them? Let&amp;rsquo;s understand SLO, SLA, and SLI, and how they affect your SDLC.</description>
    </item>
    
    <item>
      <title>Why reaching 100% Code Coverage must NOT be your testing goal (with examples in C#)</title>
      <link>https://www.code4it.dev/blog/code-coverage-must-not-be-the-target/</link>
      <pubDate>Tue, 12 Mar 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/code-coverage-must-not-be-the-target/</guid>
      <description>Average teams aim at 100% Code Coverage just to reach the number. Great teams don&amp;rsquo;t. Why?</description>
    </item>
    
    <item>
      <title>C# Tip: IFormattable interface, to define different string formats for the same object</title>
      <link>https://www.code4it.dev/csharptips/iformattable-interface/</link>
      <pubDate>Tue, 27 Feb 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/iformattable-interface/</guid>
      <description>Same object, different string representations. How do we achieve it in a standardised way?</description>
    </item>
    
    <item>
      <title>[ENG] Improving Your Code Coverage | Microsoft Visual Studio YouTube channel</title>
      <link>https://www.code4it.dev/video/code-coverage-visualstudio-toolbox/</link>
      <pubDate>Fri, 16 Feb 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/video/code-coverage-visualstudio-toolbox/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Is Random.GetItems the best way to get random items in C# 12?</title>
      <link>https://www.code4it.dev/blog/how-to-get-random-items/</link>
      <pubDate>Tue, 13 Feb 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/how-to-get-random-items/</guid>
      <description>You have a collection of items. You want to retrieve N elements randomly. Which alternatives do we have?</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Cache Expiration vs Cache Eviction (and Eviction Policies)</title>
      <link>https://www.code4it.dev/architecture-notes/cache-expiration-and-eviction/</link>
      <pubDate>Tue, 06 Feb 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/cache-expiration-and-eviction/</guid>
      <description>Caching helps your applications be more performant. However, depending on the cache size, you&amp;rsquo;ll need to sacrifice some items to make space for others. Let&amp;rsquo;s see some strategies.</description>
    </item>
    
    <item>
      <title>How to create custom snippets in Visual Studio 2022</title>
      <link>https://www.code4it.dev/blog/custom-snippets-visualstudio2022/</link>
      <pubDate>Tue, 30 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/custom-snippets-visualstudio2022/</guid>
      <description>A simple way to improve efficiency is knowing your IDE shortcuts. Let&amp;rsquo;s learn how to create custom ones to generate code automatically.</description>
    </item>
    
    <item>
      <title>C# Tip: ObservableCollection - a data type to intercept changes to the collection</title>
      <link>https://www.code4it.dev/csharptips/observablecollection/</link>
      <pubDate>Tue, 23 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/observablecollection/</guid>
      <description>&lt;code&gt;ObservableCollection&amp;lt;T&amp;gt;&lt;/code&gt; is a data type that allows you to react when an item is added or removed from the collection. Let&amp;rsquo;s learn more!</description>
    </item>
    
    <item>
      <title>How to kill a process running on a local port in Windows</title>
      <link>https://www.code4it.dev/blog/kill-the-process-blocking-a-port-windows/</link>
      <pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/kill-the-process-blocking-a-port-windows/</guid>
      <description>Now you can&amp;rsquo;t run your application because another process already uses the port. How can you find that process? How to kill it?</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Tracking decision with Architecture Decision Records (ADRs)</title>
      <link>https://www.code4it.dev/architecture-notes/architecture-decision-records/</link>
      <pubDate>Tue, 09 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/architecture-decision-records/</guid>
      <description>When designing a system&amp;rsquo;s architecture, you have many choices to make. How can you track them? ADRs are formal documents to track the reasons behind your decisions, giving context and info about the consequences of each choice.</description>
    </item>
    
    <item>
      <title>[ENG] MVPbuzzChat with Davide Bellone | Christian Buckley</title>
      <link>https://www.code4it.dev/video/mvp-buzz-chat/</link>
      <pubDate>Mon, 08 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/video/mvp-buzz-chat/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Top 6 Performance Tips when dealing with strings in C# 12 and .NET 8</title>
      <link>https://www.code4it.dev/blog/top-6-string-performance-tips/</link>
      <pubDate>Tue, 19 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/top-6-string-performance-tips/</guid>
      <description>Small changes sometimes make a huge difference. Learn these 6 tips to improve the performance of your application just by handling strings correctly.</description>
    </item>
    
    <item>
      <title>4 ways to create Unit Tests without Interfaces in C#</title>
      <link>https://www.code4it.dev/blog/unit-tests-without-interfaces/</link>
      <pubDate>Tue, 12 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/unit-tests-without-interfaces/</guid>
      <description>C# devs have the bad habit of creating interfaces for every non-DTO class because «we need them for mocking!». Are you sure it&amp;rsquo;s the only way?</description>
    </item>
    
    <item>
      <title>C# Tip: Use TestCase to run similar unit tests with NUnit</title>
      <link>https://www.code4it.dev/csharptips/nunit-testcase/</link>
      <pubDate>Tue, 28 Nov 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/nunit-testcase/</guid>
      <description>Learn how to organize similar unit tests using the &lt;code&gt;TestCase&lt;/code&gt; attribute in NUnit!</description>
    </item>
    
    <item>
      <title>[ENG] .NET 5, 6, 7, and 8 for busy developers | .NET Community Austria</title>
      <link>https://www.code4it.dev/video/dotnet5-6-7-8-dotnet-austria/</link>
      <pubDate>Tue, 21 Nov 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/video/dotnet5-6-7-8-dotnet-austria/</guid>
      <description></description>
    </item>
    
    <item>
      <title>How to extract, create, and navigate Zip Files in C#</title>
      <link>https://www.code4it.dev/blog/working-with-zip-files/</link>
      <pubDate>Tue, 14 Nov 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/working-with-zip-files/</guid>
      <description>Learn how to zip and unzip compressed files with C#. Beware: it&amp;rsquo;s not as obvious as it might seem!</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - 4 algorithms to implement Rate Limiting, with comparison</title>
      <link>https://www.code4it.dev/architecture-notes/rate-limiting-algorithms/</link>
      <pubDate>Tue, 07 Nov 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/rate-limiting-algorithms/</guid>
      <description>You should always put a limit to the number of incoming requests. Otherwise, you can have your systems exposed to malicious attackers. Let&amp;rsquo;s see the four main algorithms to implement Rate Limit.</description>
    </item>
    
    <item>
      <title>OhMyPosh and CascadiaCode not working on PowerShell? How to fix it in Windows 10 and Windows 11 Integrated Terminal</title>
      <link>https://www.code4it.dev/blog/ohmyposh-integrated-terminal-powershell/</link>
      <pubDate>Tue, 31 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/ohmyposh-integrated-terminal-powershell/</guid>
      <description>Learn how to integrate Oh My Posh, a cross-platform tool that lets you create beautiful and informative prompts for PowerShell.</description>
    </item>
    
    <item>
      <title>C# Tip: How to create Unit Tests for Model Validation</title>
      <link>https://www.code4it.dev/csharptips/unit-test-model-validation/</link>
      <pubDate>Tue, 24 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/unit-test-model-validation/</guid>
      <description>As you know, you should always validate input models. Therefore, you should create Unit Tests to test the data validation. Let&amp;rsquo;s learn!</description>
    </item>
    
    <item>
      <title>Pre-commit hooks with Husky.NET - build, format, and test your .NET application before a Git commit</title>
      <link>https://www.code4it.dev/blog/husky-dotnet-precommit-hooks/</link>
      <pubDate>Tue, 17 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/husky-dotnet-precommit-hooks/</guid>
      <description>A Git commit represents the status of a system. Learn how to validate that your code builds, is well-formatted, and all the tests pass by adding a Git hook!</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Pros and Cons of API Gateways (with vendors comparison)</title>
      <link>https://www.code4it.dev/architecture-notes/api-gateway-pros-and-cons/</link>
      <pubDate>Tue, 10 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/api-gateway-pros-and-cons/</guid>
      <description>API Gateways are often a component of a microservices architecture. But they are not a silver bullet - they have some downsides to consider!</description>
    </item>
    
    <item>
      <title>How to integrate Feature Flags stored on Azure App Configuration in an ASP.NET Core Application</title>
      <link>https://www.code4it.dev/blog/feature-flags-from-azure-app-configuration/</link>
      <pubDate>Tue, 03 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/feature-flags-from-azure-app-configuration/</guid>
      <description>Learn how to use Feature Flags in ASP.NET Core apps and read values from Azure App Configuration. Understand how to use filters, like the Percentage filter, to control feature activation, and learn how to take full control of the cache expiration of the values.</description>
    </item>
    
    <item>
      <title>C# Tip: Improve memory allocation by initializing collection size</title>
      <link>https://www.code4it.dev/csharptips/initialize-collection-size/</link>
      <pubDate>Tue, 26 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/initialize-collection-size/</guid>
      <description>Sometimes just a minor change can affect performance. Here&amp;rsquo;s a simple trick: initialize your collections by specifying the initial size!</description>
    </item>
    
    <item>
      <title>Feature Flags 101: A Guide for ASP.NET Core Developers</title>
      <link>https://www.code4it.dev/blog/feature-flags-dotnet/</link>
      <pubDate>Tue, 19 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/feature-flags-dotnet/</guid>
      <description>Feature Flags are a technique that allows you to control the visibility and functionality of features in your software without changing the code. They enable you to experiment with new features, perform gradual rollouts, and revert changes quickly if needed.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - CAP Theorem: it&#39;s not just «Pick two»</title>
      <link>https://www.code4it.dev/architecture-notes/cap-theorem/</link>
      <pubDate>Tue, 12 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/cap-theorem/</guid>
      <description>«Consistency, Availability, and Partition tolerance. Pick two». Is it really THAT simple? Let&amp;rsquo;s learn a bit more about the CAP theorem.</description>
    </item>
    
    <item>
      <title>Advanced Integration Tests for .NET 7 API with WebApplicationFactory and NUnit</title>
      <link>https://www.code4it.dev/blog/advanced-integration-tests-webapplicationfactory/</link>
      <pubDate>Tue, 01 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/advanced-integration-tests-webapplicationfactory/</guid>
      <description>Integration Tests are incredibly useful: a few Integration Tests are often more useful than lots of Unit Tests. Let&amp;rsquo;s learn some advanced capabilities of &lt;code&gt;WebApplicationFactory&lt;/code&gt;.</description>
    </item>
    
    <item>
      <title>C# Tip: 2 ways to define ASP.NET Core custom Middleware</title>
      <link>https://www.code4it.dev/csharptips/custom-middleware/</link>
      <pubDate>Tue, 11 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/custom-middleware/</guid>
      <description>Customizing the behavior of an HTTP request is easy: you can use a middleware defined as a delegate or as a class.</description>
    </item>
    
    <item>
      <title>How to automatically refresh configurations with Azure App Configuration in ASP.NET Core</title>
      <link>https://www.code4it.dev/blog/azure-app-configuration-refresh-config/</link>
      <pubDate>Tue, 04 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/azure-app-configuration-refresh-config/</guid>
      <description>ASP.NET allows you to poll Azure App Configuration to always get the most updated values without restarting your applications. It&amp;rsquo;s simple, but you have to think thoroughly.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - L4 vs L7 Load Balancer</title>
      <link>https://www.code4it.dev/architecture-notes/l4-vs-l7-load-balancers/</link>
      <pubDate>Tue, 27 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/l4-vs-l7-load-balancers/</guid>
      <description>If you need to handle lots of incoming requests, you should manage the incoming traffic by balancing the load across different servers. You should consider adding a Load Balancer: it&amp;rsquo;s a layer of abstraction that handles requests, availability, and security in a centralized place.</description>
    </item>
    
    <item>
      <title>[ENG] .NET 5, 6, and 7 for busy developers | Dotnet Sheff</title>
      <link>https://www.code4it.dev/video/dotnet5-6-7-dotnet-sheff/</link>
      <pubDate>Wed, 21 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/video/dotnet5-6-7-dotnet-sheff/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Azure App Configuration and .NET API: a smart and secure way to manage configurations</title>
      <link>https://www.code4it.dev/blog/azure-app-configuration-dotnet-api/</link>
      <pubDate>Tue, 20 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/azure-app-configuration-dotnet-api/</guid>
      <description>Centralizing configurations can be useful for several reasons: security, consistency, deployability. In this article, we&amp;rsquo;re gonna use Azure App Configuration to centralize the configurations used in a .NET API application.</description>
    </item>
    
    <item>
      <title>C# Tip: Use custom Equality comparers in Nunit tests</title>
      <link>https://www.code4it.dev/csharptips/nunit-equals-custom-comparer/</link>
      <pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/nunit-equals-custom-comparer/</guid>
      <description>When writing unit tests, there are smarter ways to check if two objects are equal than just comparing every field one by one.</description>
    </item>
    
    <item>
      <title>How to add Dependency Injection, Configurations, and Logging in a .NET 7 Console Application</title>
      <link>https://www.code4it.dev/blog/dependency-injection-config-logging-in-console-application/</link>
      <pubDate>Tue, 06 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/dependency-injection-config-logging-in-console-application/</guid>
      <description>By default, you cannot use Dependency Injection, custom logging, and configurations from settings in a Console Application. Unless you create a custom &lt;code&gt;Host&lt;/code&gt;!</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Testing Pyramid vs Testing Diamond (and how they affect Code Coverage)</title>
      <link>https://www.code4it.dev/architecture-notes/testing-pyramid-vs-testing-diamond/</link>
      <pubDate>Tue, 30 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/testing-pyramid-vs-testing-diamond/</guid>
      <description>Testing Pyramid and Testing Diamond are two ways of managing automated tests. We&amp;rsquo;re going to learn what they are and how they are built in relation to Unit Tests, Integration Tests, and End-to-end Tests.</description>
    </item>
    
    <item>
      <title>Understanding IOptions, IOptionsMonitor, and IOptionsSnapshot in .NET 7</title>
      <link>https://www.code4it.dev/blog/ioptions-ioptionsmonitor-ioptionssnapshot/</link>
      <pubDate>Tue, 23 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/ioptions-ioptionsmonitor-ioptionssnapshot/</guid>
      <description>There are several ways to handle configurations in a .NET Application. In this article, we&amp;rsquo;re going to learn how to use &lt;code&gt;IOptions&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;IOptionsSnapshot&amp;lt;T&amp;gt;&lt;/code&gt;, and &lt;code&gt;IOptionsMonitor&amp;lt;T&amp;gt;&lt;/code&gt;</description>
    </item>
    
    <item>
      <title>C# Tip: Advanced Switch Expressions and Switch Statements using filters</title>
      <link>https://www.code4it.dev/csharptips/switch-expressions-and-statements/</link>
      <pubDate>Tue, 16 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/switch-expressions-and-statements/</guid>
      <description>We all use &lt;code&gt;switch&lt;/code&gt; statements in our code. Do you use them at their full potential?</description>
    </item>
    
    <item>
      <title>How to download an online file and store it on file system with C#</title>
      <link>https://www.code4it.dev/blog/download-and-save-files/</link>
      <pubDate>Tue, 09 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/download-and-save-files/</guid>
      <description>Downloading a file from a remote resource seems an easy task: download the byte stream and copy it to a local file. Beware of edge cases!</description>
    </item>
    
    <item>
      <title>C# Tip: Format Interpolated Strings</title>
      <link>https://www.code4it.dev/csharptips/format-interpolated-strings/</link>
      <pubDate>Tue, 02 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/format-interpolated-strings/</guid>
      <description>Interpolated strings are those built with the &lt;code&gt;$&lt;/code&gt; symbol, that you can use to create strings using existing variables or properties. Did you know that you can apply custom formattings to such values?</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Postel&#39;s law for API Robustness</title>
      <link>https://www.code4it.dev/architecture-notes/postel-law-for-api-robustness/</link>
      <pubDate>Tue, 18 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/postel-law-for-api-robustness/</guid>
      <description>A system should be &lt;strong&gt;robust&lt;/strong&gt;: it should be able to resist change and, well, not generate regressions. Postel&amp;rsquo;s law helps define a mindset to create robust APIs.</description>
    </item>
    
    <item>
      <title>C# Tip: Access items from the end of the array using the ^ operator</title>
      <link>https://www.code4it.dev/csharptips/access-items-from-end-of-array/</link>
      <pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/access-items-from-end-of-array/</guid>
      <description>Shorter code is often easier to read. Not always, but often. And the &lt;code&gt;^&lt;/code&gt; operator can make your code easier to read and less error-prone</description>
    </item>
    
    <item>
      <title>Health Checks in .NET: 2 ways to check communication with MongoDB</title>
      <link>https://www.code4it.dev/blog/mongodb-healthcheck/</link>
      <pubDate>Tue, 07 Mar 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/mongodb-healthcheck/</guid>
      <description>Health Checks are fundamental to keep track of the health of a system. How can we check if MongoDB is healthy?</description>
    </item>
    
    <item>
      <title>C# Tip: Initialize lists size to improve performance</title>
      <link>https://www.code4it.dev/csharptips/initialize-lists-size/</link>
      <pubDate>Tue, 28 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/initialize-lists-size/</guid>
      <description>Lists have an inner capacity. Every time you add more items than the current Capacity, you add performance overhead. How to prevent it?</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Understanding Elasticity and Scalability with Pokémon Go and TikTok</title>
      <link>https://www.code4it.dev/architecture-notes/elasticity-vs-scalability/</link>
      <pubDate>Tue, 21 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/elasticity-vs-scalability/</guid>
      <description>Elasticity and Scalability: two important Architectural attributes, similar but quite different</description>
    </item>
    
    <item>
      <title>C# Tip: List Pattern to match an collection against a sequence of patterns</title>
      <link>https://www.code4it.dev/csharptips/list-pattern/</link>
      <pubDate>Tue, 14 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/list-pattern/</guid>
      <description>By using list patterns on an array or a list you can check whether a it contains the values you expect in a specific position.</description>
    </item>
    
    <item>
      <title>How to customize Conventional Commits in a .NET application using GitHooks</title>
      <link>https://www.code4it.dev/blog/conventional-commit-with-githooks/</link>
      <pubDate>Tue, 07 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/conventional-commit-with-githooks/</guid>
      <description>Using Conventional Commits you can define a set of rules useful for writing meaningful commit messages. Using NPM. Yes, in a dotNET application!</description>
    </item>
    
    <item>
      <title>C# Tip: do NOT use nameof to give constants a value</title>
      <link>https://www.code4it.dev/csharptips/do-not-use-nameof-for-constants/</link>
      <pubDate>Tue, 31 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/do-not-use-nameof-for-constants/</guid>
      <description>In C#, nameof can be quite useful. But it has some drawbacks, if used the wrong way.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Server-side caching strategies: how do they work?</title>
      <link>https://www.code4it.dev/architecture-notes/caching-strategies/</link>
      <pubDate>Tue, 24 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/caching-strategies/</guid>
      <description>Cache-aside, Read-through, Write-through, Write-behind: quite easy on the surface, but let&amp;rsquo;s go a little deeper!</description>
    </item>
    
    <item>
      <title>C# Tip: LINQ&#39;s Enumerable.Range to generate a sequence of consecutive numbers</title>
      <link>https://www.code4it.dev/csharptips/enumerable-range/</link>
      <pubDate>Tue, 17 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/enumerable-range/</guid>
      <description>If you need a sequence of numbers, you can pick two ways: use a While loop, or use Enumerable.Range</description>
    </item>
    
    <item>
      <title>LINQ for beginners: pick the right methods!</title>
      <link>https://www.code4it.dev/blog/linq-differences/</link>
      <pubDate>Tue, 10 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/linq-differences/</guid>
      <description>LINQ is a set of methods that help developers perform operations on sets of items. There are tons of methods - do you know which is the one for you?</description>
    </item>
    
    <item>
      <title>How to customize Swagger UI with custom CSS in .NET 7</title>
      <link>https://www.code4it.dev/blog/customize-swagger-ui-with-css/</link>
      <pubDate>Fri, 16 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/customize-swagger-ui-with-css/</guid>
      <description>Exposing Swagger UI is a good way to help developers consume your APIs. But don&amp;rsquo;t be boring: customize your UI with some fancy CSS</description>
    </item>
    
    <item>
      <title>PriorityQueues on .NET 7 and C# 11</title>
      <link>https://www.code4it.dev/blog/intro-priority-queue/</link>
      <pubDate>Mon, 12 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/intro-priority-queue/</guid>
      <description>A PriorityQueue represents a collection of items that have a value and a priority. Now this data structure is built-in in dotNET!</description>
    </item>
    
    <item>
      <title>Book Review: C# 11 and .NET 7 - Modern Cross-Platform Development Fundamentals</title>
      <link>https://www.code4it.dev/book-review/c-11-and-net-7-modern-cross-platform-development-fundamentals-seventh-edition/</link>
      <pubDate>Thu, 01 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/book-review/c-11-and-net-7-modern-cross-platform-development-fundamentals-seventh-edition/</guid>
      <description>Are you interested in &lt;b&gt;C# 11 and .NET 7 - Modern Cross-Platform Development Fundamentals&lt;/b&gt; by Mark J. Price? Here&amp;rsquo;s my review!</description>
    </item>
    
    <item>
      <title>C# Tip: Raise synchronous events using Timer (and not a While loop)</title>
      <link>https://www.code4it.dev/csharptips/timer-to-trigger-synchronous-events/</link>
      <pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/timer-to-trigger-synchronous-events/</guid>
      <description>When you need to fire synchronous events, don&amp;rsquo;t use a while(true) loop: use a Timer!</description>
    </item>
    
    <item>
      <title>How to create an API Gateway using Azure API Management</title>
      <link>https://www.code4it.dev/blog/intro-azure-api-management/</link>
      <pubDate>Tue, 22 Nov 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/intro-azure-api-management/</guid>
      <description>In a microservices architecture, an API Gateway hides your real endpoints. We will create one using Azure API Management</description>
    </item>
    
    <item>
      <title>Clean Code Tip: Methods should have a coherent level of abstraction</title>
      <link>https://www.code4it.dev/cleancodetips/coherent-levels-of-abstraction/</link>
      <pubDate>Tue, 15 Nov 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/coherent-levels-of-abstraction/</guid>
      <description>Don&amp;rsquo;t let the reader get lost in the code details!</description>
    </item>
    
    <item>
      <title>How to deploy .NET APIs on Azure using GitHub actions</title>
      <link>https://www.code4it.dev/blog/deploy-api-on-azure-with-github-action/</link>
      <pubDate>Tue, 08 Nov 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/deploy-api-on-azure-with-github-action/</guid>
      <description>Building APIs with .NET is easy. Deploying them on Azure is easy too, with GitHub Actions!</description>
    </item>
    
    <item>
      <title>C# Tip: use the @ prefix when a name is reserved</title>
      <link>https://www.code4it.dev/csharptips/use-at-symbol-prefix/</link>
      <pubDate>Tue, 25 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/use-at-symbol-prefix/</guid>
      <description>C#, as every other language, has several reserved keywords. Did you know that you can use them if you use the &lt;code&gt;@&lt;/code&gt; prefix?</description>
    </item>
    
    <item>
      <title>3 (and more) ways to set configuration values in .NET</title>
      <link>https://www.code4it.dev/blog/how-to-set-configurations-values-dotnet/</link>
      <pubDate>Tue, 18 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/how-to-set-configurations-values-dotnet/</guid>
      <description>Every application relies on some configurations. Many devs set them up using only the appsettings file. But there&amp;rsquo;s more!</description>
    </item>
    
    <item>
      <title>Clean Code Tip: DRY or not DRY?</title>
      <link>https://www.code4it.dev/cleancodetips/dry-or-not-dry/</link>
      <pubDate>Tue, 11 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/dry-or-not-dry/</guid>
      <description>DRY is a fundamental principle in software development. Should you apply it blindly?</description>
    </item>
    
    <item>
      <title>The 2 secret endpoints I create in my .NET APIs</title>
      <link>https://www.code4it.dev/blog/my-2-secret-endpoints/</link>
      <pubDate>Tue, 04 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/my-2-secret-endpoints/</guid>
      <description>In this article, I will show you two simple tricks that help me understand the deployment status of my .NET APIs</description>
    </item>
    
    <item>
      <title>Clean Code Tip: throw exceptions instead of returning null when there is no fallback</title>
      <link>https://www.code4it.dev/cleancodetips/exceptions-instead-of-null/</link>
      <pubDate>Tue, 27 Sep 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/exceptions-instead-of-null/</guid>
      <description>In case of unmanageable error, should you return null or throw exceptions?</description>
    </item>
    
    <item>
      <title>How to log Correlation IDs in .NET APIs with Serilog</title>
      <link>https://www.code4it.dev/blog/serilog-correlation-id/</link>
      <pubDate>Tue, 20 Sep 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/serilog-correlation-id/</guid>
      <description>APIs often call other APIs to perform operations. If an error occurs in one of them, how can you understand the context that caused that error? You can use Correlation IDs in your logs!</description>
    </item>
    
    <item>
      <title>C# Tip: use Miniprofiler instead of Stopwatch to profile code performance</title>
      <link>https://www.code4it.dev/csharptips/profile-code-with-miniprofiler/</link>
      <pubDate>Tue, 13 Sep 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/profile-code-with-miniprofiler/</guid>
      <description>Miniprofiler is a nice tool to profile your code in a smart way.</description>
    </item>
    
    <item>
      <title>How to propagate HTTP Headers (and  Correlation IDs) using HttpClients in C#</title>
      <link>https://www.code4it.dev/blog/propagate-httpheader-and-correlation-id/</link>
      <pubDate>Tue, 02 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/propagate-httpheader-and-correlation-id/</guid>
      <description>Propagating HTTP Headers can be useful, especially when dealing with Correlation IDs. It&amp;rsquo;s time to customize our HttpClients!</description>
    </item>
    
    <item>
      <title>Clean Code Tip: F.I.R.S.T. acronym for better unit tests</title>
      <link>https://www.code4it.dev/cleancodetips/f-i-r-s-t-unit-tests/</link>
      <pubDate>Tue, 26 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/f-i-r-s-t-unit-tests/</guid>
      <description>Good unit tests have some properties in common: they are Fast, Independent, Repeatable, Self-validating, and Thorough. In a word: FIRST!</description>
    </item>
    
    <item>
      <title>5 tricks every C# dev should know about LINQPad</title>
      <link>https://www.code4it.dev/blog/5-linqpad-tricks/</link>
      <pubDate>Tue, 19 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/5-linqpad-tricks/</guid>
      <description>LINQPad is one of the tools I use daily. But still, I haven&amp;rsquo;t used it at its full power. And you?</description>
    </item>
    
    <item>
      <title>C# Tip: SelectMany in LINQ</title>
      <link>https://www.code4it.dev/csharptips/linq-selectmany/</link>
      <pubDate>Tue, 12 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/linq-selectmany/</guid>
      <description>SelectMany is one of the LINQ methods I&amp;rsquo;ve used the least. I couldn&amp;rsquo;t get it! Turns out it was actually incredibly simple.</description>
    </item>
    
    <item>
      <title>How to solve InvalidOperationException for constructors using HttpClientFactory in C#</title>
      <link>https://www.code4it.dev/blog/solve-constructor-exception-with-httpclientfactory/</link>
      <pubDate>Tue, 05 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/solve-constructor-exception-with-httpclientfactory/</guid>
      <description>A suitable constructor for type &amp;lsquo;X&amp;rsquo; could not be located. What a strange error message! Luckily it&amp;rsquo;s easy to solve.</description>
    </item>
    
    <item>
      <title>Clean Code Tip: Avoid subtle duplication of code and logic</title>
      <link>https://www.code4it.dev/cleancodetips/avoid-subtle-duplication/</link>
      <pubDate>Tue, 28 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/avoid-subtle-duplication/</guid>
      <description>Duplication is not only about lines of code, but also about data usage and meaning. You should avoid that kind of duplication.</description>
    </item>
    
    <item>
      <title>How to improve Serilog logging in .NET 6 by using Scopes</title>
      <link>https://www.code4it.dev/blog/serilog-logging-scope/</link>
      <pubDate>Tue, 21 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/serilog-logging-scope/</guid>
      <description>Logs are important. Properly structured logs can be the key to resolving some critical issues. With Serilog&amp;rsquo;s Scopes, you can enrich your logs with info about the context where they happened.</description>
    </item>
    
    <item>
      <title>C# Tip: use IHttpClientFactory to generate HttpClient instances</title>
      <link>https://www.code4it.dev/csharptips/use-httpclientfactory-instead-of-httpclient/</link>
      <pubDate>Tue, 07 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/use-httpclientfactory-instead-of-httpclient/</guid>
      <description>Initializing HttpClient instances can expose you to Socket Exhaustion problems. You should use IHttpClientFactory instead</description>
    </item>
    
    <item>
      <title>8 things about Records in C# you probably didn&#39;t know</title>
      <link>https://www.code4it.dev/blog/8-things-about-records-csharp/</link>
      <pubDate>Tue, 31 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/8-things-about-records-csharp/</guid>
      <description>C# recently introduced Records, a new way of defining types. In this article, we will see 8 things you probably didn&amp;rsquo;t know about C# Records</description>
    </item>
    
    <item>
      <title>Clean Code Tip: Tests should be even more well-written than production code</title>
      <link>https://www.code4it.dev/cleancodetips/tests-should-be-readable-too/</link>
      <pubDate>Tue, 24 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/tests-should-be-readable-too/</guid>
      <description>Should you write your tests with the same care you write the production code? Of course you should! But what does it mean?</description>
    </item>
    
    <item>
      <title>3 ways to check the object passed to mocks with Moq in C#</title>
      <link>https://www.code4it.dev/blog/check-objects-called-mocks-in-moq/</link>
      <pubDate>Tue, 17 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/check-objects-called-mocks-in-moq/</guid>
      <description>In unit tests, sometimes you need to perform deep checks on the object passed to the mocked service. We will learn 3 ways to do that with Moq and C#</description>
    </item>
    
    <item>
      <title>C# Tip: Convert ExpandoObjects to IDictionary</title>
      <link>https://www.code4it.dev/csharptips/expandoobject-to-dictionary/</link>
      <pubDate>Tue, 10 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/expandoobject-to-dictionary/</guid>
      <description>How to get all the keys of an ExpandoObject? Convert it to Dictionary!</description>
    </item>
    
    <item>
      <title>From idea to publishing, and beyond: how I automated my blogging workflow with GitHub, PowerShell, and Azure</title>
      <link>https://www.code4it.dev/blog/automate-blogging-workflow-github-powershell-azure/</link>
      <pubDate>Tue, 03 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/automate-blogging-workflow-github-powershell-azure/</guid>
      <description>After 100 articles, I&amp;rsquo;ve found some neat ways to automate my blogging workflow. I will share my experience and the tools I use from the very beginning to the very end.</description>
    </item>
    
    <item>
      <title>Clean Code Tip: Avoid using too many Imports in your classes</title>
      <link>https://www.code4it.dev/cleancodetips/too-many-imports/</link>
      <pubDate>Tue, 19 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/too-many-imports/</guid>
      <description>Having too many &amp;lsquo;using&amp;rsquo;s, or imports, is a good indicator that your class does too many things. You should work to reduce the number of dependencies of a class.</description>
    </item>
    
    <item>
      <title>How to access the HttpContext in .NET API</title>
      <link>https://www.code4it.dev/blog/inject-httpcontext/</link>
      <pubDate>Tue, 12 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/inject-httpcontext/</guid>
      <description>If your application is exposed on the Web, I guess that you get some values from the HTTP Requests, don&amp;rsquo;t you?</description>
    </item>
    
    <item>
      <title>C# Tip: Use Debug-Assert to break the debugging flow if a condition fails</title>
      <link>https://www.code4it.dev/csharptips/debug-assert/</link>
      <pubDate>Tue, 05 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/debug-assert/</guid>
      <description>It would be great if we could break the debugging flow if a condition is (not) met. Can we? Of course!</description>
    </item>
    
    <item>
      <title>How to perform CRUD operations with Entity Framework Core and PostgreSQL</title>
      <link>https://www.code4it.dev/blog/postgres-crud-entityframework/</link>
      <pubDate>Tue, 29 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/postgres-crud-entityframework/</guid>
      <description>With Entity Framework you can perform operations on relational databases without writing a single line of SQL. We will use EF to integrate PostgreSQL in our application</description>
    </item>
    
    <item>
      <title>Clean Code Tip: Not all comments are bad</title>
      <link>https://www.code4it.dev/cleancodetips/good-comments/</link>
      <pubDate>Tue, 22 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/good-comments/</guid>
      <description>Is it true that we should always avoid comments in our code? In my opinion, no: let&amp;rsquo;s see when adding comments is not only good but necessary.</description>
    </item>
    
    <item>
      <title>Advanced parsing using Int.TryParse in C#</title>
      <link>https://www.code4it.dev/blog/advanced-int-tryparse/</link>
      <pubDate>Tue, 15 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/advanced-int-tryparse/</guid>
      <description>We all need to parse strings as integers. Most of the time, we use int.TryParse(string, out int). But there&amp;rsquo;s a more advanced overload that we can use for complex parsing.</description>
    </item>
    
    <item>
      <title>C# Tip: How to temporarily change the CurrentCulture</title>
      <link>https://www.code4it.dev/csharptips/change-current-culture-in-using-block/</link>
      <pubDate>Tue, 08 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/change-current-culture-in-using-block/</guid>
      <description>What can you do if you need to temporarily change the CurrentCulture in C#?</description>
    </item>
    
    <item>
      <title>PostgreSQL CRUD operations with C# and Dapper</title>
      <link>https://www.code4it.dev/blog/postgres-crud-dapper/</link>
      <pubDate>Tue, 01 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/postgres-crud-dapper/</guid>
      <description>Mapping every SQL result to a data type can be a pain. To simplify our life, we can use an ORM like Dapper to automatically map the data.</description>
    </item>
    
    <item>
      <title>Clean Code Tip: AAA pattern for tests: why is it important?</title>
      <link>https://www.code4it.dev/cleancodetips/aaa-pattern-for-tests/</link>
      <pubDate>Tue, 22 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/aaa-pattern-for-tests/</guid>
      <description>The most important trait of Tests? They must be correct. The second one? They must be readable. The AAA pattern helps you write better tests.</description>
    </item>
    
    <item>
      <title>Measuring maintainability metrics with NDepend</title>
      <link>https://www.code4it.dev/blog/measure-maintainability-with-ndepend/</link>
      <pubDate>Tue, 15 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/measure-maintainability-with-ndepend/</guid>
      <description>Keeping an eye on maintainability is mandatory for every project which should live long. With NDepend, you can measure maintainability for .NET projects.</description>
    </item>
    
    <item>
      <title>C# Tip: Exception handling with WHEN clause</title>
      <link>https://www.code4it.dev/csharptips/exception-handling-when-clause/</link>
      <pubDate>Tue, 08 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/exception-handling-when-clause/</guid>
      <description>Instead of using if-else or switch blocks to handle exceptions, you can do it gracefully using the &amp;lsquo;when&amp;rsquo; keyword.</description>
    </item>
    
    <item>
      <title>CRUD operations on PostgreSQL using C# and Npgsql</title>
      <link>https://www.code4it.dev/blog/postgres-crud-operations-npgsql/</link>
      <pubDate>Tue, 01 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/postgres-crud-operations-npgsql/</guid>
      <description>Once we have a Postgres instance running, we can perform operations on it. We will use Npgsql to query a Postgres instance with C#</description>
    </item>
    
    <item>
      <title>Clean Code Tip: Avoid mental mappings</title>
      <link>https://www.code4it.dev/cleancodetips/avoid-mental-mappings/</link>
      <pubDate>Tue, 25 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/avoid-mental-mappings/</guid>
      <description>Mental mappings are a good way to write shorter code that you, and only you, can understand. Prefer clarity over brevity!</description>
    </item>
    
    <item>
      <title>How to run PostgreSQL locally with Docker</title>
      <link>https://www.code4it.dev/blog/run-postgresql-with-docker/</link>
      <pubDate>Tue, 18 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/run-postgresql-with-docker/</guid>
      <description>PostgreSQL is a famous relational database. In this article, we will learn how to run it locally using Docker.</description>
    </item>
    
    <item>
      <title>Code opinion: should we trust Open Source after Log4J&#39;s issues?</title>
      <link>https://www.code4it.dev/blog/opinion-open-source/</link>
      <pubDate>Tue, 21 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/opinion-open-source/</guid>
      <description>With Log4J&amp;rsquo;s vulnerability, we&amp;rsquo;ve all been reminded that systems are vulnerable, and OSS are not immune too. What should we do now?</description>
    </item>
    
    <item>
      <title>C# Tip: use yield return to return one item at the time</title>
      <link>https://www.code4it.dev/csharptips/yield-return/</link>
      <pubDate>Tue, 14 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/yield-return/</guid>
      <description>Yield is a keyword that allows you to return an item at the time instead of creating a full list and returning it as a whole.</description>
    </item>
    
    <item>
      <title>Profiling .NET code with MiniProfiler</title>
      <link>https://www.code4it.dev/blog/miniprofiler/</link>
      <pubDate>Tue, 07 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/miniprofiler/</guid>
      <description>Is your application slow? How to find bottlenecks? If so, you can use MiniProfiler to profile a .NET API application and analyze the timings of the different operations.</description>
    </item>
    
    <item>
      <title>Clean Code Tip: Keep the parameters in a consistent order</title>
      <link>https://www.code4it.dev/cleancodetips/consistent-of-parameters/</link>
      <pubDate>Tue, 30 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/consistent-of-parameters/</guid>
      <description>Following a coherent standard, even for parameters order, helps developers when writing and, even more, reading code. How to do that?</description>
    </item>
    
    <item>
      <title>How to parse JSON Lines (JSONL) with C# </title>
      <link>https://www.code4it.dev/blog/parse-jsonlines/</link>
      <pubDate>Tue, 23 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/parse-jsonlines/</guid>
      <description>JSONL is JSON&amp;rsquo;s less famous sibling: it allows you to store JSON objects separating them with new line. We will learn how to parse a JSONL string with C#.</description>
    </item>
    
    <item>
      <title>C# Tip: Use a SortedSet to avoid duplicates and sort items</title>
      <link>https://www.code4it.dev/csharptips/sorted-set/</link>
      <pubDate>Tue, 16 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/sorted-set/</guid>
      <description>Using the right data structure is crucial to building robust and efficient applications. So, why use a List or a HashSet to sort items (and remove duplicates) when you have a SortedSet?</description>
    </item>
    
    <item>
      <title>How to resolve dependencies in .NET APIs based on current HTTP Request</title>
      <link>https://www.code4it.dev/blog/resolving-dependencies-depending-on-httprequest/</link>
      <pubDate>Tue, 09 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/resolving-dependencies-depending-on-httprequest/</guid>
      <description>Did you know that in .NET you can resolve specific dependencies using Factories? We&amp;rsquo;ll use them to switch between concrete classes based on the current HTTP Request</description>
    </item>
    
    <item>
      <title>Clean Code Tip: Don&#39;t use too many method arguments</title>
      <link>https://www.code4it.dev/cleancodetips/too-many-method-arguments/</link>
      <pubDate>Tue, 02 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/too-many-method-arguments/</guid>
      <description>When a function has too many parameters, it&amp;rsquo;s clear that something is wrong. But&amp;hellip; why? What are the consequences of having too many parameters?</description>
    </item>
    
    <item>
      <title>Moq vs NSubstitute: syntax cheat sheet</title>
      <link>https://www.code4it.dev/blog/moq-vs-nsubstitute-syntax/</link>
      <pubDate>Tue, 26 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/moq-vs-nsubstitute-syntax/</guid>
      <description>Moq and NSubstitute are two of the most used library to mock dependencies on your Unit Tests. How do they differ? How can we move from one library to the other?</description>
    </item>
    
    <item>
      <title>C# Tip: use the Ping class instead of an HttpClient to ping an endpoint</title>
      <link>https://www.code4it.dev/csharptips/ping-endpoint/</link>
      <pubDate>Tue, 19 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/ping-endpoint/</guid>
      <description>Sometimes you need to ping some endpoints. Don&amp;rsquo;t rely on HttpClient, but use the native Ping class.</description>
    </item>
    
    <item>
      <title>How to log to Console with .NET Core and Serilog</title>
      <link>https://www.code4it.dev/blog/serilog-log-on-console/</link>
      <pubDate>Tue, 12 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/serilog-log-on-console/</guid>
      <description>Serilog is a famous logger for .NET projects. In this article, we will learn how to integrate it in a .NET API project and output the logs on a Console.</description>
    </item>
    
    <item>
      <title>Clean code tip: use the same name for the same concept</title>
      <link>https://www.code4it.dev/cleancodetips/use-same-name-for-same-concept/</link>
      <pubDate>Tue, 05 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/use-same-name-for-same-concept/</guid>
      <description>Smaller functions help us write better code, but have also a nice side effect: they help us to understand where an exception was thrown. Let&amp;rsquo;s see how!</description>
    </item>
    
    <item>
      <title>How to test HttpClientFactory with Moq</title>
      <link>https://www.code4it.dev/blog/testing-httpclientfactory-moq/</link>
      <pubDate>Tue, 28 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/testing-httpclientfactory-moq/</guid>
      <description>Mocking IHttpClientFactory is hard, but luckily we can use some advanced features of Moq to write better tests.</description>
    </item>
    
    <item>
      <title>C# tip: define Using Aliases to avoid ambiguity</title>
      <link>https://www.code4it.dev/csharptips/using-alias/</link>
      <pubDate>Tue, 21 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/using-alias/</guid>
      <description>Sometimes we need to use objects with the same name but from different namespaces. How to remove that ambiguity? By Using Aliases!</description>
    </item>
    
    <item>
      <title>How to customize fields generation in Visual Studio 2019</title>
      <link>https://www.code4it.dev/blog/auto-creating-fields-vs/</link>
      <pubDate>Tue, 14 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/auto-creating-fields-vs/</guid>
      <description>Every time you ask Visual Studio to generate properties for you, it creates them with a simple, default format. But we can customize them by updating some options on our IDE. Let&amp;rsquo;s learn how!</description>
    </item>
    
    <item>
      <title>Clean code tip: small functions bring smarter exceptions</title>
      <link>https://www.code4it.dev/cleancodetips/smaller-functions-smarter-exceptions/</link>
      <pubDate>Tue, 17 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/smaller-functions-smarter-exceptions/</guid>
      <description>Smaller functions help us write better code, but have also a nice side effect: they help us to understand where an exception was thrown. Let&amp;rsquo;s see how!</description>
    </item>
    
    <item>
      <title>How to add a caching layer in .NET 5 with Decorator pattern and Scrutor</title>
      <link>https://www.code4it.dev/blog/caching-decorator-with-scrutor/</link>
      <pubDate>Tue, 10 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/caching-decorator-with-scrutor/</guid>
      <description>You should not add the caching logic in the same component used for retrieving data from external sources: you&amp;rsquo;d better use the Decorator Pattern. We&amp;rsquo;ll see how to use it, what benefits it brings to your application, and how to use Scrutor to add it to your .NET projects.</description>
    </item>
    
    <item>
      <title>C# tip: create correct DateTimes with DateTimeKind</title>
      <link>https://www.code4it.dev/csharptips/datetimekind/</link>
      <pubDate>Sat, 07 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/datetimekind/</guid>
      <description>Creating simple DateTimes creates issues when handling timezones. You can solve some issues by using DateTimeKind</description>
    </item>
    
    <item>
      <title>Code opinion: performance or clean code?</title>
      <link>https://www.code4it.dev/blog/clean-code-vs-performance/</link>
      <pubDate>Tue, 27 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/clean-code-vs-performance/</guid>
      <description>In any application, writing code that is clean and performant is crucial. But we often can&amp;rsquo;t have both. What to choose?</description>
    </item>
    
    <item>
      <title>Clean code tip: Use pronounceable and searchable names</title>
      <link>https://www.code4it.dev/cleancodetips/use-pronounceable-names/</link>
      <pubDate>Tue, 20 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/use-pronounceable-names/</guid>
      <description>Two of the operations you often do with your code is to discuss it, or perform a search over it. So using good names will help in both situations.</description>
    </item>
    
    <item>
      <title>Simplify debugging with DebuggerDisplay attribute dotNET</title>
      <link>https://www.code4it.dev/blog/debuggerdisplay-attribute/</link>
      <pubDate>Tue, 13 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/debuggerdisplay-attribute/</guid>
      <description>Debugging our .NET applications can be cumbersome. With the DebuggerDisplay attribute we can simplify it by displaying custom messages.</description>
    </item>
    
    <item>
      <title>C# tip: String.IsNullOrEmpty or String.IsNullOrWhiteSpace?</title>
      <link>https://www.code4it.dev/csharptips/string-isnullorempty-isnullorwhitespace/</link>
      <pubDate>Tue, 06 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/string-isnullorempty-isnullorwhitespace/</guid>
      <description>Is your string really empty, or has it hidden characters? With String.IsNullOrEmpty and String.IsNullOrWhiteSpace you can find it</description>
    </item>
    
    <item>
      <title>Handling Azure Service Bus errors with .NET</title>
      <link>https://www.code4it.dev/blog/azure-service-bus-errors/</link>
      <pubDate>Tue, 29 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/azure-service-bus-errors/</guid>
      <description>Senders and Receivers handle errors on Azure Service Bus differently. We&amp;rsquo;ll see how to catch them, what they mean and how to fix them. We&amp;rsquo;ll also introduce Dead Letters.</description>
    </item>
    
    <item>
      <title>Clean code tip: Principle of Least Surprise</title>
      <link>https://www.code4it.dev/cleancodetips/principle-of-least-surprise/</link>
      <pubDate>Tue, 22 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/principle-of-least-surprise/</guid>
      <description>The Principle of Least Surprise is a simple principle that helps you writing clear, obvious code: this helps other developers foresee what a component does without worrying of unexpected behaviors.</description>
    </item>
    
    <item>
      <title>Azure Service Bus: Queues vs Topics</title>
      <link>https://www.code4it.dev/blog/azure-service-bus-queue-vs-topic/</link>
      <pubDate>Tue, 15 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/azure-service-bus-queue-vs-topic/</guid>
      <description>Queues or Topics? How are they similar and how they are different? We&amp;rsquo;ll see how to use those capabilities in Azure Service Bus with .NET and C#</description>
    </item>
    
    <item>
      <title>C# tip: how to get the index of an item in a foreach loop</title>
      <link>https://www.code4it.dev/csharptips/how-to-get-item-index-in-foreach/</link>
      <pubDate>Tue, 08 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/csharptips/how-to-get-item-index-in-foreach/</guid>
      <description>Do you need the index of the current item in a foreach loop with C#? Here you&amp;rsquo;ll see two approaches.</description>
    </item>
    
    <item>
      <title>Azure Service Bus and C# - an introduction</title>
      <link>https://www.code4it.dev/blog/azure-service-bus-introduction/</link>
      <pubDate>Tue, 01 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/azure-service-bus-introduction/</guid>
      <description>Azure Service bus is a message broker generally used for sharing messages between applications. In this article, we&amp;rsquo;re gonna see an introduction to Azure Service Bus, and how to work with it with .NET and C#</description>
    </item>
    
    <item>
      <title>Clean code tip: How to choose meaningful names?</title>
      <link>https://www.code4it.dev/cleancodetips/choose-meaningful-names/</link>
      <pubDate>Tue, 25 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/cleancodetips/choose-meaningful-names/</guid>
      <description>Choosing meaningful names takes time! Time spent finding good names is time saved trying to figure out what you meant.</description>
    </item>
    
    <item>
      <title>How to expose .NET Assembly Version via API endpoint routing</title>
      <link>https://www.code4it.dev/blog/assembly-version-via-api-endpoint-routing/</link>
      <pubDate>Tue, 18 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/assembly-version-via-api-endpoint-routing/</guid>
      <description>Knowing the Assembly Version of the API you&amp;rsquo;ve deployed on an environment may be helpful for many reasons. We&amp;rsquo;re gonna see why, how to retrieve it, and how to expose it with Endpoint Routing  (bye-bye Controllers and Actions!)</description>
    </item>
    
    <item>
      <title>13 tips for delivering better tech talks</title>
      <link>https://www.code4it.dev/blog/tech-talk-13-tips/</link>
      <pubDate>Tue, 04 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/tech-talk-13-tips/</guid>
      <description>Doing a tech talk is easy. Doing a &lt;em&gt;good&lt;/em&gt; talk is harder. We&amp;rsquo;re going to see some tips to improve the delivery of your conferences.</description>
    </item>
    
    <item>
      <title>Getting resource location with CreatedAtAction and CreatedAtRoute action results</title>
      <link>https://www.code4it.dev/blog/createdAtRoute-createdAtAction/</link>
      <pubDate>Tue, 20 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/createdAtRoute-createdAtAction/</guid>
      <description>It&amp;rsquo;s not a good practice to return the ID of a newly created item in the HTTP Response Body. What to do? You can return it in the HTTP Response Headers, with CreatedAtAction and CreatedAtRoute.</description>
    </item>
    
    <item>
      <title>[ITA] Azure DevOps: plan, build, and release projects | Global Azure Verona </title>
      <link>https://www.code4it.dev/video/azure-devops-global-azure-verona/</link>
      <pubDate>Sat, 17 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/video/azure-devops-global-azure-verona/</guid>
      <description></description>
    </item>
    
    <item>
      <title>[ITA] Azure DevOps: build and release pipelines to deploy with confidence | Global Azure Torino</title>
      <link>https://www.code4it.dev/video/azure-devops-global-azure-torino/</link>
      <pubDate>Thu, 15 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/video/azure-devops-global-azure-torino/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Cobertura, YAML, and Code Coverage Protector: how to view Code Coverage report on Azure DevOps</title>
      <link>https://www.code4it.dev/blog/code-coverage-on-azure-devops-yaml-pipelines/</link>
      <pubDate>Tue, 06 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/code-coverage-on-azure-devops-yaml-pipelines/</guid>
      <description>Code coverage is a good indicator of the health of your projects. We&amp;rsquo;ll see how to show Cobertura reports associated to your builds on Azure DevOps and how to display the progress on Dashboard.</description>
    </item>
    
    <item>
      <title>Clean code tips - Tests</title>
      <link>https://www.code4it.dev/blog/clean-code-tests/</link>
      <pubDate>Tue, 23 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/clean-code-tests/</guid>
      <description>Tests are as important as production code. Well, they are even more important! So writing them well brings lots of benefits to your projects.</description>
    </item>
    
    <item>
      <title>14 to 2 seconds: how I improved the performance of an endpoint by 82% - part 2</title>
      <link>https://www.code4it.dev/blog/improving-application-performance-part2/</link>
      <pubDate>Tue, 09 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/improving-application-performance-part2/</guid>
      <description>Language details may impact application performance. In this article we&amp;rsquo;ll see some of the C# tips that brought me to improve my application. Singleton creation, StringBuilder and more!</description>
    </item>
    
    <item>
      <title>14 to 2 seconds: how I improved the performance of an endpoint by 82% - part 1</title>
      <link>https://www.code4it.dev/blog/improving-application-performance-part1/</link>
      <pubDate>Tue, 23 Feb 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/improving-application-performance-part1/</guid>
      <description>Having fast API response is crucial for your applications. In this article you&amp;rsquo;ll see how I managed to improve an API application that took 14 secs each call.</description>
    </item>
    
    <item>
      <title>10 underestimated tasks to do before your next virtual presentation</title>
      <link>https://www.code4it.dev/blog/10-tasks-before-virtual-talk/</link>
      <pubDate>Tue, 09 Feb 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/10-tasks-before-virtual-talk/</guid>
      <description>When performing a talk, the audience experience is as important as the content. They must be focused on what you say, and not get distracted by external outputs. So, here&amp;rsquo;s 10 tips to rock your next virtual talk.</description>
    </item>
    
    <item>
      <title>How to open the same URL on different environments with PowerShell</title>
      <link>https://www.code4it.dev/blog/powershell-basics-open-multiple-browsers/</link>
      <pubDate>Tue, 26 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/powershell-basics-open-multiple-browsers/</guid>
      <description>Revise PowerShell basics with a simple script that opens a browser for each specified URL. We&amp;rsquo;re gonna cover how to declare variables, define arrays, concatenate strings and run CMD commands.</description>
    </item>
    
    <item>
      <title>[ITA] Azure DevOps: build and release projects | .NET User Group Meetup Torino</title>
      <link>https://www.code4it.dev/video/azure-devops-dotnet-usergroup-torino/</link>
      <pubDate>Mon, 25 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/video/azure-devops-dotnet-usergroup-torino/</guid>
      <description></description>
    </item>
    
    <item>
      <title>3 ways to inject DateTime and test it</title>
      <link>https://www.code4it.dev/blog/inject-and-test-datetime-dependency/</link>
      <pubDate>Tue, 12 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/inject-and-test-datetime-dependency/</guid>
      <description>DateTime, Guid, and Random values are not under your direct control. You should abstract them to write better code and testing. We&amp;rsquo;ll see 3 ways to inject and test them in .NET Core projects.</description>
    </item>
    
    <item>
      <title>How to view code coverage with Coverlet and Visual Studio 2019</title>
      <link>https://www.code4it.dev/blog/code-coverage-vs-2019-coverlet/</link>
      <pubDate>Tue, 29 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/code-coverage-vs-2019-coverlet/</guid>
      <description>Code coverage is an indicator of the quality of your code. With Coverlet and VS2019 you can have a human readable report to see where to improve your code.</description>
    </item>
    
    <item>
      <title>Clean code tips - Error handling</title>
      <link>https://www.code4it.dev/blog/clean-code-error-handling/</link>
      <pubDate>Tue, 15 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/clean-code-error-handling/</guid>
      <description>The way you handle errors on your code can have a huge impact on the maintainability of your projects. Don&amp;rsquo;t underestimate the power of clean error handling.</description>
    </item>
    
    <item>
      <title>How to use String.Format - and why you should care about it</title>
      <link>https://www.code4it.dev/blog/how-to-use-string-format/</link>
      <pubDate>Tue, 01 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/how-to-use-string-format/</guid>
      <description>Is string.Format obsolete? Not at all, it still has cards to play! Let&amp;rsquo;s see how we can customize format and create custom formatters.</description>
    </item>
    
    <item>
      <title>How to Ping an endpoint with C#</title>
      <link>https://www.code4it.dev/blog/ping-endpoint-csharp/</link>
      <pubDate>Tue, 17 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/ping-endpoint-csharp/</guid>
      <description>How to effectively ping an endpoint in C#? Don&amp;rsquo;t use the HttpClient, when .NET provides a Ping class to perform all these operations.</description>
    </item>
    
    <item>
      <title>How to integrate MongoDB with C#</title>
      <link>https://www.code4it.dev/blog/mongodb-introduction-with-csharp/</link>
      <pubDate>Tue, 03 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/mongodb-introduction-with-csharp/</guid>
      <description>MongoDB is a database based on JSON-like documents, but it can be queried using C#. We&amp;rsquo;ll see how to perform CRUD operations and we&amp;rsquo;ll create some advanced queries.</description>
    </item>
    
    <item>
      <title>Clean code tips - Abstraction and objects</title>
      <link>https://www.code4it.dev/blog/clean-code-abstraction-and-objects/</link>
      <pubDate>Tue, 20 Oct 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/clean-code-abstraction-and-objects/</guid>
      <description>Are Getters and Setters the correct way to think of abstraction? What are pro and cons of OOP and Procedural programming? And, in the OOP world, how can you define objects?</description>
    </item>
    
    <item>
      <title>How to generate code from OpenAPI definition with Visual Studio 2019</title>
      <link>https://www.code4it.dev/blog/openapi-code-generation-vs2019/</link>
      <pubDate>Tue, 06 Oct 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/openapi-code-generation-vs2019/</guid>
      <description>Wouldn&amp;rsquo;t it be nice if Visual Studio could autogenerate clients for external API? It is actually possible, if they expose an OpenAPI file. Let&amp;rsquo;s see how!</description>
    </item>
    
    <item>
      <title>How to use HttpRepl to navigate API endpoints</title>
      <link>https://www.code4it.dev/blog/httprepl/</link>
      <pubDate>Tue, 22 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/httprepl/</guid>
      <description>With HttpRepl you can perform HTTP operations as they were local folders, using the CLI. Let&amp;rsquo;s see how to configure it and run GET and POST operations.</description>
    </item>
    
    <item>
      <title>10 things hiking can teach you as a junior developer</title>
      <link>https://www.code4it.dev/blog/what-hiking-can-teach/</link>
      <pubDate>Tue, 08 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/what-hiking-can-teach/</guid>
      <description>During this holiday I hiked for the first time. I found some lessons that hiking can teach to junior devs.</description>
    </item>
    
    <item>
      <title>Understanding Swagger integration in .NET Core</title>
      <link>https://www.code4it.dev/blog/swagger-integration/</link>
      <pubDate>Tue, 25 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/swagger-integration/</guid>
      <description>Swagger is a tool that exposes the documentation of your APIs and helps collaborating with other teams. We&amp;rsquo;ll see how to integrate it with .NET Core 3, how to add XML comments and status codes.</description>
    </item>
    
    <item>
      <title>Clean code tips - comments and formatting</title>
      <link>https://www.code4it.dev/blog/clean-code-comments-and-formatting/</link>
      <pubDate>Tue, 18 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/clean-code-comments-and-formatting/</guid>
      <description>Are all comments bad? When they are necessary? Why formatting is so important? Writing clean code does not only refer to the executed code, but also to everything around.</description>
    </item>
    
    <item>
      <title>How to run integration tests for .NET API</title>
      <link>https://www.code4it.dev/blog/integration-tests-for-dotnet-api/</link>
      <pubDate>Tue, 11 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/integration-tests-for-dotnet-api/</guid>
      <description>Integration tests are useful to check if multiple components fit together well. How can you test your APIs? And how can you mock dependencies?</description>
    </item>
    
    <item>
      <title>5 things about DateTime time zones and formatting</title>
      <link>https://www.code4it.dev/blog/5-things-datetime-timezones-and-formatting/</link>
      <pubDate>Tue, 28 Jul 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/5-things-datetime-timezones-and-formatting/</guid>
      <description>You&amp;rsquo;re using DateTime.Now, aren&amp;rsquo;t you? Be careful, because it may bring some troubles to your application. Here I&amp;rsquo;ll explain why and I&amp;rsquo;ll talk about time zones and formatting in C# DateTime.</description>
    </item>
    
    <item>
      <title>Clean code tips - names and functions</title>
      <link>https://www.code4it.dev/blog/clean-code-names-and-functions/</link>
      <pubDate>Tue, 21 Jul 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/clean-code-names-and-functions/</guid>
      <description>I don&amp;rsquo;t have to tell you why you need to write clean code. Here you&amp;rsquo;ll see some tips about how to name things and how to structure functions.</description>
    </item>
    
    <item>
      <title>How to mock dependencies with Manifest resources</title>
      <link>https://www.code4it.dev/blog/mock-dependency-with-manifest-resources/</link>
      <pubDate>Tue, 14 Jul 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/mock-dependency-with-manifest-resources/</guid>
      <description>Sometimes on your tests you need to access test files, for example for mocking external data. With manifest resources you can easily reference files for your tests.</description>
    </item>
    
    <item>
      <title>Enum.HasFlag performance with BenchmarkDotNet</title>
      <link>https://www.code4it.dev/blog/hasflag-performance-benchmarkdotnet/</link>
      <pubDate>Tue, 30 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/hasflag-performance-benchmarkdotnet/</guid>
      <description>BenchmarkDotNet allows you to test the performance on .NET methods. So let&amp;rsquo;s answer a question: is the Enum.HasFlag method really that slow?</description>
    </item>
    
    <item>
      <title>Cool validation with FluentValidation</title>
      <link>https://www.code4it.dev/blog/fluentvalidation/</link>
      <pubDate>Tue, 16 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/fluentvalidation/</guid>
      <description>Validating inputs is crucial for every application. If you want an easy and versatile way, you can try FluentValidation.</description>
    </item>
    
    <item>
      <title>Testing internal members with InternalsVisibleTo</title>
      <link>https://www.code4it.dev/blog/testing-internals-with-internalsvisibleto/</link>
      <pubDate>Tue, 02 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/testing-internals-with-internalsvisibleto/</guid>
      <description>Internal members can be accessed only within the same assembly. And for different assemblies? Here&amp;rsquo;s for you the InternalsVisibleTo attribute!</description>
    </item>
    
    <item>
      <title>Dependency Injection lifetimes in .NET - Scoped vs Transient vs Singleton</title>
      <link>https://www.code4it.dev/blog/dependency-injection-lifetimes/</link>
      <pubDate>Tue, 26 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/dependency-injection-lifetimes/</guid>
      <description>Singleton, Scoped and Transient: these are the possible lifetimes for DI with .NET Core. How do they change the way objects are constructed?</description>
    </item>
    
    <item>
      <title>5 more things you should know about enums in C#</title>
      <link>https://www.code4it.dev/blog/5-more-things-about-enums-csharp/</link>
      <pubDate>Tue, 19 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/5-more-things-about-enums-csharp/</guid>
      <description>We&amp;rsquo;ve already seen some of the things you should know about enums in C#. Here we&amp;rsquo;ll dive into Flagged enumerations, serialization and so on.</description>
    </item>
    
    <item>
      <title>First steps with Docker: download and run MongoDB locally</title>
      <link>https://www.code4it.dev/blog/run-mongodb-on-docker/</link>
      <pubDate>Tue, 12 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/run-mongodb-on-docker/</guid>
      <description>Docker is a project that allows you to create and run applications in an isolated environment. Let&amp;rsquo;s try it to run MongoDB on your machine!</description>
    </item>
    
    <item>
      <title>5 things you should know about enums in C#</title>
      <link>https://www.code4it.dev/blog/5-things-enums-csharp/</link>
      <pubDate>Tue, 05 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/5-things-enums-csharp/</guid>
      <description>Enums are often used with C#. Boring, right? Maybe there is something you didn&amp;rsquo;t know: casting, parsing and flagged enums.</description>
    </item>
    
    <item>
      <title>Logging with Serilog and Seq</title>
      <link>https://www.code4it.dev/blog/logging-with-serilog-and-seq/</link>
      <pubDate>Tue, 28 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/logging-with-serilog-and-seq/</guid>
      <description>Having a robust logging system is crucial for any application. There are many tools, and one of these is Serilog. Here you&amp;rsquo;ll learn how to use it in a .NET application and how to integrate it with Seq.</description>
    </item>
    
    <item>
      <title>How to upgrade Azure Functions v2 to v3</title>
      <link>https://www.code4it.dev/blog/azure-functions-v2-to-v3/</link>
      <pubDate>Tue, 21 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/azure-functions-v2-to-v3/</guid>
      <description>Do you have an Azure Function that you want to upgrade from v2 to v3? Don&amp;rsquo;t panic, it&amp;rsquo;s just a matter of few steps!</description>
    </item>
    
    <item>
      <title>How to add a Startup class to Azure Functions</title>
      <link>https://www.code4it.dev/blog/azure-functions-startup-class/</link>
      <pubDate>Tue, 14 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/azure-functions-startup-class/</guid>
      <description>Azure Functions are one of the best examples of serverless applications. By default you can&amp;rsquo;t use Dependency injection: here&amp;rsquo;s how you can configure it by adding the Startup class.</description>
    </item>
    
    <item>
      <title>How to connect and authenticate to NPM feeds on Azure DevOps</title>
      <link>https://www.code4it.dev/blog/connect-npm-feeds-from-azure-devops/</link>
      <pubDate>Tue, 07 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/connect-npm-feeds-from-azure-devops/</guid>
      <description>Azure DevOps, among its capabilities, allows you to store NPM packages in their system. Here we&amp;rsquo;ll see how to connect to an NPM feed and how to solve the 401-unauthorized error.</description>
    </item>
    
    <item>
      <title>First steps with asynchronous programming in C#</title>
      <link>https://www.code4it.dev/blog/asynchronous-programming-in-csharp/</link>
      <pubDate>Tue, 31 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/asynchronous-programming-in-csharp/</guid>
      <description>Asynchronous programming is often seen as something cumbersome, so many developers avoid it. What, why and how to use it? Here are the first steps you can take to approach async programming.</description>
    </item>
    
    <item>
      <title>How to run Google Chrome without CORS</title>
      <link>https://www.code4it.dev/blog/run-google-chrome-without-cors/</link>
      <pubDate>Tue, 24 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/run-google-chrome-without-cors/</guid>
      <description>You may need to run Google Chrome with CORS checks disabled. Here&amp;rsquo;s how you can do it on Windows 10.</description>
    </item>
    
    <item>
      <title>How to get video details from YouTube with .NET Core 3</title>
      <link>https://www.code4it.dev/blog/get-youtube-video-details-dotnet/</link>
      <pubDate>Tue, 17 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/get-youtube-video-details-dotnet/</guid>
      <description>We have already seen how to search for videos in a YouTube channel. Now it&amp;rsquo;s time to get details for a single video.</description>
    </item>
    
    <item>
      <title>How to search for YouTube videos in a channel with .NET Core 3</title>
      <link>https://www.code4it.dev/blog/csharp-extension-methods/</link>
      <pubDate>Mon, 02 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/csharp-extension-methods/</guid>
      <description>YouTube provides some APIs for getting info about a channel videos. But they also provide .NET libraries to achieve the same result with C#. Let&amp;rsquo;s have a try!</description>
    </item>
    
    <item>
      <title>How you can create extension methods in C#</title>
      <link>https://www.code4it.dev/blog/csharp-extension-methods/</link>
      <pubDate>Tue, 18 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/csharp-extension-methods/</guid>
      <description>Extension methods in C# are really useful, but there are few rules to follow&amp;hellip;</description>
    </item>
    
    <item>
      <title>MSTest CollectionAssert class - an overview</title>
      <link>https://www.code4it.dev/blog/mstests-collectionassert-overview/</link>
      <pubDate>Tue, 04 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/mstests-collectionassert-overview/</guid>
      <description>The CollectionAssert class if fine for basic tests on collections in C#. We will have a look at the methods exposed by this class.</description>
    </item>
    
    <item>
      <title>5 things you didn&#39;t know about Guid in C#</title>
      <link>https://www.code4it.dev/blog/5-things-about-guid-in-csharp/</link>
      <pubDate>Tue, 21 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/5-things-about-guid-in-csharp/</guid>
      <description>I&amp;rsquo;m pretty sure that you&amp;rsquo;ve already used Guids in C#, but have you ever stopped to think what they are under the hood?an 3 seconds to load. Here you&amp;rsquo;ll learn few trick to improve your site performance.</description>
    </item>
    
    <item>
      <title>A few tips for performance optimization</title>
      <link>https://www.code4it.dev/blog/few-tips-for-performance-optimization/</link>
      <pubDate>Mon, 06 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/few-tips-for-performance-optimization/</guid>
      <description>More than 50% of mobile users abandon a website if it takes more than 3 seconds to load. Here you&amp;rsquo;ll learn few trick to improve your site performance.</description>
    </item>
    
    <item>
      <title>How to ping from an Azure App service with TCPPING</title>
      <link>https://www.code4it.dev/blog/tcpping-azure-portal/</link>
      <pubDate>Fri, 13 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/tcpping-azure-portal/</guid>
      <description>Maybe you are used to ping services to check whether they respond or not. It works well using a local console, but within the Azure portal you must use another command: tcpping.</description>
    </item>
    
    <item>
      <title>A recap of my 30ArticlesForNovember</title>
      <link>https://www.code4it.dev/blog/30articlesfornovember-a-recap/</link>
      <pubDate>Thu, 05 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/30articlesfornovember-a-recap/</guid>
      <description>On November I shared on Twitter an article each day. They were about C#, general programming and advanced topics. For celebrating the conclusion of this challenge, I wrote a poem about that.</description>
    </item>
    
    <item>
      <title>C# sorting - a subtle mistake</title>
      <link>https://www.code4it.dev/blog/csharp-sorting-mistake/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/csharp-sorting-mistake/</guid>
      <description>Is it true that the inverse of a negative number is always a positive number? If you think it&amp;rsquo;s true, you might get a subtle error while implementing comparison.</description>
    </item>
    
    <item>
      <title>Thoughts after my very first public speech</title>
      <link>https://www.code4it.dev/blog/thoughts-after-my-first-public-speech/</link>
      <pubDate>Sun, 20 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/thoughts-after-my-first-public-speech/</guid>
      <description>Having a public speech seems easy. In some ways, it really is. But the first time can be hard. Here&amp;rsquo;s my thought after my first experience in public speaking.</description>
    </item>
    
    <item>
      <title>[ITA] Azure DevOps: Consegna Spesso, Consegna Meglio | Azure Meetup Torino</title>
      <link>https://www.code4it.dev/video/azure-devops-azure-meetup-torino/</link>
      <pubDate>Tue, 15 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/video/azure-devops-azure-meetup-torino/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Type or namespace not found: how to fix Error CS0246 in .NET Core</title>
      <link>https://www.code4it.dev/blog/dotnet-type-or-namespace-not-found/</link>
      <pubDate>Mon, 26 Aug 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/dotnet-type-or-namespace-not-found/</guid>
      <description>Error CS0246 - Type or namespace could not be found. What does it mean? Why does it happen? How can you solve it?</description>
    </item>
    
    <item>
      <title>Retrieving your SQL LocalDB Instance Name: A How-To Guide</title>
      <link>https://www.code4it.dev/blog/ssms-how-to-get-instance-name/</link>
      <pubDate>Tue, 21 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/ssms-how-to-get-instance-name/</guid>
      <description>Sometimes, when I open SQL Server Management Studio, I forget about my Local DB instance name. Here&amp;rsquo;s how to retrieve it.</description>
    </item>
    
    <item>
      <title>API Gateways - an overview</title>
      <link>https://www.code4it.dev/blog/overview-api-gateways/</link>
      <pubDate>Fri, 17 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/overview-api-gateways/</guid>
      <description>API Gateways can help you create microservices and micro frontends, and expose rich APIs to your customers while keeping things simple on your company.</description>
    </item>
    
    <item>
      <title>MSTest StringAssert class - an overview</title>
      <link>https://www.code4it.dev/blog/mstests-stringassert-overview/</link>
      <pubDate>Wed, 20 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/mstests-stringassert-overview/</guid>
      <description>The StringAssert class is a hidden feature of the MSStest framework. Not so many methods, but they can help you with basic tests with strings.</description>
    </item>
    
    <item>
      <title>MSTest Assert class - an overview</title>
      <link>https://www.code4it.dev/blog/mstests-assert-overview/</link>
      <pubDate>Wed, 05 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/mstests-assert-overview/</guid>
      <description>The Assert class is the first step you&amp;rsquo;ll probably take into unit testing. But do you know that there&amp;rsquo;s more than the IsTrue() method?</description>
    </item>
    
    <item>
      <title>How to create a new Angular 7 project</title>
      <link>https://www.code4it.dev/blog/angular7-create-new-project/</link>
      <pubDate>Sat, 01 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/angular7-create-new-project/</guid>
      <description>Are you ready to create a brand new Angular project? The CLI can help you with common settings.</description>
    </item>
    
    <item>
      <title>A few things I learned at .NET Conference Italia 2018</title>
      <link>https://www.code4it.dev/blog/dotnet-conference-italia-2018/</link>
      <pubDate>Mon, 29 Oct 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/dotnet-conference-italia-2018/</guid>
      <description>Some of the things I learned at .NET Conf Italia: interfaces and abstract classes, Blazor, C# default interfaces and .NET Core on Samsung TV</description>
    </item>
    
    <item>
      <title>Angular vs NPM vs Node.js: spot the difference!</title>
      <link>https://www.code4it.dev/blog/angular-vs-npm-vs-nodejs/</link>
      <pubDate>Thu, 25 Oct 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/angular-vs-npm-vs-nodejs/</guid>
      <description>There&amp;rsquo;s a lot of confusion around the terms Angular, NPM, and NodeJS. What are they? And how do they interact with each other?</description>
    </item>
    
    <item>
      <title>How to check if a string is really empty with C#</title>
      <link>https://www.code4it.dev/blog/csharp-check-if-string-is-empty/</link>
      <pubDate>Mon, 01 Oct 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/blog/csharp-check-if-string-is-empty/</guid>
      <description>Is a string empty? What if it contains only white spaces? You shouldn&amp;rsquo;t reinvent the wheel, since .NET exposes methods exactly for these cases: String.IsNullOrEmpty and String.IsNullOrWhiteSpace.</description>
    </item>
    
  </channel>
</rss>
