<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
  <channel xmlns:media="http://search.yahoo.com/mrss/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <title>ABP.IO Stories</title>
    <link>https://abp.io/community/articles</link>
    <description>A hub for ABP Framework, .NET, and software development. Access articles, tutorials, news, and contribute to the ABP community.</description>
    <lastBuildDate>Sat, 07 Mar 2026 12:34:25 Z</lastBuildDate>
    <generator>Community - ABP.IO</generator>
    <image>
      <url>https://abp.io/assets/favicon.ico/favicon-32x32.png</url>
      <title>ABP.IO Stories</title>
      <link>https://abp.io/community/articles</link>
    </image>
    <a10:link rel="self" type="application/rss+xml" title="self" href="https://abp.io/community/rss?member=AhmedTarek" />
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/-unit-testing-best-practices-in-.net-c--mnx65npu</guid>
      <link>https://abp.io/community/posts/-unit-testing-best-practices-in-.net-c--mnx65npu</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>best-practices</category>
      <category>unit-testing</category>
      <title>🧪 Unit Testing Best Practices In .NET C#  🤷‍♂️</title>
      <description>Tips, tricks and best practices of Unit Testing in .NET C# using NUnit and Moq.</description>
      <pubDate>Wed, 03 Jul 2024 10:57:47 Z</pubDate>
      <a10:updated>2026-03-05T07:33:29Z</a10:updated>
      <content:encoded><![CDATA[Tips, tricks and best practices of Unit Testing in .NET C# using NUnit and Moq.<br \><a href="https://levelup.gitconnected.com/unit-testing-best-practices-in-net-c-3117ea4010b9?sk=5b4cdac557b3e56d97365669a12aa198" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a138a6b-264d-f2e9-3da1-e072c5dd5e59" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a138a6b-264d-f2e9-3da1-e072c5dd5e59" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/memory-management-in-.net-rqwbtzvl</guid>
      <link>https://abp.io/community/posts/memory-management-in-.net-rqwbtzvl</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>performance</category>
      <category>dotnet</category>
      <title>Memory Management In .NET</title>
      <description>If you want to know all about memory management in .NET, read this article.

If you like the content, share/repost so that others can benefit from it 🙂</description>
      <pubDate>Sun, 30 Jun 2024 10:08:26 Z</pubDate>
      <a10:updated>2026-03-05T07:32:59Z</a10:updated>
      <content:encoded><![CDATA[If you want to know all about memory management in .NET, read this article.

If you like the content, share/repost so that others can benefit from it 🙂<br \><a href="https://levelup.gitconnected.com/memory-management-in-net-740b03d01e24?sk=045076d6617410f78a56b2220172d2d5" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a137aca-e460-0f1e-9d41-49245ed4a94c" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a137aca-e460-0f1e-9d41-49245ed4a94c" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/-how-string-in-.net-c-works--vj6d2pnm</guid>
      <link>https://abp.io/community/posts/-how-string-in-.net-c-works--vj6d2pnm</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>csharp</category>
      <category>fundamentals</category>
      <title>🧵 How String In .NET C# Works 🤷‍♂️</title>
      <description>➡ Do you know that String is an Object which acts as a Value type?

➡ Do you understand how String is immutable?

➡ In this article we are going to discuss how String works in .NET C#.</description>
      <pubDate>Thu, 27 Jun 2024 10:24:42 Z</pubDate>
      <a10:updated>2026-03-05T07:32:49Z</a10:updated>
      <content:encoded><![CDATA[➡ Do you know that String is an Object which acts as a Value type?

➡ Do you understand how String is immutable?

➡ In this article we are going to discuss how String works in .NET C#.<br \><a href="https://levelup.gitconnected.com/how-string-in-net-c-works-f1d69bfa30f5?sk=0f35a41a04bb4e508fd6dac17bd70ddf" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a136b66-b426-fae0-715f-c3a7ecce8061" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a136b66-b426-fae0-715f-c3a7ecce8061" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/flagged-enumerations-how-to-represent-features-combinations-into-one-field-9gj4l670</guid>
      <link>https://abp.io/community/posts/flagged-enumerations-how-to-represent-features-combinations-into-one-field-9gj4l670</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>flags</category>
      <category>bitwise-operators</category>
      <title>Flagged Enumerations: How To Represent Features Combinations Into One Field</title>
      <description>Represent features like [Read, Write, Modify, …] and their combinations into a single field.</description>
      <pubDate>Thu, 16 May 2024 08:49:02 Z</pubDate>
      <a10:updated>2026-02-22T21:09:19Z</a10:updated>
      <content:encoded><![CDATA[Represent features like [Read, Write, Modify, …] and their combinations into a single field.<br \><a href="https://levelup.gitconnected.com/flagged-enumerations-how-to-represent-features-combinations-into-one-field-f32e46a0885?sk=38b7a167ac8bbcf3bbd876155c68039c" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a1292c4-07c9-a7a4-ee43-6b7e4b8a7dfd" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a1292c4-07c9-a7a4-ee43-6b7e4b8a7dfd" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/chain-of-responsibility-design-pattern-in-.net-c--djmvkug1</guid>
      <link>https://abp.io/community/posts/chain-of-responsibility-design-pattern-in-.net-c--djmvkug1</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>design-patterns</category>
      <title>👍Chain of Responsibility Design Pattern In .NET C# 👀</title>
      <description>➡ It allows passing a request or an object through a chain of handlers.

➡ Once a handler receives a request, it decides whether it can process the request or pass it to the next handler in the chain.</description>
      <pubDate>Tue, 23 Apr 2024 13:13:46 Z</pubDate>
      <a10:updated>2026-03-06T06:51:37Z</a10:updated>
      <content:encoded><![CDATA[➡ It allows passing a request or an object through a chain of handlers.

➡ Once a handler receives a request, it decides whether it can process the request or pass it to the next handler in the chain.<br \><a href="https://levelup.gitconnected.com/chain-of-responsibility-design-pattern-in-net-c-666bb4dc2816?sk=d34d96977426afead785cc1043b3a066" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a121d44-22c9-bc67-8c83-1e437010fdbe" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a121d44-22c9-bc67-8c83-1e437010fdbe" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/design-best-practices-in-.net-c--eg8q8xh0</guid>
      <link>https://abp.io/community/posts/design-best-practices-in-.net-c--eg8q8xh0</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>best-practices</category>
      <category>csharp</category>
      <title>👍Design Best Practices In .NET C# 👀</title>
      <description>➡ In this article we are going to explore some Design Best Practices that are practically proved to be efficient.

➡ Practices like "Unified Return Object", "The Snapshot Structure", "Immutability", and others...

➡ This article is rated #1 on google if you search for "dotnet design practices"</description>
      <pubDate>Thu, 18 Apr 2024 09:40:18 Z</pubDate>
      <a10:updated>2026-03-06T06:51:50Z</a10:updated>
      <content:encoded><![CDATA[➡ In this article we are going to explore some Design Best Practices that are practically proved to be efficient.

➡ Practices like "Unified Return Object", "The Snapshot Structure", "Immutability", and others...

➡ This article is rated #1 on google if you search for "dotnet design practices"<br \><a href="https://levelup.gitconnected.com/design-best-practices-in-net-c-8e37b7c3500a?sk=555c245874bbd3333feaabf54445cddc" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a1202c0-e781-d78d-0210-996df138573e" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a1202c0-e781-d78d-0210-996df138573e" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/-when-implementations-affect-abstractions--ekx1o5xn</guid>
      <link>https://abp.io/community/posts/-when-implementations-affect-abstractions--ekx1o5xn</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>architectural-design</category>
      <title>🤔 When Implementations Affect Abstractions ⁉️</title>
      <description>➡ If I ask you: Could your knowledge of the available implementations affect your abstractions design?

➡ Most probably you would say: No, if this happens then I don't know enough about the system.

➡ At some point on my career I would have provided the same answer.

➡ However...</description>
      <pubDate>Sat, 13 Apr 2024 22:19:08 Z</pubDate>
      <a10:updated>2026-03-03T03:45:12Z</a10:updated>
      <content:encoded><![CDATA[➡ If I ask you: Could your knowledge of the available implementations affect your abstractions design?

➡ Most probably you would say: No, if this happens then I don't know enough about the system.

➡ At some point on my career I would have provided the same answer.

➡ However...<br \><a href="https://levelup.gitconnected.com/when-implementations-affect-abstractions-1bb2adc808d1?sk=56745bd95c95e2011ce3dcb2bcef053d" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a11ebb7-d580-98f0-09b6-cd4aea14a651" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a11ebb7-d580-98f0-09b6-cd4aea14a651" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/strategy-design-pattern-in-.net-c-vcgv11h5</guid>
      <link>https://abp.io/community/posts/strategy-design-pattern-in-.net-c-vcgv11h5</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>architectural-design</category>
      <category>design-patterns</category>
      <title>Strategy Design Pattern In .NET C#</title>
      <description>➡ One of the behavioral design patterns.

➡ Its main goal is to decouple the behavior of an object from its state by modeling the behavior into an abstraction which could have more than one implementation.

➡ Read this article to learn about the Strategy Design Pattern in .NET C# with code samples.</description>
      <pubDate>Mon, 04 Mar 2024 09:36:58 Z</pubDate>
      <a10:updated>2026-03-07T09:13:49Z</a10:updated>
      <content:encoded><![CDATA[➡ One of the behavioral design patterns.

➡ Its main goal is to decouple the behavior of an object from its state by modeling the behavior into an abstraction which could have more than one implementation.

➡ Read this article to learn about the Strategy Design Pattern in .NET C# with code samples.<br \><a href="https://levelup.gitconnected.com/strategy-design-pattern-in-net-c-b9dbd863c31e?sk=e96fabc74efc59f6ba55784788b3b69f" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a111aff-aafa-40c9-cad9-aeab62e517b8" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a111aff-aafa-40c9-cad9-aeab62e517b8" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/mediator-design-pattern-in-.net-c-pdsjp93n</guid>
      <link>https://abp.io/community/posts/mediator-design-pattern-in-.net-c-pdsjp93n</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>architecture</category>
      <title>Mediator Design Pattern In .NET C#</title>
      <description>Read this article to learn about the Mediator Design Pattern in .NET C# with code samples.</description>
      <pubDate>Tue, 27 Feb 2024 09:46:49 Z</pubDate>
      <a10:updated>2026-03-06T06:52:27Z</a10:updated>
      <content:encoded><![CDATA[Read this article to learn about the Mediator Design Pattern in .NET C# with code samples.<br \><a href="https://levelup.gitconnected.com/mediator-design-pattern-in-net-c-e1bfcc96789d?sk=506e4bb1c5b29197ac7d49f3dc9491ab" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a10fc22-882f-b1b5-eaf5-fd545f0f557d" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a10fc22-882f-b1b5-eaf5-fd545f0f557d" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/solid-liskov-substitution-principle-explained-in-.net-c-hx2z8vo9</guid>
      <link>https://abp.io/community/posts/solid-liskov-substitution-principle-explained-in-.net-c-hx2z8vo9</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>architectural-design</category>
      <title>SOLID: Liskov Substitution Principle Explained In .NET C#</title>
      <description>Read this article to understand the Liskov Substitution Principle of the SO(L)ID principles in .NET C#</description>
      <pubDate>Thu, 22 Feb 2024 09:10:34 Z</pubDate>
      <a10:updated>2026-03-06T06:52:42Z</a10:updated>
      <content:encoded><![CDATA[Read this article to understand the Liskov Substitution Principle of the SO(L)ID principles in .NET C#<br \><a href="https://levelup.gitconnected.com/the-liskov-substitution-principle-explained-in-net-c-2a838b8a5155?sk=e12ebd1a8be3c4e2fb7a6670a487f8bf" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a10e241-8df7-75e6-d3ed-1df993d59130" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a10e241-8df7-75e6-d3ed-1df993d59130" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/-cover-io-based-apps-with-unit-tests-in-.net-c--zp6kip2r</guid>
      <link>https://abp.io/community/posts/-cover-io-based-apps-with-unit-tests-in-.net-c--zp6kip2r</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>code-coverage</category>
      <category>testing</category>
      <title>📑 Cover IO Based Apps With Unit Tests in .NET C# 🧪</title>
      <description>Read this article to learn how to split your IO app into smaller modules which you can cover by 100%</description>
      <pubDate>Mon, 05 Feb 2024 08:43:38 Z</pubDate>
      <a10:updated>2026-02-12T21:46:45Z</a10:updated>
      <content:encoded><![CDATA[Read this article to learn how to split your IO app into smaller modules which you can cover by 100%<br \><a href="https://levelup.gitconnected.com/how-to-fully-cover-i-o-file-based-applications-in-net-c-with-unit-tests-ca75c07f3b2c?sk=bc164097aca7c1d31e32e4dd35a60163" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a108a9c-ca19-f213-b132-cfafbcccfed4" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a108a9c-ca19-f213-b132-cfafbcccfed4" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/better-enhanced-repository-pattern-implementation-in-.net-c-hpkbxr3l</guid>
      <link>https://abp.io/community/posts/better-enhanced-repository-pattern-implementation-in-.net-c-hpkbxr3l</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>csharp</category>
      <category>design-patterns</category>
      <title>Better Enhanced Repository Pattern Implementation in .NET C#</title>
      <description>Learn how to implement a better enhanced Repository Pattern following Best Practices to satisfy extended requirements like throttling.</description>
      <pubDate>Wed, 31 Jan 2024 08:38:10 Z</pubDate>
      <a10:updated>2026-03-06T06:53:21Z</a10:updated>
      <content:encoded><![CDATA[Learn how to implement a better enhanced Repository Pattern following Best Practices to satisfy extended requirements like throttling.<br \><a href="https://levelup.gitconnected.com/better-enhanced-repository-pattern-implementation-in-net-c-4e6f4bbe48a9?sk=dff8866ff91a36a314de8eb40a169955" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a1070d7-f9d7-da0d-8800-aff2909cd5e4" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a1070d7-f9d7-da0d-8800-aff2909cd5e4" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/when-not-to-use-di-ioc-and-ioc-containers-in-.net-c-n769hq8u</guid>
      <link>https://abp.io/community/posts/when-not-to-use-di-ioc-and-ioc-containers-in-.net-c-n769hq8u</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>architecture</category>
      <title>When Not To Use DI, IoC, and IoC Containers in .NET C#</title>
      <description>Know when DIs aren’t the right solution, and the better design to use instead in .NET C#</description>
      <pubDate>Fri, 26 Jan 2024 19:16:18 Z</pubDate>
      <a10:updated>2026-02-27T06:03:46Z</a10:updated>
      <content:encoded><![CDATA[Know when DIs aren’t the right solution, and the better design to use instead in .NET C#<br \><a href="https://betterprogramming.pub/when-not-to-use-di-ioc-and-ioc-containers-f95881d0fe0?sk=b2aa002a72db4258756feb9cf1daa2a9" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a105960-67ed-59c3-f3c2-cdc84e42aa98" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a105960-67ed-59c3-f3c2-cdc84e42aa98" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/-best-practice-for-using-timers-in-.net-c--3cqvew5o</guid>
      <link>https://abp.io/community/posts/-best-practice-for-using-timers-in-.net-c--3cqvew5o</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>csharp</category>
      <category>timing</category>
      <title>⏰ Best Practice for Using Timers in .NET C# ⏳</title>
      <description>When using System.Timers.Timer in your .NET C# application, you might face problems with abstracting it and being able to cover your modules with Unit Tests.

In this article, we would be discussing the Best Practices on how to conquer these challenges and by the end you would be able to achieve 100% coverage of your modules.</description>
      <pubDate>Wed, 24 Jan 2024 08:02:07 Z</pubDate>
      <a10:updated>2026-03-06T06:53:23Z</a10:updated>
      <content:encoded><![CDATA[When using System.Timers.Timer in your .NET C# application, you might face problems with abstracting it and being able to cover your modules with Unit Tests.

In this article, we would be discussing the Best Practices on how to conquer these challenges and by the end you would be able to achieve 100% coverage of your modules.<br \><a href="https://levelup.gitconnected.com/best-practice-for-using-system-timers-timer-in-net-c-867ab6b5027?sk=df2c03aff9a8bddbd62ce4d342d55c71" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a104caa-7421-cb16-4159-41cb034b2e3d" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a104caa-7421-cb16-4159-41cb034b2e3d" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/how-to-fully-cover-.net-c-console-application-with-unit-tests-3h248yhe</guid>
      <link>https://abp.io/community/posts/how-to-fully-cover-.net-c-console-application-with-unit-tests-3h248yhe</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>unit-tests</category>
      <category>testing</category>
      <title>How to Fully Cover .NET C# Console Application With Unit Tests</title>
      <description>How could I test a Console application when the input is passed by key strokes and the output is presented on a screen?!! Know the What? and How? to fully cover your Console Application using TDD, DI, and IoC.</description>
      <pubDate>Sun, 21 Jan 2024 19:50:26 Z</pubDate>
      <a10:updated>2026-03-03T20:07:33Z</a10:updated>
      <content:encoded><![CDATA[How could I test a Console application when the input is passed by key strokes and the output is presented on a screen?!! Know the What? and How? to fully cover your Console Application using TDD, DI, and IoC.<br \><a href="https://itnext.io/how-to-fully-cover-net-c-console-application-with-unit-tests-446927a4a793?sk=63c75b56de78903f09f0d0116df5fe3a" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a103fbf-dc80-d534-9f72-81ec6f7fe47d" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a103fbf-dc80-d534-9f72-81ec6f7fe47d" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/web-scraping-in-.net-c-6pkp1abi</guid>
      <link>https://abp.io/community/posts/web-scraping-in-.net-c-6pkp1abi</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>scraping</category>
      <title>Web Scraping in .NET C#</title>
      <description>A guide on how to do Web Scraping in .NET C#, with code samples.</description>
      <pubDate>Wed, 17 Jan 2024 21:55:54 Z</pubDate>
      <a10:updated>2026-02-17T20:46:34Z</a10:updated>
      <content:encoded><![CDATA[A guide on how to do Web Scraping in .NET C#, with code samples.<br \><a href="https://levelup.gitconnected.com/web-scraping-in-net-c-934d6a85c32e?sk=5cdce10a59908622f50c6fdbed09d81c" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a102b99-4d4c-f621-dccf-508f42f93084" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a102b99-4d4c-f621-dccf-508f42f93084" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/step-by-step-guide-to-develop-a-fluent-api-from-scratch-in-.net-c-using-the-builder-design-pattern-sbww0vky</guid>
      <link>https://abp.io/community/posts/step-by-step-guide-to-develop-a-fluent-api-from-scratch-in-.net-c-using-the-builder-design-pattern-sbww0vky</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>csharp</category>
      <category>design-patterns</category>
      <title>Step by step guide to develop a Fluent API from scratch in .NET C# using the Builder Design Pattern</title>
      <description>This is not the first time for you to hear about the Builder Design Pattern. However, I promise you that you would find something different in this article.


In this article, we would walk through the whole process of developing a Fluent API using the Builder Design Pattern, from the early steps of thinking about it, to the latest of testing it.


Therefore, buckle your seat belts, and let’s begin our trip.</description>
      <pubDate>Mon, 15 Jan 2024 09:59:44 Z</pubDate>
      <a10:updated>2026-03-03T03:50:53Z</a10:updated>
      <content:encoded><![CDATA[This is not the first time for you to hear about the Builder Design Pattern. However, I promise you that you would find something different in this article.


In this article, we would walk through the whole process of developing a Fluent API using the Builder Design Pattern, from the early steps of thinking about it, to the latest of testing it.


Therefore, buckle your seat belts, and let’s begin our trip.<br \><a href="https://medium.com/gitconnected/builder-design-pattern-in-net-c-bbf11c891548" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a101ebc-e9cf-c6d2-85e8-bbea2b3f5d41" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a101ebc-e9cf-c6d2-85e8-bbea2b3f5d41" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/a-best-practice-for-designing-interfaces-in-.net-c-9xqc4h8d</guid>
      <link>https://abp.io/community/posts/a-best-practice-for-designing-interfaces-in-.net-c-9xqc4h8d</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>architectural-design</category>
      <title>A Best Practice for Designing Interfaces in .NET C#</title>
      <description>Is it enough to define IMyInterface&lt;T&gt;? do I need IMyInterface as well?</description>
      <pubDate>Fri, 12 Jan 2024 11:56:55 Z</pubDate>
      <a10:updated>2026-03-06T06:53:39Z</a10:updated>
      <content:encoded><![CDATA[Is it enough to define IMyInterface<T>? do I need IMyInterface as well?<br \><a href="https://levelup.gitconnected.com/a-best-practice-for-designing-interfaces-in-net-c-2c6ebdb4f1c1?sk=1f07b674adf763b7567d652ddd9f4a43" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a100fb5-1db9-cf80-9db8-8b5340849449" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a100fb5-1db9-cf80-9db8-8b5340849449" medium="image" />
    </item>
    <item>
      <guid isPermaLink="true">https://abp.io/community/posts/invariance-covariance-and-contravariance-in-.net-c-9blmuhme</guid>
      <link>https://abp.io/community/posts/invariance-covariance-and-contravariance-in-.net-c-9blmuhme</link>
      <a10:author>
        <a10:name>AhmedTarek</a10:name>
        <a10:uri>https://abp.io/community/members/AhmedTarek</a10:uri>
      </a10:author>
      <category>architecture</category>
      <title>Invariance, Covariance, and Contravariance in .NET C#</title>
      <description>Have hard time understanding it? Let me simplify it for you.</description>
      <pubDate>Tue, 09 Jan 2024 16:31:05 Z</pubDate>
      <a10:updated>2026-02-23T10:19:36Z</a10:updated>
      <content:encoded><![CDATA[Have hard time understanding it? Let me simplify it for you.<br \><a href="https://levelup.gitconnected.com/covariance-and-contravariance-in-net-c-c2b8576b2155?sk=13f0128f87d2cbfb24f30219796bff31" rel="nofollow noopener noreferrer" title="Go to the Post">Go to the Post</a>]]></content:encoded>
      <media:thumbnail url="https://abp.io/api/posts/cover-picture-source/3a10013d-0c7f-f699-cf95-d2b26cc0ace0" />
      <media:content url="https://abp.io/api/posts/cover-picture-source/3a10013d-0c7f-f699-cf95-d2b26cc0ace0" medium="image" />
    </item>
  </channel>
</rss>