Chain of Responsibility Pattern

Greetings, fellow developers! Welcome back to .Net Core Central. In today’s blog post, we’re diving into another fascinating design pattern – the Chain of Responsibility. This pattern, belonging to the Gang of Four design patterns, falls under the category of behavioral design patterns. Its primary aim is to decouple the sender of a request from … Read more

Major performance issue of IEnumerable in C#/.NET

IEnumerable can be a performance bottleneck to your application if not used properly. In this blog post, first, I’m going to show how implementing IEnumerable the incorrect way can cause a performance bottleneck.  And after that, I’m going to show, how the performance issue can be fixed easily by using IEnumerable the proper way. The … Read more

Command Pattern

The command pattern is also one of the design patterns from the Gang Of Four design patterns. The command pattern is a behavioral design pattern. And the primary intent of this pattern is to encapsulate a request as an object, thereby letting us parameterize clients with different requests queue or log requests and support undoable … Read more

State Pattern

The state design pattern is one of the patterns from the Gang of Four design patterns. It is a behavioral design pattern. The primary intent of the state pattern is to allow an object to alter its behavior when its internal state is changed. In your day-to-day implementation, you may be encountering the state pattern … Read more

Proxy Pattern

Hello everyone, and welcome to .NET Core Central. In this blog post, I will walk through the proxy design pattern. The proxy design pattern is one of the design patterns from the Gang of Four design patterns. And the proxy design pattern is probably one of the simplest and easiest to understand and implement design patterns … Read more

Async and Await in C#

In this blog post, I am going to walk through Async and Await feature of C#. The async and await keywords were introduced in C# and it is part of the TAP or Task Asynchronous Programming model. Pre async and await, if we want to write asynchronous code we will either use a Thread class … Read more

Deep dive into Default Interface methods in C# 8

In this blog, I am going to deep dive into Default Interface Methods in C# 8. This was released along with .Net Core 3.0 in September 2019. I have covered this topic briefly previously in my blog https://dotnetcorecentral.com/blog/c-8-my-top-5-favorite-features-which-i-absolutely-love/. But at that time I was not sure of the potential of this feature. Now, after going … Read more

Pattern matching in C#

We are using pattern matching in C# since the very beginning of C# through a combination of If/Else and Switch/Case statements. Pattern Matching is when we check an object’s member variable or property to have a full or partial match to a sequence. But these forms of pattern matching is very limited. Functional programming languages … Read more

Nullable reference types in C# 8

Nullable reference types is the default behavior of reference types in C# 7.3 and below versions. Well, what do I mean by that? When we declare reference types, pre-C# 8, it’s always nullable, meaning it can be assigned a null value. Hence we need to check it against null to avoid NullReferenceException. The newly introduced … Read more