When I search for creating custom providers, I found a lot of examples on how to create a membership provider, role provider etc. It took a lot of searching to find an article on how to write a provider model but eventually I found this one.
I am surprised more people are not taking advantage of provider models. They allow for a more extensible application. Take for example a crm application. The main provider could be the sql server database but you could write a google contact provider, a facebook provider, plaxo, great plains, csv, vcard provider. By doing so you could load contacts generically and save back the results to the various providers. If someone wanted to run their crm app atop google contacts why not.
If you have created your own provider model, please post comments and let us know what you experienced both good and bad.