Many developers are confused about DIP, IoC, DI, and IoC Container. Well, we've been using the concept even the from the DOS mode era. It’s only when SOLID OOP Design and Design Patterns were introduced that made this popular. It is the D in the SOLID acronym which stands for Dependency Inversion Principle. New concepts were added of course.
Home » Posts filed under Design Patterns
What are Inversion of Control (IoC), DIP, DI, and IoC Container?
in
Best Practices,
C#,
Design Patterns,
DI,
DIP
- on Wednesday, October 08, 2014
- 1 comment
Adapter Design Pattern
in
C#,
Design Patterns
- on Wednesday, July 23, 2014
- No comments
A Software Design Pattern that allows the interface of an existing class to be used from another interface. It is often used to make existing classes work with others without modifying their source code.
Unit of Work Design Pattern
in
C#,
Design Patterns
- on Tuesday, July 22, 2014
- No comments
Maintains a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems.
Prototype Design Pattern
in
C#,
Design Patterns
- on Saturday, July 19, 2014
- No comments
Specifying the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype. Instead of using new keyword to create objects, prototype design pattern will just copy the object created. It’s a clone. A photo copier would the best example in the real world that resembles this pattern.
Singleton Design Pattern
in
C#,
Design Patterns
- on Thursday, July 17, 2014
- No comments
In software engineering, the singleton pattern is a design pattern that restricts the instantiation of a class to one object. This pattern ensures that a class has only one instance and provides a global point of access to it. This is considered of the the simplest design pattern.
Builder Design Pattern
in
C#,
Design Patterns
- on Tuesday, July 15, 2014
- No comments
The purpose of Builder Design Pattern is to separate the construction of complex object from its representation so that the same construction process can create different representation. It is usually use in building complex objects by using a step by step approach.
Abstract Factory Design Pattern
in
C#,
Design Patterns
- on Sunday, July 13, 2014
- No comments
Abstract Factory patterns acts a super-factory which creates other factories. This pattern is also called as Factory of factories. In Abstract Factory pattern an interface is responsible for creating a set of related objects, or dependent objects without specifying their concrete classes.
Strategy Design Pattern
in
C#,
Design Patterns
- on Friday, July 11, 2014
- No comments
In computer programming, the strategy pattern (also known as the policy pattern) is a software design pattern that enables an algorithm's behavior to be selected at runtime. The strategy pattern
- defines a family of algorithms,
- encapsulates each algorithm, and
- makes the algorithms interchangeable within that family.
Factory Design Pattern
in
C#,
Design Patterns
- on Friday, July 11, 2014
- No comments

In class-based programming, the factory method pattern is a creational pattern which uses factory methods to deal with the problem of creating objects without specifying the exact class of object that will be created. This is done by creating objects via a factory method, which is either specified in an interface (abstract class) and implemented in implementing classes (concrete classes); or implemented in a base class (optionally as a template method), which can be overridden when inherited in derived classes; rather than by a constructor.
Repository Design Pattern : Implementing Generics, MOQ, MSTEST In ASP.NET MVC
in
ASP.NET MVC,
Best Practices,
C#,
Design Patterns,
Moq
- on Thursday, June 26, 2014
- No comments
Repository Design Pattern is a way to encapsulate repetitive data access code.
Repository Pattern is effective data access design pattern when we want to:
Repository Pattern is effective data access design pattern when we want to:
- Increase testability of the application. Make test repeatable without touching the data source;
- Implement Separation of Concerns between the business logic and data source or business logic and test units;
- Make the application work with different data source such SQL Server, mySQL, Oracle, web api endpoints, xml file and other RDBMS out in the market.
- Make our code reusable. Effective on CRUD.

