Adil Akhter

on software engineering

.Net Provider Pattern - Designing decoupled and extensible Component for .Net Application

Provider design pattern of .Net Framework 2.0 facilitates an approach to design components in a decoupled and extensible manner. Ron Howard mentioned-

“A provider is simply a contract between an API and the Business Logic/Data Abstraction Layer. The provider is the implementation of the API separate from the API itself.”

Provider pattern is a way to get rid of the coupling among the components while making the components extensible. Main reason for our today's discussion on Provider Pattern is its wonderful ability to publish the API and at the same time make the API pluggable; that is-- it gives us the flexibility to choose the API that is best suited for the application rather than the one developed by API developer. And from an API developer perspective, it allows them to create an extension point for the API where clients of the framework can extend the functionality in their own way.

In this post, we investigate this design pattern, and show how we can utilize it to make components decoupled while providing extension points for configuration. To do so, we present the outline of today's discussion as follows-–(read more)



gstarbuck said:

Nice post, great detail and analysis.

# November 12, 2008 10:33 AM

coson said:

This is an excellent introductory article to the benefits of the .NET Provider Pattern model.  Thank you, this really helped me out.

# November 12, 2008 1:43 PM

ajit singh said:

your article along with the code samples made the concepts crystal clear. Please keep it up.

# November 7, 2009 1:42 AM

Venkatesh said:

You did not explained about how to replace ProvidersHelpers for Win Forms Apps.

# November 10, 2009 9:21 PM

satya said:

This article is very informative.

# December 3, 2009 11:58 AM

duyquangluong said:

Your article really help me a lot. Thank you!

# February 4, 2010 10:35 PM

jokoro said:

Very nice understandable article, with clear code samples and UML diagrams.  Thanks.

# June 22, 2011 6:06 PM

BB said:


I am new to provider pattern. The code looks helpful. Is there some sample code that can be made available?

# July 4, 2011 9:25 AM

BB said:


This was a great article. I am new to provider pattern. Is there some sample code available for the above example.

Thanks in advance

# July 4, 2011 9:51 AM

myrocode said:

I believe that you should not use:





in the PersistenceManager class.

A better approach is to use Reflection to load Types, and avoid an useless System.Web reference.

btw, great post!

# June 25, 2012 11:05 AM
Leave a Comment