Articles

⏰ Best Practice for Using Timers in .NET C# ⏳

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...

csharp timing

How to Fully Cover .NET C# Console Application With Unit Tests

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 f...

testing unit-tests

ABP Now Supports Keyed Services!

In this post, I describe the new "keyed service" support for the dependency injection container, which came with .NET 8.0. Then, I'll show y...

Web Scraping in .NET C#

A guide on how to do Web Scraping in .NET C#, with code samples.

scraping

ABP Supports .NET8

This article is about the new .NET 8 support with ABP v8. Also, I summarized the new features of .NET 8.

feature new-version

Step by step guide to develop a Fluent API from scratch in .NET C# using the Builder Design Pattern

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 ar...

A Best Practice for Designing Interfaces in .NET C#

Is it enough to define IMyInterface? do I need IMyInterface as well?

architectural-design

Invariance, Covariance, and Contravariance in .NET C#

Have hard time understanding it? Let me simplify it for you.

Architecture

Performance Optimization of .NET-based (and also abp-based) application

Guide how to develop a performant and scalable abp-based application with minimal tech stack and on all layers (database, application backend, web app...

Upgrade Your Existing Projects to .NET 8 & ABP 8.0

A new .NET version was released on November 14, 2023, and ABP 8.0 RC.1 shipped based on .NET 8.0 just after Microsoft's .NET 8.0 release. Therefore, i...

net8 abp8