Simple And Best Way of Implementing the Repository Pattern


What is Repository Pattern?

I have seen so many ways to write repository pattern. I have read Rob Conery's blog also.

But, according to my experience, the repository pattern is the one constructing criteria by client code and passing it to repository.

A repository is nothing but a mediator between data access layer and business layer.

I will try to explain in a very simplest method to understand repository pattern.

Step 1:

Create VS 2010 project and name it RepPattern.

I have created here a Silverlight application. Because I really like to work with Silverlight.

RepoPtrn1.jpg


In this application, I have added two folders.

  1. Contract:

    To hold all interface entity.

    That is IPattern interface.
     
  2. Service:

    To hold all interface implemented class.

    That is PatternService class.

Step 2:

In IPattern interface, I have declared signature to get some value. I. e Get default name.

At the same time I have implemented IPattern interface on PatternService class as given below.


RepoPtrn2.jpg

These modules belongs to the repository.

Step 3:

Now, it's the time to actually implement this repository.

Here I have added one more class called PatternHelper.cs. Also, I have written one static method to return all repository methods.


RepoPtrn3.jpg
Step 4:

Next one is calling these repository methods from client.

RepoPtrn4.jpg

Step 5:

Run the application.

RepoPtrn5.jpg

As I said before, repository is nothing but a mediator between business logic and data access layer.

Here, PatternHelper works as repository layer.

These separation of business logic and data helps in three ways.
  • It centralizes the data logic or Web service access logic.
  • It provides a substitution point for the unit tests.
  • It provides a flexible architecture that can be adapted as the overall design of the application evolves.

Usage of Repository pattern:
  1. We can use this pattern to access a data source from many locations yet centrally manage the data source.
  2. We can test it individually (Unit test).
  3. Code maintainability. 


Thanks
Enjoy the coding!!!!!

Up Next
    Ebook Download
    View all
    Learn
    View all