Dependency Injection Using Unity – Resolve Dependency Of Dependencies

This article will not be very theoretical, but would be more of a tutorial to showcase the existing problems with tightly coupled applications, how to make the application loosely coupled and achieve inversion of control via dependency injection.

Advertisements

Introduction

Inversion of control (IOC) and Dependency Injection (DI) work hand in hand and makes our application more loosely coupled and easy to expand. It is strongly recommended to follow SOLID principles when it comes to development. This article will not be very theoretical but would be more of a tutorial to showcase the existing problems with tightly coupled applications, how to make the application loosely coupled and achieve inversion of control via dependency injection, solve the problem of resolving dependency of a dependency in a three-layered/n layered project architecture using unity framework. You can get the downloadable source code at the end of the article.

Continue reading “Dependency Injection Using Unity – Resolve Dependency Of Dependencies”

Singleton Design Pattern In C# – Part Three (Static vs Singleton)


Introduction

In this series on learning singleton pattern, we learned lazy initialization and eager initialization with practical examples. We also learned why it is necessary to make the singleton class sealed with the sealed keyword. In this article, I’ll try to explain the differences between static and singleton class. We will also see where to use static class and where to use singleton classes.

Continue reading “Singleton Design Pattern In C# – Part Three (Static vs Singleton)”

Singleton Design Pattern In C# – Part 2 (Eager and Lazy Initialization in Singleton)


Introduction

In the previous article on learning singleton pattern, we discussed what is singleton design pattern, when is it needed and what problems it solves. We also discussed how to create a basic singleton class step by step and how to enhance that class to be thread-safe with the help of locking and performance effective with the help of double check locking. In this article, we’ll discuss Lazy initialization, the lazy keyword, why to make singleton class a sealed class, and what are the differences between singleton and static class. Before we start, I strongly recommend you go through my last article.

Continue reading “Singleton Design Pattern In C# – Part 2 (Eager and Lazy Initialization in Singleton)”

Singleton Design Pattern in C# – Part 1


Introduction

I always wanted to write on Singleton design pattern in C#. Though there already are many posts available on Singleton design pattern, I’ll try to cover this topic in the most simplistic and easy to understand way.

Continue reading “Singleton Design Pattern in C# – Part 1”

Learning C#: Custom Collection Classes in C#


Introduction

Being a .NET developer, we all are familiar with collections and generics. We know ArrayLists, Arrays, List and Dictionary etc. as collection classes through which we can iterate. This article will explain on how one can create their own custom collection class, which can be iterated through. The article follows step by step process to create a custom collection class to know what actually it takes to create a collection class. The purpose of the article is to learn the concept of collection classes through step by step practical implementations.

Continue reading “Learning C#: Custom Collection Classes in C#”

Learning C# (Day 11) – Events In C# (A Practical Approach)


Introduction

This article of the “Diving into OOP” series will explain all about events in C#. The article focuses more on practical implementations and less on theory.

Events (The definition)

Let’s start with the definition taken from MSDN.

“Events enable a class or object to notify other classes or objects when something of interest occurs. The class that sends (or raises) the event is called the publisher and the classes that receive (or handle) the event are called subscribers.”

Continue reading “Learning C# (Day 11) – Events In C# (A Practical Approach)”

Learning C# (Day 10): Delegates in C# (A Practical Approach)

This article of the series “Diving into OOP” will explain all about delegates in C#. The article focuses more on practical implementations and less on theory. The article explains the concept in-depth.


Introduction

This article of the series “Diving into OOP” will explain all about delegates in C#. The article focuses more on practical implementations and less on theory. The article explains the concept in-depth.

Delegates (The definition)

Let’s start with the definition taken from MSDN

“A delegate declaration defines a reference type that can be used to encapsulate a method with a specific signature. A delegate instance encapsulates a static or an instance method. Delegates are roughly similar to function pointers in C++; however, delegates are type-safe and secure.”

Continue reading “Learning C# (Day 10): Delegates in C# (A Practical Approach)”